使用 Google 地图同步获取 10000 个坐标
Fetch 10000 coordinates synchronously using Google Maps
我想使用 Google 地图地理编码 API 获取 10,000 行数据的坐标,并将每一行打印到浏览器。
我的方法是循环每一行(包含地址)并将其传递给 Google 地图 URL,然后我解析那些 JSON 数据以获取其纬度和经度。我使用 jQuery.
但这里的问题是它似乎 运行 是异步的。我曾尝试使用递归,但它在不打印任何内容的情况下循环。我已阅读设置 async=false 但我不知道将它放在哪里。
这是我当前的代码
var x = 1;
setInterval(function(){
geturl = 'parse.php?urut='+x;
$.get(geturl, function(get){
url = get;
});
$.getJSON(url, function(data){
var lat = data.results[0].geometry.location.lat;
var lang = data.results[0].geometry.location.lng;
var nama = data.results[0].address_components[1].long_name;
$('table').append("<tr><td>"+x+"</td><td>"+lat+","+lang+"</td><td>"+nama+"</td></tr>");
});
x++;
}, 500);
有什么推荐吗?
这段代码应该会告诉您哪里出错了
function getCoords(x) {
geturl = 'parse.php?urut='+x;
$.get(geturl, function(url){
$.getJSON(url, function(data){
var lat = data.results[0].geometry.location.lat;
var lang = data.results[0].geometry.location.lng;
var nama = data.results[0].address_components[1].long_name;
$('table').append("<tr><td>"+x+"</td><td>"+lat+","+lang+"</td><td>"+nama+"</td></tr>");
});
});
}
$.getJSON 是 运行 作为 $.get 成功函数的一部分 - 因此只有当 $.get 完成后它才会 运行
我已将其显示为函数,因此 x
的值在 $('table').append
行中是正确的
我想使用 Google 地图地理编码 API 获取 10,000 行数据的坐标,并将每一行打印到浏览器。
我的方法是循环每一行(包含地址)并将其传递给 Google 地图 URL,然后我解析那些 JSON 数据以获取其纬度和经度。我使用 jQuery.
但这里的问题是它似乎 运行 是异步的。我曾尝试使用递归,但它在不打印任何内容的情况下循环。我已阅读设置 async=false 但我不知道将它放在哪里。
这是我当前的代码
var x = 1;
setInterval(function(){
geturl = 'parse.php?urut='+x;
$.get(geturl, function(get){
url = get;
});
$.getJSON(url, function(data){
var lat = data.results[0].geometry.location.lat;
var lang = data.results[0].geometry.location.lng;
var nama = data.results[0].address_components[1].long_name;
$('table').append("<tr><td>"+x+"</td><td>"+lat+","+lang+"</td><td>"+nama+"</td></tr>");
});
x++;
}, 500);
有什么推荐吗?
这段代码应该会告诉您哪里出错了
function getCoords(x) {
geturl = 'parse.php?urut='+x;
$.get(geturl, function(url){
$.getJSON(url, function(data){
var lat = data.results[0].geometry.location.lat;
var lang = data.results[0].geometry.location.lng;
var nama = data.results[0].address_components[1].long_name;
$('table').append("<tr><td>"+x+"</td><td>"+lat+","+lang+"</td><td>"+nama+"</td></tr>");
});
});
}
$.getJSON 是 运行 作为 $.get 成功函数的一部分 - 因此只有当 $.get 完成后它才会 运行
我已将其显示为函数,因此 x
的值在 $('table').append
行中是正确的