Reverse Geocode

The Location Hub® Reverse Geocode Service processes geographic coordinates and quickly returns the closest validated address and attributes.

What Does it Do?

The service allows for users to identify address points through a unique identifier by passing a latitude and longitude coordinate to the service. It converts input geographic coordinates (latitude and longitude) to the closest validated address and associated attributes. This allows you to translate geographic coordinates captured by mobile or GPS devices to real street addresses. Field technicians can use the service to find information on nearby addresses.

The Reverse Geocode service supports SOAP and REST based requests and is able to return information on both address points and road segments. Please note that all coordinates must be passed to the service in WGS84.

Accessing the Service

To access the Location Hub Reverse Geocode service you must first be authorized for use with Location Hub Web Services in order to have a valid user name and password. Please contact info@dmtispatial.com for more information on how to register for Location Hub Reverse Geocode Web Service.

Once you have a valid user name and password, please refer to the Authentication section for information on how to access the service.

SOAP Service

Soap Operations
There are 4 Reverse Geocode operation requests available through SOAP/XML

  • FindNearestAddressByPoint: Returns the closest point feature (Address or Enhanced Point of Interest (EPOI)) to the given location
  • FindAddressByPoint: Returns all the closest point features (Address or Enhanced Point of Interest (EPOI)) to the given location, limited by the maximum number specified, and sorted by the distance. The first feature in the response list is the closest point feature.
  • FindNearestRoadByPoint: Returns the closest road segment to the given location
  • FindRoadByPoint: Returns all the closest road segments to the given location, limited by the maximum number specified, and sorted by the distance. The first feature in the response list is the closest road segment.

Parameters

The following parameters are required by all Reverse Geocode Operations:

  • Lat (double): The WGS84 latitude of the location specified
  • Lon (double): The WGS84 longitude of the location specified

The following parameter is required by the FindNearestAddressByPoint and the FindAddressByPoint operations only:

  • PointType (RGPointType): The type of point features (Address or EPOI) to be searched

The following parameter is optional in the FindAddressByPoint and the FindRoadByPoint operations only:

  • maxReturns (int): The maximum number of point features or road segments to return. The default value is 1 if not provided.

Examples:

<!-- The SOAP/XML Request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.dmtispatial.com/reversegeocode/v1.0/">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:FindNearestAddressByPointRequest>
         <!--type: RGPointType - enumeration: [Address,EPOI]-->
         <v1:PointType>Address</v1:PointType>
         <!--type: double-->
         <v1:Lat>43.850839</v1:Lat>
         <!--type: double-->
         <v1:Lon>-79.363686</v1:Lon>
      </v1:FindNearestAddressByPointRequest>
   </soapenv:Body>
</soapenv:Envelope>
 
<!-- The SOAP/XML Response -->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FindNearestAddressByPointResponse xmlns="http://www.dmtispatial.com/reversegeocode/v1.0/">
         <RGPoint>
            <ID>5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f</ID>
            <Name>15 ALLSTATE PKY MARKHAM ON L3R5B4</Name>
            <Lat>43.850174</Lat>
            <Lon>-79.363277</Lon>
         </RGPoint>
      </FindNearestAddressByPointResponse>
   </s:Body>
</s:Envelope>
 
<!-- The SOAP/XML Request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.dmtispatial.com/reversegeocode/v1.0/">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:FindAddressByPointRequest>
         <!--type: RGPointType - enumeration: [Address,EPOI]-->
         <v1:PointType>Address</v1:PointType>
         <!--type: double-->
         <v1:Lat>43.850839</v1:Lat>
         <!--type: double-->
         <v1:Lon>-79.363686</v1:Lon>
         <!--type: int-->
         <v1:maxReturns>3</v1:maxReturns>
      </v1:FindAddressByPointRequest>
   </soapenv:Body>
</soapenv:Envelope>
 
