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

BIRD72sky 2015-05-22 11:39:48
我有一个列表,列表内容大概是一下这样,记录若干条,我现在想根据地标名称和城市名称,查询出百度地图对应的经纬度,一次性批量完成,请问要怎么做?
试过循环调用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);

}
...全文
4805 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35889725 2016-08-16
  • 打赏
  • 举报
回复
问题解决了吗?
qq_35115981 2016-05-25
  • 打赏
  • 举报
回复
求各位大神说一下具体步骤,初学者表示不懂~感谢~~
虫兽 2016-04-21
  • 打赏
  • 举报
回复
哥们能够批量获取到吗???? 急用啊
BIRD72sky 2015-05-25
  • 打赏
  • 举报
回复
感谢帮助
  • 打赏
  • 举报
回复
百度地址解码是异步的,如果你要按照原来的先后循序呈现内容,不能用for循环,要用全局变量+回调的形式来做。 解码一个地址成功后在全局变量+1再继续解码下一个地址。for循环全部发出解码请求不一定按照先后顺序返回。

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