Google 地理資訊反解析

2021-06-28 11:16:09 字數 2575 閱讀 8587

android 為位址反解析提供了標準的api 方案,但該方案並不是android sdk的一部分。手機使用者要想

正常使用該功能,手機上必須安裝 google map。但國內沒有廠家缺省內置google map, 手機使用者也不可能

自動安裝。反解析的方案國內應該可以通過baidu地圖api介面,國外的話,還是的通過google.

主要研究下國外地理資訊反解方式

1.獲取經緯度provider 方式

gps 方式: locationmanager.gps_provider

net 方式: locationmanager.gps_net

2種方式優缺點如下:

gps_provider 通過衛星與手機定位經緯度,最小精度可以達到10m左右,但能耗比較大,在手機上不利於

長期開啟。

gps_net 該經緯度誤差較大,基本在1公里內(2g,3g),如果使用wi-fi誤差會遠遠超過1公里。原因是該方式獲取

的並不是手機本身的地理位置經緯度,而是服務站,或者isp提供商的經緯度資訊。如果你用wi-fi方式,並使用國外

**伺服器上網,這個偏差可能跨越半個地球。

2.  google 反解的標準方式

引用包名: android.location.geocoder; 

因不是標準api組成,需要通過geocoder.ispresent先判別能不能使用,然後執行反解析,**如下:

private

void

getaddressfromlocation(

double

latitude,

double

longitude)

utils.

printlog

( "geophyinfotracker" , 

"getaddressfromlocation"

);geocoder geocoder =

new

geocoder(

s_curuicontext

,locale.

english

);listaddresses = geocoder.getfromlocation(latitude, longitude, 1);

if

(addresses !=

null

&& addresses.size() > 0) } 

catch

(exception e)

}3. google 反解的非api方式

如果geocoder 元件不可使用,可以把經緯度直接通過網路傳送google map http伺服器 去獲取

反解析資訊:

url form:

"  +

strlatitude

+  ","

+ strlongitude

+ "&sensor=true_or_false"

把該鏈結通過 httppost 類開啟,然後接收資料即可。

google 支援2種資料返回格式 :json, xml 上面的鏈結返回json 格式資料。

返回資料樣例: ,

,,,],

"formatted_address" : "jiangxia, wuhan, hubei, china, 430223",

"geometry" : ,

"southwest" : }

對於xml格式解析的開源包很多,不再贅述,對應json提供**如下:

private

void

getaddressbygooglemapweb()

string strres = entityutils.

tostring

(response.getentity(), 

"utf-8"

);

jsonobject jo = 

new

jsonobject(strres);  

if

(!jo.has(

"results"

))return;

jsonarray joresult = jo.getjsonarray(

"results"

);  

for

(int

i = 0;i < joresult.length();i++)

if

(item.has(

"short_name"

))

} }

} }} 

catch

(exception e)

}

ios 地理資訊反編碼

clgeocoder geocoder clgeocoder alloc init geocoder reversegeocodelocation manager.location completionhandler nsarray placemarks,nserror error if place...

獲取ip地理資訊

第一種是利用純真ip資料庫,這個可以在網上找到很多,缺點是更新有點慢。第二種是利用門戶 的介面 網易有道的ip位址查詢介面 檢視源 列印幫 function getipplace ip getipplace print r ip 呼叫查詢介面需要抓取網頁,有三種方法,第一種是curl,第二種是 fi...

地理資訊雲服務

有大佬雄心勃勃,準備打造乙個地理資訊平台,作為基礎服務,支撐各種應用。其中一項指標,是要能經得起一定量的併發訪問。這是自然,基礎服務嘛。高併發的套路,如前所學,無非就是非同步機制 負載均衡 快取 分布式資料庫之類。地圖服務沒有什麼來自於使用者的資料寫入,主要是讀取,非同步機制估計用不上 但訊息佇列還...