你好我正在谷歌地图上工作,我有lat,长形式数据库的集合,通过这些lat,我必须创建标记。
Laravel Collection:
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>
这是创建只有单个标记如何循环遍历所有lat,javascript中的长,请指导我。
答案 0 :(得分:1)
现在您正在创建新地图并替换每次迭代的当前地图。请尝试仅为每次迭代创建标记:
<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>
答案 1 :(得分:1)
var data = <?= var_dump($map) ?>;
"laracasts/utilities": "~2.0"