遇到很多地理位置需要得到其经纬度的时候,又不想或者不会写代码就很恼火,
只能一个一个去搜索去一个个复制
不管你会不会写前后端代码,
使用下面的方法就可以轻松的实现经纬度的批量查询(提示:基于百度地图api):
1.将下面的代码拷到新建的txt文本里面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0,user-scalable=no" />
<title>百度地图API-批量地址解译</title>
<style type="text/css">
body, html {
width: 100%;
height: 100%;
margin: 0;
font-family: "微软雅黑";
}
#l-map {
height: 400px;
width: 100%;
}
#r-result {
width: 100%;
font-size: 14px;
line-height: 20px;
}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的百度开发者秘钥"></script>
</head>
<body>
<div id="l-map"></div>
<div id="r-result">
<input type="button" value="批量地址解析" onclick="bdGEO()" />
<div id="result"></div>
</div>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(116.31515,39.999006), 12);
//第一个参数可以是根据之前创建好的一个点为中心,创建出地图,也可以根据城市地区的中文名称创建地图。
//第二个参数是地图缩放级别,最大为19,最小为0。
map.enableScrollWheelZoom(true);
var index = 0;
var myGeo = new BMap.Geocoder();
//在这里输入想要获取的地名坐标
var adds = [ '彭州市金彭西路385号',
'成都市都江堰市银杏街道壹街社区上善西路3号',
'成都市崇州市蜀南西路68号',
'成都市大邑县晋原镇桃园大道2号' ];
function bdGEO() {
var add = adds[index];
geocodeSearch(add);
index++;
}
function geocodeSearch(add) {
if (index < adds.length) {
setTimeout(window.bdGEO, 400);
}
myGeo.getPoint(
add,
function(point) {
if (point) {
document.getElementById("result").innerHTML += index
+ " "
+ add
+ ":"
+ point.lng
+ ","
+ point.lat + "</br>";
var address = new BMap.Point(point.lng,
point.lat);
addMarker(address, new BMap.Label(index
+ ":" + add, {
offset : newBMap.Size(20, -10)
}));
}
}, "中国");
}
// 编写自定义函数,创建标注
function addMarker(point, label) {
var marker = new BMap.Marker(point);
map.addOverlay(marker);
marker.setLabel(label);
}
</script>
</body>
</html>
要注意一点
这个秘钥需要换成自己的,需要去百度地图开放平台申请一个,不会的本文后面有补充
2.修改后缀为html
3.把你的地理信息加工成数组后,替换代码里面的地址数组
4.保存后,将此HTML文件拖到浏览器(我用的谷歌),点击批量地址解析就行了
补充:
如果没有用过百度地图开放平台,还需要进行开发者认证才能申请秘钥,人脸识别后,大概花五分钟左右就通过了
认证完了创建应用,白名单那可以填*号
创建成功就能看到你申请的应用的秘钥了
参考 这篇文章