從經度和緯度獲取國名的最簡單方法是什麼?我一直在尋找互聯網,我找到了一個ANE,但它不是免費的。我需要一個非常簡單的方法,我不需要任何其他功能。它可以在線或離線。 我發現的另一個API是Geonames API,但我似乎無法找到如何在AS3中使用它以通過提供經度和緯度來獲取國家名稱。如何從AIR中獲取經緯度的國家名稱?
任何幫助,非常感謝。
從經度和緯度獲取國名的最簡單方法是什麼?我一直在尋找互聯網,我找到了一個ANE,但它不是免費的。我需要一個非常簡單的方法,我不需要任何其他功能。它可以在線或離線。 我發現的另一個API是Geonames API,但我似乎無法找到如何在AS3中使用它以通過提供經度和緯度來獲取國家名稱。如何從AIR中獲取經緯度的國家名稱?
任何幫助,非常感謝。
正如你在你的問題中提到,您可以通過一個URLLoader
對象使用findNearby Geonames's WebService,你可以用它來加載數據(XML或JSON):
var lat:Number = 37.26801,
lng:Number = -115.80031;
var url:String = 'http://api.geonames.org/findNearby?lat=' + lat + '&lng=' + lng + '&username=demo';
var url_request:URLRequest = new URLRequest(url);
var url_loader:URLLoader = new URLLoader();
url_loader.addEventListener(Event.COMPLETE, on_DataLoad);
url_loader.load(url_request);
function on_DataLoad(e:Event): void
{
var xml:XML = new XML(e.target.data);
trace(xml.geoname.countryName); // gives : United States
}
通過請求返回的XML數據:
<geonames>
<geoname>
<toponymName>Groom Lake</toponymName>
<name>Groom Lake</name>
<lat>37.26801</lat>
<lng>-115.80031</lng>
<geonameId>5505124</geonameId>
<countryCode>US</countryCode>
<countryName>United States</countryName>
<fcl>H</fcl>
<fcode>LK</fcode>
<distance>0.07718</distance>
</geoname>
</geonames>
對於這個代碼,我使用的可用來測試國地名的Web服務的模擬賬戶,但你應該創建自己的帳戶才能使用它。
您還可以使用Google Maps Geocoding API後getting a key:
url = 'https://maps.googleapis.com/maps/api/geocode/xml?latlng=' + lat + ',' + lng + '&key=YOUR_API_KEY_GOES_HERE';
然後
// ...
function on_DataLoad(e:Event): void
{
var xml:XML = new XML(e.target.data);
trace(xml.result[0].address_component.(type[0] == 'country').long_name); // gives : United States
}
當XML內容爲:
<GeocodeResponse>
<status>OK</status>
<result>
<type>route</type>
<formatted_address>Unnamed Road, Nevada, United States</formatted_address>
<address_component>
<!-- ... -->
</address_component>
<address_component>
<!-- ... -->
</address_component>
<address_component>
<!-- ... -->
</address_component>
<address_component>
<long_name>United States</long_name>
<short_name>US</short_name>
<type>country</type>
<type>political</type>
</address_component>
<geometry>
<!-- ... -->
</geometry>
<place_id>
<!-- ... -->
</place_id>
</result>
<!--
...
-->
</GeocodeResponse>
希望能有所幫助。
謝謝soo !!! –
由於在AIR中沒有內置的方法來執行此操作,所以必須使用其他一些API。 – Brian