<!-- The SOAP/XML Response -->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FindAddressByPointResponse xmlns="http://www.dmtispatial.com/reversegeocode/v1.0/">
         <RGPoints>
            <ID>5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f</ID>
            <Name>15 ALLSTATE PKY MARKHAM ON L3R5B4</Name>
            <Lat>43.850174</Lat>
            <Lon>-79.363277</Lon>
         </RGPoints>
         <RGPoints>
            <ID>acc011b0-e092-51d1-212b-0a25098f2ebb</ID>
            <Name>11 ALLSTATE PKY MARKHAM ON L3R9T8</Name>
            <Lat>43.8504168</Lat>
            <Lon>-79.3645531</Lon>
         </RGPoints>
         <RGPoints>
            <ID>512e1108-3d54-fd0d-5c01-828ea7475d03</ID>
            <Name>19 ALLSTATE PKY MARKHAM ON L3R5A4</Name>
            <Lat>43.850833</Lat>
            <Lon>-79.3626248</Lon>
         </RGPoints>
      </FindAddressByPointResponse>
   </s:Body>
</s:Envelope>
 
<!-- The SOAP/XML Request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.dmtispatial.com/reversegeocode/v1.0/">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:FindNearestRoadByPointRequest>
         <!--type: double-->
         <v1:Lat>43.850839</v1:Lat>
         <!--type: double-->
         <v1:Lon>-79.363686</v1:Lon>
      </v1:FindNearestRoadByPointRequest>
   </soapenv:Body>
</soapenv:Envelope>
 
<!-- The SOAP/XML Response -->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FindNearestRoadByPointResponse xmlns="http://www.dmtispatial.com/reversegeocode/v1.0/">
         <RGRoad>
            <RDSID>9443789</RDSID>
            <Name>FRONTENAC</Name>
            <LineString>
               <double>-79.361379</double>
               <double>43.849256</double>
               <double>-79.361403</double>
               <double>43.84935</double>
                       ...
                       ...
                       ...
               <double>-79.362103244102116</double>
               <double>43.851377410485178</double>
            </LineString>
         </RGRoad>
      </FindNearestRoadByPointResponse>
   </s:Body>
</s:Envelope>
 
<!-- The SOAP/XML Request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.dmtispatial.com/reversegeocode/v1.0/">
   <soapenv:Header/>
   <soapenv:Body>
      <v1:FindRoadByPointRequest>
         <!--type: double-->
         <v1:Lat>43.850839</v1:Lat>
         <!--type: double-->
         <v1:Lon>-79.363686</v1:Lon>
         <!--type: int-->
         <v1:maxReturns>3</v1:maxReturns>
      </v1:FindRoadByPointRequest>
   </soapenv:Body>
</soapenv:Envelope>
 
<!-- The SOAP/XML Response -->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FindRoadByPointResponse xmlns="http://www.dmtispatial.com/reversegeocode/v1.0/">
         <RGRoads>
            <RDSID>9443789</RDSID>
            <Name>FRONTENAC</Name>
            <LineString>
               <double>-79.361379</double>
               <double>43.849256</double>
                       ...
                       ...
                       ...
               <double>-79.362103244102116</double>
               <double>43.851377410485178</double>
            </LineString>
         </RGRoads>
         <RGRoads>
            <RDSID>9443790</RDSID>
            <Name>FRONTENAC</Name>
            <LineString>
               <double>-79.362103244102116</double>
               <double>43.851377410485178</double>
               <double>-79.362128668665434</double>
               <double>43.85146936975805</double>
            </LineString>
         </RGRoads>
         <RGRoads>
            <RDSID>9443767</RDSID>
            <Name>FRONTENAC</Name>
            <LineString>
               <double>-79.362128668665434</double>
               <double>43.85146936975805</double>
               <double>-79.362443</double>
               <double>43.852616</double>
            </LineString>
         </RGRoads>
      </FindRoadByPointResponse>
   </s:Body>
</s:Envelope>

REST Service

REST Operations

