2015-07-12 18 views
0

我從https://github.com/tapvt/php-world-cities-array拉出城市數組。每個區域略除了在美國的情況下解析來自php-world-cities-array的區域代碼

array (
    'city' => 'Sant Julià de Lòria', 
    'region' => '06', 
    'country' => 'AD', 
    'latitude' => '42.46372', 
    'longitude' => '1.49129', 
) 

的由於許多國家有多個城市具有相同名稱的,我需要區分基礎上的區域。爲了顯示區域,我需要比數字更多的東西才能被用戶識別。對於美國來說,地區以適當的方式出現,但對德國等其他國家來說,它的數字不幸是不可讀的。

我的問題是如何獲取php-world-cities-arrays中區域的人類可讀名稱?

+0

您可以創建另一個數組,將數字轉換爲相應的國家/地區名稱,或者直接進行搜索和替換。包含所有陣列的文件非常大。我不確定你使用這些數據是什麼,但也許使用API​​代替它會更有優勢。 – superkayrad

+0

我已經將它製作成一個數據庫表格,以方便編程訪問。解析國家名稱已經實現,但我無法弄清楚如何解析區域號碼。 – user4826347

+0

德國「München」地區「02」 - 「02」是否意味着拜仁/巴伐利亞或磨石是指「地區」。它既可以是一個地理區域,也可以是一個行政區域(聯邦國家)或郵政區域,在所有三種情況下都不相同。我不會依賴那個非常大的php數組。看看這個,大概:http://planet.openstreetmap.org/ –

回答

2

區域代碼標識管理區域。例如,DE-01標識的巴登 - 符騰堡州地區,這裏的相應的記錄:

array (
    'city' => 'Stuttgart', 
    'region' => '01', 
    'country' => 'DE', 
    'latitude' => '48.78232', 
    'longitude' => '9.17702', 
) 

破譯地區代碼01到巴登 - 符騰堡州,你就必須建立另一個數組。您可以使用反向地理編碼服務,例如Google Maps API。例如:

https://maps.googleapis.com/maps/api/geocode/json?address=48.78232,9.17702&hl=en&sensor=false 

這會給你在每個政治行政級別的所有名稱。區域ID應映射到省級或「administrative_level_1」。在上面的例子中,如果使用short_name字段,則會解析爲「Baden-Württemberg」或「BW」。

記住在解碼區域時構建一個數組。否則,會有太多重複的地圖API請求,您會受到限制。

+0

謝謝。我會放棄它。我如何發送https請求來獲取程序? – user4826347

+0

在服務器端使用CURL。 $捲曲= curl_init($網址); ... – Schien

+0

我以編程方式得到了結果。我將如何獲得遞歸數組中short_name字段的值。數組或字符串中的curl響應也會如何? – user4826347