GPS仅限于返回您所在位置的纬度和经度坐标。
要将这些坐标解析为地址,需要使用外部数据源。将地理坐标转换为地址的行为通常被称为
reverse geocoding
.
有一些免费的反向地理编码服务,例如
that offered within the Google Maps API
. 但是,请确保您阅读并理解
Terms of Use
在使用此类服务之前。
例如,您可以使用以下HTTP请求使用Google Maps API进行反向地理编码:
简单CSV:
http://maps.google.com/maps/geo?q=40.756041,-73.986939&output=csv&sensor=false
返回:
200,8,"601-699 7th Ave, New York, NY 10036, USA"
更复杂的XML:
http://maps.google.com/maps/geo?q=40.756041,-73.986939&output=xml&sensor=false
返回:
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
<name>40.756041,-73.986939</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>601-699 7th Ave, New York, NY 10036, USA</address>
<AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>US</CountryNameCode><CountryName>USA</CountryName><AdministrativeArea><AdministrativeAreaName>NY</AdministrativeAreaName><SubAdministrativeArea><SubAdministrativeAreaName>New York</SubAdministrativeAreaName><Locality><LocalityName>New York</LocalityName><DependentLocality><DependentLocalityName>Manhattan</DependentLocalityName><Thoroughfare><ThoroughfareName>601-699 7th Ave</ThoroughfareName></Thoroughfare><PostalCode><PostalCodeNumber>10036</PostalCodeNumber></PostalCode></DependentLocality></Locality></SubAdministrativeArea></AdministrativeArea></Country></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7595131" south="40.7532178" east="-73.9835667" west="-73.9898620" />
</ExtendedData>
<Point><coordinates>-73.9869192,40.7560331,0</coordinates></Point>
</Placemark>
<Placemark id="p2">
<address>Times Sq - 42nd St Station, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>Times Sq - 42nd St Station</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7591946" south="40.7528994" east="-73.9838014" west="-73.9900966" />
</ExtendedData>
<Point><coordinates>-73.9869490,40.7560470,0</coordinates></Point>
</Placemark>
<Placemark id="p3">
<address>Times Square - 42nd Street</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>Times Square - 42nd Street</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7591476" south="40.7528524" east="-73.9838524" west="-73.9901476" />
</ExtendedData>
<Point><coordinates>-73.9870000,40.7560000,0</coordinates></Point>
</Placemark>
<Placemark id="p4">
<address>W 42 St - 7 Av, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>W 42 St - 7 Av</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7591446" south="40.7528494" east="-73.9839964" west="-73.9902916" />
</ExtendedData>
<Point><coordinates>-73.9871440,40.7559970,0</coordinates></Point>
</Placemark>
<Placemark id="p5">
<address>New Amsterdam Theatre, New York, NY 10036, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>US</CountryNameCode><CountryName>USA</CountryName><AdministrativeArea><AdministrativeAreaName>NY</AdministrativeAreaName><Locality><LocalityName>New York</LocalityName><PostalCode><PostalCodeNumber>10036</PostalCodeNumber></PostalCode><AddressLine>New Amsterdam Theatre</AddressLine></Locality></AdministrativeArea></Country></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7593416" south="40.7530464" east="-73.9842484" west="-73.9905436" />
</ExtendedData>
<Point><coordinates>-73.9873960,40.7561940,0</coordinates></Point>
</Placemark>
<Placemark id="p6">
<address>W 42 St - 7 Av, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>W 42 St - 7 Av</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7594606" south="40.7531654" east="-73.9842484" west="-73.9905436" />
</ExtendedData>
<Point><coordinates>-73.9873960,40.7563130,0</coordinates></Point>
</Placemark>
<Placemark id="p7">
<address>Times Sq - 42nd St Station, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>Times Sq - 42nd St Station</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7589406" south="40.7526454" east="-73.9832194" west="-73.9895146" />
</ExtendedData>
<Point><coordinates>-73.9863670,40.7557930,0</coordinates></Point>
</Placemark>
<Placemark id="p8">
<address>W 42 St - Broadway, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>W 42 St - Broadway</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7588236" south="40.7525284" east="-73.9831654" west="-73.9894606" />
</ExtendedData>
<Point><coordinates>-73.9863130,40.7556760,0</coordinates></Point>
</Placemark>
<Placemark id="p9">
<address>7 Av - W 41 St, New York, NY 10116, USA</address>
<AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><AddressLine>7 Av - W 41 St</AddressLine></AddressDetails>
<ExtendedData>
<LatLonBox north="40.7586296" south="40.7523344" east="-73.9843024" west="-73.9905976" />
</ExtendedData>
<Point><coordinates>-73.9874500,40.7554820,0</coordinates></Point>
</Placemark>
</Response></kml>
只需更改
q
参数与您的
latitude,longitude
.
请注意,免费版的GoogleMapsAPI每天对每个IP地址有15000个请求限制。(
Google Maps API FAQ
)
如果你计划大量使用谷歌的反向地理编码服务,你可能会考虑使用
Premier edition of the Google Maps API
.
“Premier API自动随附”
advanced geocoding capabilities with greater volume and speed
“,因此,标准API的限制应该被新配额取代。
作为附加说明,根据一条
unofficial source
(2008年4月)Premier API的成本为每年10000美元。