javascript - 谷歌地图,在 Laravel/JS 中的标记标签处显示数据
问题描述
问题是当我将数据控制器传递给刀片/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
并对其进行迭代。但是当我这样做时,地图中没有标记和标签。只是空地图,控制台也没有错误吗?如果我删除 JSfor
循环,那么标记就会出现但没有标签......
有人知道我在这里想念什么吗?
解决方案
尝试使用新的 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)
});
}
}
推荐阅读
- powershell - 比较两个目录中同名但内容不同的文件
- kubernetes - Kubernetes 集群的不同防火墙规则
- c# - OR 语句使程序崩溃,但 AND 语句在 C# 中有效
- awk - 使用 Awk/Sed 替换文件中匹配模式的值
- python - 文件csv中每行中间的空格
- php - 未指定输入文件 - 使用宅基地设置的 symfony 应用程序
- tfs - SonarQube 7.1 和 TFS 2018 发布质量门结果失败
- c# - 无论开始时间如何,将任务安排在每小时的第 35 分钟
- python - 使用 OpenCV 进行人脸识别中的背景对象检测
- spring - 如何针对接口中的注释参数编写测试?