关于百度地图API批量转换成坐标的方法

下面的代码思路是:从页面获取馆Id数组,将其数组通过ajax提交到服务器,服务器返回馆的ID,馆名,和馆地址;

再循环地址,获取每个地址的坐标,并将馆ID和其坐标对应起来,提交到服务器更新,转换失败的显示到页面上。

只记录了部分js代码~

<script type="text/javascript">

$(function () {
$("#Iposition").click(function () {
ArrayIdTwo();
});
});

var map = new BMap.Map("waiMap"); //创建地图对象
var localSearch = new BMap.LocalSearch(map); 
var keywordArray = new Array(); //存放转换成功后的参数数组
var keyword = new Array(); //存放馆地址数组
var vId = "";             //
var successParm = ""; //用来获取成功的参数
var vAdress = "";
var index = 0;

function ArrayIdTwo() {

//获取选中的馆Id
$("#RpBody .tabshow input[type=‘checkbox‘]").each(function(index) {
if ($(this).attr("checked") == "checked") {
vId += $(this).parent().parent(‘td‘).next("td").html().trim() + ",";
}
});
//传参ID,返回馆地址
$.ajaxSetup({ async: false });
$.getJSON("handler/changeBaidu.ashx?callback=?", { "action": "getLibraryId", id: vId }, function(data) {
if (data == "0") return;
for (var i = 0; i < data.length; i++) {
if (i == data.length - 1) {
vAdress += data[i].Id + ":" + data[i].Name + ":" + data[i].Adress;

} else {
vAdress += data[i].Id + ":" + data[i].Name + ":" + data[i].Adress + ",";
}
}
});
var vAdressObj = vAdress.split(","); //切割成每个馆的参数
var adress = "";

for (var j = 0; j < vAdressObj.length; j++) { //循环输出地址数组
adress = vAdressObj[j].split(":");
keyword.push(adress[2]);
keywordArray.push(adress[0]);   //馆ID数组
}
searchBd(); 
}

function searchBd() {

var searchAdd = keyword[index];
setTime();
localSearch.search(searchAdd);
localSearch.setSearchCompleteCallback(function (searchResult) {
var poi = searchResult.getPoi(0);
if (poi == "" || poi == null) { //转换失败,抓取馆名
document.getElementById("error").innerHTML += "转换失败的馆ID:" + keywordArray[index-1] + "、" + searchAdd + ": error" + "</br>";
} else {
successParm += keywordArray[index-1] + "," + poi.point.lng + "," + poi.point.lat + "|";
document.getElementById("result").innerHTML += keywordArray[index - 1] + "、" + searchAdd + ":" + poi.point.lng + "," + poi.point.lat + "</br>";
}
});
}

function setTime() {
if (index < keyword.length) {
setTimeout(window.searchBd, 500);
index++;
} else {
//转换后将变量都清空,防止数据重复
vId = "";
vAdress = "";
index = 0;
keyword = [];
keywordArray = [];
$.getJSON("handler/changeBaidu.ashx?callback=?", { "action": "update", successParm: successParm }, function (data) {
if (data == "0") return;
if (data == "1") {
successParm = ""; //转换后将变量都清空,防止数据重复
alert("坐标更新完成");
}
});
}
}

</script>

时间: 2024-10-27 18:32:38

关于百度地图API批量转换成坐标的方法的相关文章

PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php $jingwei="new BMap.Point($lon

利用百度地图API,获取经纬度坐标

利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代码下载:http://files.cnblogs.com/zjfree/select_map.rar 利用百度地图API,获取经纬度坐标,布布扣,bubuko.com

百度地图API 批量坐标转换

在将原始坐标批量转换的时候,回调的时候发现 data.status = 25 translateCallback = function (data){ //回调时 data.status = 25 } 原因是 个数非法,超过限制 百度API一次最多只支持10个点坐标转换 状态码说明 状态码 含义 0 正常 1 内部错误 21 from非法 22 to非法 24 coords格式非法 25 coords个数非法,超过限制 解决方法可以每十个点为一组,然后依次转换 以下代码可全部复制到HTML中直接

使用百度地图将经纬度转换成具体位置

1.申请百度地图的key: AK http://lbsyun.baidu.com/apiconsole/key http://lbsyun.baidu.com/apiconsole/key/create 最早的百度地图是不需要的这些流程的.但现在百度牛逼了.不申请或审核不通过不给用咯,配置请不要吝啬,全部勾选即可 2.找到开发文档 我们使用的的API叫做 [坐标逆转换],也叫[逆/地址解析] http://lbsyun.baidu.com/index.php?title=jspopular/gu

百度地图API开发:大量坐标点进行分组聚合

leaflet具有markersCluster(标点聚合)的插件非常好用,偶然看到百度地图也有标点聚合开源库,尝试一下,先上效果图: 点此打开交互网页 总结: 1.优点: 百度地图原生的火星坐标系和国内经过偏移的经纬度能完美歪在一起: 网络访问速度比open street map快: 地图信息相对丰富: 2,缺点: 说明文档不是很详细,自定义分组颜色应该有,没找到说明文档: 程序性能不高,点击聚合点会冻结1秒钟的感觉: 美感一般: 实现代码如下: var map = new BMap.Map("

Python利用百度地图api批量获取地址经纬度

1.pip安装xlrd,xlwt,requests模块. 2.在工程目录处放置地点Excel文件. python代码: #coding:utf-8 import xlrd import xlwt import requests import urllib import math import re pattern_x = re.compile(r'"x":(".+?")') pattern_y = re.compile(r'"y":("

百度地图api开发:根据坐标获得地理描述地址

// 创建地理编码实例              var myGeo = new BMap.Geocoder();              // 根据坐标得到地址描述            myGeo.getLocation(point, function(result){            var boundary = result.addressComponents.city+result.addressComponents.district;             getBound

百度地图API实现批量地址解析

1.前言 写这篇文章的原因是最近做一个GIS项目在网上爬取了一些数据,无奈只有地址的文字信息没有坐标信息,如何把信息显现在地图上呢?很纠结啊,查看了一下百度地图API惊奇的发现百度提供了地址解析的API,然后查看了他的Demo后豁然开朗,所以动手将自己的文字信息数据进行解析坐标信息.下面开始讲解. 2.方案 (1)自己数据库中的数据 (2)百度地图API Demo <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

从百度地图API接口批量获取地点的经纬度

今天我同事要做一个规划,需要获取Excel中的2000多个地址的经纬度.问我有没有办法,正好我这段时间学习 Python,想了一下,觉得可以.于是就写了一个以下的代码.刚开始觉得差不多两个小时可以搞定,结果花费了半天多,汗...主要是在卡从百度地图 API获取的是坐标总是不对.后来网上查资料才明白,原来从百度API获取的是墨卡托坐标,而实际使用的是WGS84坐标. 1 #!/usr/bin/python 2 #coding:utf-8 3 4 import xlrd 5 import xlwt