百度地图行政区划的轮廓界限

最近公司有个需要,就是做个类似于链家的地图找房页面的功能,里面涉及到行政区划的轮廓界限,碰到了一些问题,在此整理一下。(本人用的百度地图)

百度地图的行政区划

在地图上显示行政区划的轮廓界限,可以见百度地图的官方demo。(高德地图demo、天地图的demo)
大致像下图这种效果:

百度地图行政区划的轮廓界限_第1张图片
行政区划轮廓界限.png

在使用中,发现有些行政区划的有误或缺失。

  1. 成都市的【高新西区】和【高新区】百度地图取不到边界点。(猜测:这是经济划区,不属于行政区分范围内)
  2. 马鞍山市的【和县】,百度地图取不到边界的点集合。(属于数据缺失)
  3. 马鞍山市的【博望区】,百度地图能取到,但是取出来的点集合,根【当涂县】的边界点完全重合了,核对了高德和腾讯地图,发现确实是数据错误。见下图:


    百度地图行政区划的轮廓界限_第2张图片
    马鞍山市博望区错误数据.png

为了解决上面的问题,有2种途径:一种就是后台保存这些有异常的行政区划的边界点经纬度坐标数据,然后前端取到显示就行;另外一种就是,前端直接自己去扒数据补齐。
由于一些原因,我这里是自己处理的。数据有误或缺失的行政区域,通过其他地图(高德地图,腾讯地图,天地图地图,google地图)来获取边界轮廓的坐标点集合,然后用百度地图绘制出来。(要是都没有,嘿嘿,去那些租房类网站上扒,什么链家,58,赶集,安居客等等)
目前收集的几个有异常的行政区域数据,见此demo。
效果图:

百度地图行政区划的轮廓界限_第3张图片
马鞍山市博望区-百度地图.png

另外,由于项目是多个地方都会用,有个小功能点:设置某个城市的地图中心点。比如成都,南充,海口,马鞍山,湘潭,襄阳等等,需要根据城市名获取地图坐标,然后设置地图中心点。百度地图提供了方法myGeo.getPoint("北京市海淀区上地10街", function(point){//todo...}, "北京市");(见官方demo),但是注意该方法效果像是异步请求返回数据。

你可能感兴趣的:(百度地图行政区划的轮廓界限)