天天看點

GMap.Net開發之位址解析與路徑查找

先看位址解析,gmap中的位址解析主要用到geocodingprovider中的如下方法:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

先定義一些變量:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

位址解析的準确度和目前使用的地圖服務有很大關系,一般使用什麼mapprovider就使用該mapprovider提供的服務。

如我使用的是googlechinamap,就使用google的位址解析:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

位址解析一般有2種情況,第一種就是根據坐标點得到該點對應的位址資訊,在map的double click中,我們得到輕按兩下點的位址資訊:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

效果圖如下:

GMap.Net開發之位址解析與路徑查找

第二種情況就是根據位址得到對應的坐标點,輸入字元串位址,在地圖上得到對應的位置點,可能有多個,就做個了combobox儲存所有查詢得到的結果,每次選擇一個位址的時候,将地圖的中心位置移到對應的marker的位置,代碼如下:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

效果圖:

GMap.Net開發之位址解析與路徑查找

隻是簡單的測了下,還是比較準确的。。

再來看看路徑查找,gmap中的路徑查找主要用到routingprovider的如下方法:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

先在地圖上添加2個marker,确定“起點”和“終點”:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

再通過routingprovider得到起點和終點之間的路徑:

GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找
GMap.Net開發之位址解析與路徑查找

這裡使用的google的地圖服務,卻沒有使用google的api,gmap的作者通過解析浏覽器通路google地圖伺服器和地圖服務的url(其他地圖也一樣),得到了每次通路的url的格式和傳入參數的格式,并找到了規律,确定如何傳入參數和解析傳回結果而封裝了這些類和api,做了這個開源的項目,有興趣的可看其源代碼,還是很有收獲的。。。

參考:

https://greatmaps.codeplex.com/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

http://www.cnblogs.com/luxiaoxun/p/3494756.html

繼續閱讀