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