2016-07-05 10 views
0

我使用這個: geocoder.geocode(geoRequest,功能(結果狀態){ ... ... }是否可以從geocoder API獲得一致的address_components數據?

的問題是,從地理編碼器返回的數據似乎是不一致。可能值得一提的是,當我在調用地理編碼器之前加載maps API的js文件時,我指定了語言(並且我還指定了地理編碼器中變量geoRequest中的國家(例如:澳大利亞的AU)。地理編碼呼叫)

爲了讓別人更簡單地瞭解我所瞭解的內容,我們可以使用以下網址: http://maps.googleapis.com/maps/api/geocode/json?components=country:AU&language=en&address=darwin

在結果中有趣的部分是,這一要求returnes這些address_components LONG_NAME:

澳大利亞

北領地(SHORT_NAME = NT)

達爾文

如果我有「布里格斯街道「在搜索,所以我得到這個網址: http://maps.googleapis.com/maps/api/geocode/json?components=country:AU&language=en&address=briggs+street,darwin

然後我得到這些address_components LONG_NAME:

澳大利亞

北領地(SHORT_NAME = NT)

達爾文市

達爾文市

布里格斯街

我的問題:

爲什麼在我搜索「briggs street,darwin」的第二個例子中,「Darwin」沒有返回?在這種情況下,文字是:

達爾文市

達爾文市

是否可以告知地址解析器API,我想一致hierarcical返回的結果,既沒有指定例如一條路?

我問的原因是我想根據用戶指定的位置收集som統計信息,或者輸入城市名稱或街道。我希望能夠使用返回的component_addresses在客戶端(用戶)使用其他信息建立數據庫。

但是,如果例如統計報告的統計報告不是很一致。因爲用戶輸入「briggs street,darwin」的用戶輸入的數據將不會獲得存儲在「Darwin」位置以下的數據(至於用戶註冊的用戶只能輸入「達爾文」)第一個用戶) - 因爲「達爾文」不同於「達爾文城市」和「達爾文小型城市」。

可以觀察類似的不一致搜索「富爾頓街,布魯克林」和「布魯克林」

此搜索布魯克林: 成分=國家:美國&地址=布魯克林

回報:

美國

紐約(SHORT_NAME = NY)

國王縣

紐約

布魯克林

但是......這個搜索「富爾頓街+布魯克林」: 成分=國家:美國&地址=富爾頓街+布魯克林

回報:

美國

新紐約(SHORT_NAME = NY)

國王縣

布魯克林

富爾頓街

爲什麼沒有「紐約」,「國王縣」和「布魯克林」之間在上述最後的結果呢?再次...似乎有些不一致。

回答

1

下面是另一個例子,現在丹麥:

的歐登塞一個搜索: http://maps.googleapis.com/maps/api/geocode/json?components=country:DK&language=en&address=odense

給了我這樣的結果:

丹麥

區南丹麥大區(administrative_area_level_1)

[...]

如果我在歐登塞搜索街道ryttergade,像這樣: http://maps.googleapis.com/maps/api/geocode/json?components=country:DK&language=en&address=ryttergade,odense

那麼該地區「區域南丹麥」(administrative_area_level_1)是不是在結果集。爲什麼這樣?

有沒有辦法通知地理編碼器,我確實希望在結果集中返回administrative_area_level_1,例如,街道名稱包含在內?

+0

請通過編輯您的問題而不是回答它來添加示例。 – miguev

0

您可以通過反向地理編碼latlngs來獲取它們,但並非總是通過對街道級地址進行地理編碼。

達爾文

address=Darwin返回一個口語化的城市,這是從「達爾文城」你address=briggs+street,darwin不同。口語城市標有"types": ["colloquial_area", "locality", "political"]而不是"types" : ["locality", "political"]

「達爾文市」的(非口語)包含在「達爾文市」中,而口語城市「達爾文」則不包含在內。後者只包含在下一個(更大的)政治分區中,「北領地」也包含「達爾文市」。這解釋了你看到的組件。

布魯克林

布魯克林和紐約市的其他幾個部分是有點特殊。在那裏,城市的名稱(紐約)與郵政地址無關。這就是爲什麼街道級別的地址不應該有局部性,所以是address_components

歐登塞

同在布魯克林,除了這似乎是在整個國家的情況:在administrative_area_level_1組件不顯示,因爲它與街道級地址無關。

相關問題