There are 4 Reverse Geocode operation requests available through REST

  • FindNearestAddressByPoint: Returns the closest point feature (Address or Enhanced Point of Interest (EPOI)) to the given location
  • FindAddressByPoint: Returns all the closest point features (Address or Enhanced Point of Interest (EPOI)) to the given location, limited by the maximum number specified, and sorted by the distance. The first feature in the response list is the closest point feature.
  • FindNearestRoadByPoint: Returns the closest road segment to the given location
  • FindRoadByPoint: Returns all the closest road segments to the given location, limited by the maximum number specified, and sorted by the distance. The first feature in the response list is the closest road segment.

Parameters

The following parameters are required by all Reverse Geocode Opeartions:

  • lat: The WGS84 latitude of the location specified
  • lon: The WGS84 longitude of the location specified

The following parameter is required by the FindNearestAddressByPoint and the FindAddressByPoint operations only:

  • ptype: The type of point features (Address or EPOI) to be searched

The following parameter is optional in the FindAddressByPoint and the FindRoadByPoint operations only:

  • limit: The maximum number of point features or road segments to return. The default value is 1 if not provided.

Examples:

<!-- The REST url Request -->
http://lhreversegeocode.dmtispatial.com/ReverseGeocodeService.svc/rest/FindNearestAddressByPoint?ptype=Address&lat=43.850839&lon=-79.363686
 
<!-- The JSON Response -->
{
   "ID": "5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f",
   "Lat": 43.850174,
   "Lon": -79.363277,
   "Name": "15 ALLSTATE PKY MARKHAM ON L3R5B4",
   "UAID": "5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f"
}
 
<!-- The REST url Request -->
http://lhreversegeocode.dmtispatial.com/ReverseGeocodeService.svc/rest/FindAddressByPoint?ptype=Address&lat=43.850839&lon=-79.363686&limit=3
 
<!-- The JSON Response -->
[
      {
      "ID": "5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f",
      "Lat": 43.850174,
      "Lon": -79.363277,
      "Name": "15 ALLSTATE PKY MARKHAM ON L3R5B4",
      "UAID": "5c2d1184-d1b5-ebc5-2d01-5d34fc18e88f"
   },
      {
      "ID": "acc011b0-e092-51d1-212b-0a25098f2ebb",
      "Lat": 43.8504168,
      "Lon": -79.3645531,
      "Name": "11 ALLSTATE PKY MARKHAM ON L3R9T8",
      "UAID": "acc011b0-e092-51d1-212b-0a25098f2ebb"
   },
      {
      "ID": "512e1108-3d54-fd0d-5c01-828ea7475d03",
      "Lat": 43.850833,
      "Lon": -79.3626248,
      "Name": "19 ALLSTATE PKY MARKHAM ON L3R5A4",
      "UAID": "512e1108-3d54-fd0d-5c01-828ea7475d03"
   }
]
 
<!-- The REST url Request -->
http://lhreversegeocode.dmtispatial.com/ReverseGeocodeService.svc/rest/FindNearestRoadByPoint?lat=43.850839&lon=-79.363686
 
<!-- The JSON Response -->
{
   "LineString":    [
      -79.361379,
      43.849256,
         ...
         ...
         ...
      -79.36210324410212,
      43.85137741048518
   ],
   "Name": "FRONTENAC",
   "RDSID": 9443789
}
 
<!-- The REST url Request -->
http://lhreversegeocode.dmtispatial.com/ReverseGeocodeService.svc/rest/FindRoadByPoint?lat=43.850839&lon=-79.363686&limit=3
 
<!-- The JSON Response -->
[
      {
      "LineString":       [
         -79.361379,
         43.849256,
            ...
            ...
            ...
         -79.36210324410212,
         43.85137741048518
      ],
      "Name": "FRONTENAC",
      "RDSID": 9443789
   },
      {
      "LineString":       [
         -79.36210324410212,
         43.85137741048518,
         -79.36212866866543,
         43.85146936975805
      ],
      "Name": "FRONTENAC",
      "RDSID": 9443790
   },
      {
      "LineString":       [
         -79.36212866866543,
         43.85146936975805,
         -79.362443,
         43.852616
      ],
      "Name": "FRONTENAC",
      "RDSID": 9443767
   }
]