在英国,如何根据GPS坐标找到地址?

时间:2010-04-08 16:11:48

标签: mapping gps gis

对不起,这不是一个定义明确的问题,我正在考虑一个产品的想法,所以需要知道什么是可能的......

假设我站在房子的门口,考虑到智能手机的GSP坐标,我怎样才能找到我所站的地址?

GPS足够好吗?

我需要使用的数据/服务费用是多少?

我应该问其他什么问题?

5 个答案:

答案 0 :(得分:5)

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参数。


请注意,免费版Google Maps API每天每个IP地址的请求数限制为15,000。 (Google Maps API FAQ

如果您计划大量使用Google的反向地理编码服务,您可能需要考虑使用Premier edition of the Google Maps API

Premier API会自动附带“advanced geocoding capabilities with greater volume and speed”,因此标准API的限制应该被新配额取代。

作为附加说明,根据一个unofficial source(2008年4月),Premier API的费用从每年10,000美元开始。

答案 1 :(得分:2)

您可以使用各种免费服务,例如Google提供的服务,从某些GPS坐标反转地理编码(技术术语)地址。我强烈建议玩一下他们的API,这里有完整的文档:

http://code.google.com/apis/maps/documentation/services.html

答案 2 :(得分:1)

Google的Geolocation Network Protocol可能有所帮助;当我上次尝试时,我认为它适用于英国的地点。

答案 3 :(得分:1)

之间,军械测量局刚刚在非常宽松的许可下发布了他们的数据,我认为他们也有一个网络服务。你可能想看看。

答案 4 :(得分:0)

OpenStreetMap(由志愿者创建的世界免费开源地图)使用Nominatim,这看起来非常好。参见

http://wiki.openstreetmap.org/wiki/Nominatim#Reverse_Geocoding_.2F_Address_lookup