将数据传递给另一个函数



我从Json中抓取数据,并在queryLat/queryLng中包含数组,之后我创建了另一个函数initMap,并将其绑定到谷歌脚本。但是我很难将queryLat和queryLng传递到initMap中。弹出"queryLat未定义"。如何将它们传递给initMap。

var queryLat = [];
var queryLng = [];
@foreach($estates as $est)
var result = $.getJSON({
url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'
});
result.done(function(data) {
queryLat = data.results[0].geometry.location.lat;
queryLng = data.results[0].geometry.location.lng;
});
@endforeach

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 < queryLat.length; i++)
{
var newMarker = new google.maps.Marker
({
position: {lat: queryLat[i], lng: queryLng[i]} ,
map: map
});
}
}

对于多个标记,如果要全局定义数组,则必须在数组中推送lat和long值,还需要更新标记变量以显示不同的标记。。希望它能帮助你获得多重标记。

var queryLat=[];var queryLng=[];

@foreach($estates as $est)
var result = $.getJSON({
url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'
});
result.done(function(data) {
queryLat.push(data.results[0].geometry.location.lat);
queryLng.push(data.results[0].geometry.location.lng);
});
@endforeach
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 < queryLat.length; i++)
{
var new_marker_str = "newMarker"+i;
new_marker_str = new google.maps.Marker
({
position: {lat: queryLat[i], lng: queryLng[i]} ,
map: map
});
}
}

您应该在脚本开始的地方全局定义变量queryLat和queryLng。

<script type="text/javascript">
var queryLat;
var queryLng;
@foreach($estates as $est)
var result = $.getJSON({
url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'
});
result.done(function(data) {
queryLat = data.results[0].geometry.location.lat;
queryLng = data.results[0].geometry.location.lng;
});
@endforeach

function initMap()
{
var options =
{
zoom : 12,
center : {lat:34.652500, lng:135.506302}
}
var map  = new
google.maps.Map(document.getElementById("map"), options);
var marker = new
google.maps.Marker
({
position: {lat: queryLat, lng: queryLng},
map: map
});
}

问题出现在以下代码中:

url: 'https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}'

您已经用撇号将字符串括起来,但该字符串也包含撇号。

使用这个替代:

url: "https://maps.googleapis.com/maps/api/geocode/json?address={{$est->address}}&key={{env('GOOGLE_MAPS_API')}}"

相关内容

  • 没有找到相关文章

最新更新