javascript - 谷歌地图,在 Laravel/JS 中的标记标签处显示数据

标签 javascript php laravel google-maps

问题是当我将数据 Controller 传递给 blade/JS 时,首先我将其转换为 JSON(因为没有其他方法),然后将其传递给 da javascript。但是我的标签不能正常工作。脚本代码就在下面。

var estates = <?php echo json_encode($estates);?>

            function initMap()
            {
                var options =
                    {
                        zoom : 10,
                        center : {lat:34.652500, lng:135.506302}
                    };

                var map = new google.maps.Map(document.getElementById('map'), options);
                for (var i=0; i < estates.length; i++) {
                @foreach ($estates as $est)
                    var marker = new google.maps.Marker({
                            map: map,
                            label: estates.price,
                            position: {
                                lat: {{$est->lat}},
                                lng: {{$est->lng}}
                            }
                     });
                @endforeach
                }
            }

因此,如果我尝试像这样传递价格 {{$est->price}},那么我会收到语法标记错误。因为价格是带有日文字符的varchar。所以我需要先将它转换为 Json 并对其进行 itetare。但是当我这样做时, map 上没有标记和标签。只是空 map ,控制台也没有错误吗?如果我删除 JS for 循环,则会出现标记但没有标签...

有人知道我在这里错过了什么吗?

最佳答案

尝试使用新的 google.maps.LatLng() 函数:

        var estates = <?php echo json_encode($estates);?>
        //estates = <?php echo json_decode($estates);?>
        function initMap()
        {
            var options =
                {
                    zoom : 10,
                    center : {lat:34.652500, lng:135.506302}
                }

            var map = new google.maps.Map(document.getElementById('map'), options);

            for (var i=0;i<estates.length;i++){
            var latLng_ = new google.maps.LatLng(estates['lat'],estates['lng']);
            var marker = new google.maps.Marker({
                    map: map,
                    position: latLng_,
                    icon: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRAy10Br9W1wWCSQNPc6f9CarvNEO4qqCg1BDbe7_mYZqHwXj3v',
                    label: estates['price']
                });


            var infoWindow = new google.maps.InfoWindow({
                content: estates['price']
            });

            marker.addListener('click', function () {
                infoWindow.open(map, marker)
            });
           }
        }

关于javascript - 谷歌地图,在 Laravel/JS 中的标记标签处显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927210/

相关文章:

php - 使用 PHP 导出为 CSV 并显示超链接单元格

PHP 读取 'get' 可能已设置或未设置的变量

laravel - self 加入 Eloquent - 如何调用

php - Laravel 创建多个用户表

php - Behat/mink/laravel 中缺少扩展名

javascript - 区域设置 : Browser or OS Setting?

javascript - 阻止特定脚本中的特定函数在浏览器内执行

javascript - 根据数组中的小时计算日期的出现次数

javascript - 突出显示事件页面

php - 在 codeigniter 中使用赋值运算符时出现错误结果