百度地图api怎么批量获取经纬度坐标?

BIRD72sky BIRD72sky 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有一个列表,列表内容大概是一下这样,记录若干条,我现在想根据地标名称和城市名称,查询出百度地图对应的经纬度,一次性批量完成,请问要怎么做?
试过循环调用LocalSearch,但是循环速度太快的话,LocalSearch的回调函数来不及处理,也就得不到结果了
初次解除百度地图api,方法比较笨,请大神指点

地标名称 城市名称 百度地图经度 百度地图纬度
(MarkName) (cityName)

纺织大观园 南通市
九里汉文化旅游区 徐州市
文峰塔 阜阳市
赤峰博物馆 新城区
寒山寺 苏州市
金鸡湖 苏州市
世纪工艺品广场 深圳市
翠湖公园 昆明市
海滨(菊花岛) 葫芦岛市



var strJson = "";
// 【百度地图经纬度】
function EditMarkAll() {
strJson = "";
// 数据库查询,查询全表
var data = // 这里是从数据库中查询得到的一个datatable(就是上面的列表);
for (var i = 0; i < data.Rows.length; i++) {
var nDr = data.Rows[i];
if (i == data.Rows.length - 1) {
// 最后一次循环
GetPointMap(nDr["MarkName"], nDr["cityName"], nDr["MarkID"], true);
}
else {
GetPointMap(nDr["MarkName"], nDr["cityName"], nDr["MarkID"], false);
}
}
}


// 使用百度地图接口查询地点坐标
function GetPointMap(markName, cityName, markId, bl) {
var lat = "";
var lng = "";

//if (markName == "" || cityName == "") {
// strJson += "," + lat + "/" + lng + "/" + markId;
// return;
//}

var map = new BMap.Map("container");

var local = new BMap.LocalSearch(cityName, { renderOptions: { map: map } });
local.onSearchComplete(function (results) {
var poi = results.getPoi(0);
console.log(poi);
lat = results.Dq[0].point.lat;
lng = results.Dq[0].point.lng;
strJson += "," + lat + "/" + lng + "/" + markId;

if (bl) {
console.log(strJson);
/// 最后一次循环时,进入后台方法,更新数据坐标
alert("获取完成");
}
});
local.search(cityName + markName);

}
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
BIRD72sky
JavaScript 87,983 成员 224,680 内容