你好,我正在谷歌地图上工作,我收集了纬度,长格式数据库,通过这些纬度,长我必须创建标记。
拉拉维尔收藏:
public function getMap()
{
$map = Map::all();
return view('view-map',
compact('map'));
}
JavaScript 代码:
<script>
var data = {!!$map!!};
var i;
for (i = 0; i < data.length; i++) {
//var lat = {{$map->lat}};
//var lng = {{$map->lng}};
var lat = data[i]->lat;
var lng = data[i]->lng;
var map = new google.maps.Map(document.getElementById('map-canvas'), {
center:{
lat: lat,
lng: lng
},
zoom: 15
});
// Marker
var marker = new google.maps.Marker({
position:{
lat: lat,
lng: lng
},
map: map
});
} // end for
</script>
这是只创建单个标记如何在 javascript 中遍历所有纬度,长,请指导我。
现在,您正在创建新地图,并为每次迭代替换当前地图。尝试只为每次迭代创建标记:
<script>
var map = new google.maps.Map(document.getElementById('map-canvas'), {
center:{
lat: lat,
lng: lng
},
zoom: 15
});
var data = {!!$map!!};
var i;
for (i = 0; i < data.length; i++) {
// Marker
var lat = data[i]->lat;
var lng = data[i]->lng;
var marker = new google.maps.Marker({
position:{
lat: lat,
lng: lng
},
map: map
});
} // end for
</script>
嗨,
亲爱的Laravel和JavaScript是两回事。您可以使用多个 aproache。
- 您可以使用 ajax 获取标记。
- 你可以做
var data = <?= var_dump($map) ?>;
- 还有一个软件包可用,它只是让开发人员将PHP变量注入javaScript。
"laracasts/utilities": "~2.0"