0
- 一個城市
- 一個GeoPoint
問題:確定給定的GeoPoint是否屬於這個城市。
我目前的解決方案很簡單:
- 做反向地理編碼(我使用Python googlemaps包)。這產生結果字典。
- 檢查結果[ '標'] [0] [ 'AddressDetails']尋找處所名稱關鍵字。
- 給定的GeoPoint被認爲是在城市裏面,如果發現處所名稱等於城市的名稱。
到目前爲止好。即使它不是最好的算法,它肯定是最簡單的。但是,有問題。舉例如下:
- 英國阿伯丁。
- LAT = 57.14369,LNG = -2.22314
的GoogleMaps.reverse_geocode(57.14369, -2.22314)
產生以下結果:
{ u'Placemark': [ { u'AddressDetails': { u'Accuracy': 6,
u'Country': { u'CountryName': u'UK',
u'CountryNameCode': u'GB',
u'Thoroughfare': { u'ThoroughfareName': u'A944'}}},
u'ExtendedData': { u'LatLonBox': { u'east': -2.2200414,
u'north': 57.1480762,
u'south': 57.1453783,
u'west': -2.2239393}},
u'Point': { u'coordinates': [-2.221984, 57.1467683, 0]},
u'address': u'A944, Aberdeen, Aberdeen City AB15, UK',
u'id': u'p1'}],
u'_id': 7635459717214061L,
u'loc': [-2.2231, 57.1437]}
的問題是,該格式的地址(A944, Aberdeen, Aberdeen City AB15, UK
)沒有破碎成細節 - 返回的AddressDetails
本質上是無用的。
所以,它看起來像一個必須手動解析返回address
,這似乎是在一般情況下,一個真正的PITA。
我想知道其他人是如何解決這個問題。使用谷歌地圖Web服務API不是必需的。
謝謝。
嗯,我還沒有發明出來。這是谷歌地圖Python包返回。它也沒有發明它。我可以附加相應的HTTP請求和響應。我會嘗試按照您的建議使用json端點。 – mark 2012-04-24 12:02:15
@馬克:我並不是在暗示你只是簡單地發明了它,而該Python包沒有返回的一切,你可以得到使用WebService。對不起,我應該更清楚一點。 – 2012-04-24 12:09:12
python包返回它在響應中獲得的所有內容 - 我已經檢查過它。沒有任何信息被隱瞞。我認爲這個服務有兩個端點,python googlemaps使用了舊的端點。 – mark 2012-04-24 12:22:23