tags:

views:

229

answers:

5

Sorry this is not a very well defined question, I am thinking about an idea for a product, so need to know what is possible...

Say I am standing at the fount door of a house, given the GSP coordinates from a smart phone, how can I find the address I am standing at?

Is GPS good enough for this?

How much does the data/service I need to use cost?

What other questions should I be asking about this?

+2  A: 

You can use various free services, such as those provided by Google to reverse-geocode (the technical term) an address from some GPS coordinates. I strongly suggest having a play with their API, full documentation is available here:

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

SLC
+1  A: 

Google's Geolocation Network Protocol might help; I think it worked for UK locations when I last tried it.

legoscia
+5  A: 

GPS is limited to returning the latitude and longitude coordinates of your position.

To resolve these coordinates to an address, you would need to use an external data source. The act of converting a geographical coordinate to an address is often referred to as reverse geocoding.

There are some free reverse geocoding services such as that offered within the Google Maps API. However make sure you read and understand the Terms of Use before using such a service.


As an example, you can do reverse geocoding with the Google Maps API using the following HTTP request:

Simple CSV:

http://maps.google.com/maps/geo?q=40.756041,-73.986939&output=csv&sensor=false

Returns:

200,8,"601-699 7th Ave, New York, NY 10036, USA"

More Complex XML:

http://maps.google.com/maps/geo?q=40.756041,-73.986939&output=xml&sensor=false

Returns:

<kml xmlns="http://earth.google.com/kml/2.0"&gt;&lt;Response&gt; 
  <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> 

Simply change the q parameter with your latitude,longitude.


Note that the free version of the Google Maps API has a limit of 15,000 request per IP address per day. (Google Maps API FAQ)

If you are planning to heavily use Google's reverse geocoding services, you may want to consider using the Premier edition of the Google Maps API.

The Premier API automatically comes with "advanced geocoding capabilities with greater volume and speed", so the limitations of the standard API should be superseded by new quotas.

As an additional side-note, according to one unofficial source (dated April 2008), the cost for the Premier API starts at USD 10,000 per year.

Daniel Vassallo
+1  A: 

Btw, the Ordinance Survey just released their data under really loose licensing and I think they have a web service as well. You might want to give that a look.

TheSteve0
A: 

You should try this very useful tool :

http://gps.studio9.be

Arnaud

related questions