700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 基于JAVA获取行政区边界坐标_基于JavaScript实现高德地图和百度地图提取行政区边界经

基于JAVA获取行政区边界坐标_基于JavaScript实现高德地图和百度地图提取行政区边界经

时间:2022-03-03 03:42:47

相关推荐

基于JAVA获取行政区边界坐标_基于JavaScript实现高德地图和百度地图提取行政区边界经

这个话题感兴趣的朋友可以自己搜索火星坐标相关转换,精度在1m范围的网上提供有服务可以免费使用.自写程序经验证精度在6m 以内.

百度地图方法

关键函数是 BMap.Boundary() 生成的类,调用它的方法get就可以通过名称获得县或市级以上的行政区域.

获取行政区域

var fileName = "";

var newFileObject = fso.CreateTextFile(folderName + "\\" + name + ".txt",true);

map.clearOverlays(); //清除地图覆盖物

var count = rs.boundaries.length; //行政区域的点有多少个

for (var i = 0; i < count; i++) {

var ply = new BMap.Polygon(rs.boundaries[i],{ strokeWeight: 2,strokeColor: "#ff0000" }); //建立多边形覆盖物

map.addOverlay(ply); //添加覆盖物

map.setViewport(ply.getPath()); //调整视野

}

newFileObject.write(rs.boundaries[0]);

newFileObject.Close();

});

}

关键代码通过阅读示例文件可以发现在下拉列表返回里面有边界值的出现.

查询行政区划列表并生成相应的下拉列表

var me = this;

if (adcodeLevel == 'district'||adcodeLevel == 'city') {//第三级时查询边界点

this._district.setExtensions('all');

} else {

this._district.setExtensions('base');

}

this._district.setLevel(adcodeLevel); //行政区级别

this._district.search(keyword,function(status,result) {//注意,api返回的格式不统一,在下面用三个条件分别处理

var districtData = result.districtList[0];

if (districtData.districtList) {

me.createSelectList(selectId,districtData.districtList);

} else if (districtData.districts) {

me.createSelectList(selectId,districtData.districts);

} else {

document.getElementById(selectId).innerHTML = '';

}

map.setCenter(districtData.center);

me.clearMap();

me.addPolygon(districtData.boundaries);

其中的districtData.boundaries 就是我们需要的.调试了一下,大胆猜测果然是实现了Tostring() 方法的一个对象.

"104.639106,26.863388,104.644771,26.861842,104.64767,26.854997,104.647748..." 很明显的就是我们需要的gcj坐标.

总结

至此,基本也就没有什么问题了,剩余的工作就是解析得到的文件.需要提取全国的数据也就是循环读取全国城市列表文件了.(通常搜索cityname,电脑里面都会找到的,原因,呵呵,猜测是迅雷,QQ之类的IP定位需要吧.)

重要的一点,推荐使用高德地图,原因就是百度地图得到的行政规划有问题,不包含县级市.最典型的就是贵州省,很多地市都是分离的,是带岛或洞的复杂多边形.百度在这里完败.关于怎么处理这里复杂的多边形以支持在MapWinGIS显示和处理,下次会写一篇笔记.

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

基于JAVA获取行政区边界坐标_基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。