问题是当我将数据 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/