最近公司有個(gè)需要谜嫉,就是做個(gè)類似于鏈家的地圖找房頁面的功能,里面涉及到行政區(qū)劃的輪廓界限,碰到了一些問題智润,在此整理一下。(本人用的百度地圖)
百度地圖的行政區(qū)劃
在地圖上顯示行政區(qū)劃的輪廓界限未辆,可以見百度地圖的官方demo窟绷。(高德地圖demo、天地圖的demo)
大致像下圖這種效果:
在使用中鼎姐,發(fā)現(xiàn)有些行政區(qū)劃的有誤或缺失钾麸。
- 成都市的【高新西區(qū)】和【高新區(qū)】百度地圖取不到邊界點(diǎn)更振。(猜測:這是經(jīng)濟(jì)劃區(qū),不屬于行政區(qū)分范圍內(nèi))
- 馬鞍山市的【和縣】饭尝,百度地圖取不到邊界的點(diǎn)集合肯腕。(屬于數(shù)據(jù)缺失)
-
馬鞍山市的【博望區(qū)】,百度地圖能取到钥平,但是取出來的點(diǎn)集合实撒,根【當(dāng)涂縣】的邊界點(diǎn)完全重合了,核對(duì)了高德和騰訊地圖涉瘾,發(fā)現(xiàn)確實(shí)是數(shù)據(jù)錯(cuò)誤知态。見下圖:
馬鞍山市博望區(qū)錯(cuò)誤數(shù)據(jù).png
為了解決上面的問題,有2種途徑:一種就是后臺(tái)保存這些有異常的行政區(qū)劃的邊界點(diǎn)經(jīng)緯度坐標(biāo)數(shù)據(jù)立叛,然后前端取到顯示就行负敏;另外一種就是,前端直接自己去扒數(shù)據(jù)補(bǔ)齊秘蛇。
由于一些原因其做,我這里是自己處理的。數(shù)據(jù)有誤或缺失的行政區(qū)域赁还,通過其他地圖(高德地圖妖泄,騰訊地圖,天地圖地圖艘策,google地圖)來獲取邊界輪廓的坐標(biāo)點(diǎn)集合蹈胡,然后用百度地圖繪制出來。(要是都沒有朋蔫,嘿嘿罚渐,去那些租房類網(wǎng)站上扒,什么鏈家斑举,58搅轿,趕集,安居客等等)
目前收集的幾個(gè)有異常的行政區(qū)域數(shù)據(jù)富玷,見此demo璧坟。
效果圖:
另外,由于項(xiàng)目是多個(gè)地方都會(huì)用赎懦,有個(gè)小功能點(diǎn):設(shè)置某個(gè)城市的地圖中心點(diǎn)雀鹃。比如成都,南充励两,豪杈ィ口,馬鞍山当悔,湘潭傅瞻,襄陽等等踢代,需要根據(jù)城市名獲取地圖坐標(biāo),然后設(shè)置地圖中心點(diǎn)嗅骄。百度地圖提供了方法myGeo.getPoint("北京市海淀區(qū)上地10街", function(point){//todo...}, "北京市");
(見官方demo),但是注意該方法效果像是異步請(qǐng)求返回?cái)?shù)據(jù)胳挎。