地图位置开发解析(一)
介紹
本文以騰訊位置服務為例,介紹一下在開發(fā)地圖位置服務的一些思路和想法。
?
騰訊位置服務,提供了地點搜索,地址解析,逆地址解析,路線規(guī)劃,距離計算,行政區(qū)劃,坐標轉(zhuǎn)換,IP定位的相關接口供大家使用。
?
使用之前需要注冊自己的key,在這里,大家點擊下面鏈接,就可以直接注冊免費使用了。
?
邀請碼: GUZRFLG
邀請鏈接: https://lbs.qq.com?lbs_invite=GUZRFLG
?
如果是個人開發(fā)測試學習,免費的調(diào)用次數(shù)已經(jīng)足夠我們使用了,如果需要商業(yè)使用,可以付費購買。
?
本篇文章只著重介紹路線規(guī)劃服務,其他的模塊,在后面一系列文章里會分別介紹。
?
路線規(guī)劃
開發(fā)路線規(guī)劃,提前需要準備的東西一定要有路網(wǎng)數(shù)據(jù),如果想計算的準確,路網(wǎng)數(shù)據(jù)要盡可能的全和精確,不同等級的道路和相關道路屬性都要有。
?
以騰訊為例,騰訊地圖API給我們提供了駕車,步行,騎行,公交四種路線規(guī)劃方式,具體可以在騰訊位置服務,WebService API下了解。
當?shù)缆窋?shù)據(jù)準備好之后,所謂的路線規(guī)劃,簡單來說就是輸入一個起始點,輸入一個終止點,在地圖上計算合理的路線,那么如何計算出合理的路線?
?
如果熟悉地圖相關開發(fā)的,應該知道,計算兩點直接的距離,需要的是倆個經(jīng)緯度,而我們一般用地圖的時候,起始點和終止點,輸入的都是地址,所以在進行路線計算的時候,首先要用的一個就是地址解析。
?
地址解析不了解的同學,我在這里簡單說一下,地址解析主要就是將輸入的地址,轉(zhuǎn)換成地圖上對應的經(jīng)緯度,反過來逆地址解析就是,將輸入的經(jīng)緯度轉(zhuǎn)換成當前位置對應的地址。
?
對于地址解析和逆地址解析,聽起來容易,但做起來其實是需要大量的地址數(shù)據(jù)作為支撐的,大體說一下需要用到的東西,地址數(shù)據(jù)庫,行政區(qū)劃區(qū)分,字典分詞,權重值(很多地址并不是我們想象的那么規(guī)范,所以解析的時候需要有取舍),POI數(shù)據(jù)等等,其中在分詞的時候,要對行政區(qū)劃和具體的門址地址庫進行區(qū)分,解析。這里先簡單了解了解,后續(xù)文章詳細介紹這一塊的時候,會重點說這些東西。
?
我們回到路線規(guī)劃上去,在得到起始點和終止點的經(jīng)緯度的時候,下一步要做的就是算路了,這個時候不同的分類,對應了不同的算路算法,像駕車,步行,騎行等,所以這就需要我們的道路數(shù)據(jù)全而精了,如果你只有一級道路,二級道路和高速公路這些,那去計算步行,豈不是沒什么意義。
?
我們以駕車為例,計算兩點之間最優(yōu)的路線,主要就是從一個點出發(fā),開始找路,首先你可以匹配離你最近的道路,然后出發(fā),在每遇到一個岔路口的時候,都分別去找路,目的就是一直找到可以到達終點的線路。
?
在這里有的人會說,如果兩地較遠,那么路會非常非常多,要一條一條去找嗎,還有就是算路的時間問題,如何可以更快的算出想要的路線?
?
首先倆點之間的路確實非常多,包括近路、遠路、走不通的路都有,而我們在開始的時候是無法確定的,所以在最開始肯定要每一條路都去找,而在找的過程中,可以對已經(jīng)找到的路進行過濾,這里的因素可以有紅綠燈的個數(shù),收費站的個數(shù),道路行駛花費的時間是否已經(jīng)相對于其他道路超出一個閾值,通過設置各種因素條件,很多道路在找到一定程度上就會舍棄,節(jié)省了時間,也不需要每一條道路都去找一遍。
?
另外,找路不是從起止點開始不停的找,一直找到終點,我們可以從起始點和終點同時開始找路,兩邊同時進行,直到匯合的時候,算路完成。
?
所以這樣做的話,就會發(fā)現(xiàn)在兩點之間找路,基本就是以點為中心,離點越近的路會找的越多,越往外發(fā)散,匹配的道路越少,速度也會更快。
?
由于公司規(guī)定原因,我不能把自己開發(fā)的相關源碼拿出來分享,后續(xù)我看是否可以提取一些公共通用的算法,分享給大家。
?
如果你是開發(fā)底層位置服務進行路線規(guī)劃的,可以簡單參考參考,如果只是需要直接在業(yè)務上調(diào)用使用相關接口的,那可以直接使用騰訊提供的web接口,只要申請了自己的key,就可以免費調(diào)用了(附申請地址:https://lbs.qq.com?lbs_invite=GUZRFLG)。
?
最后大家若還想了解更多關于位置服務開發(fā),后面我會把我開發(fā)過的地址解析,逆地址解析,距離計算,行政區(qū)劃,坐標轉(zhuǎn)換,IP定位等這些相關東西分享給大家。
總結
以上是生活随笔為你收集整理的地图位置开发解析(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的博客页面客制化 v2
- 下一篇: 教你撩妹,每天给小姐姐发一封暖心邮件