The Reverse Geocoding service converts GPS coordinates (latitude, longitude) into a human-readable address or place name.
It can identify street addresses, places, and administrative subdivisions such as neighborhoods, counties, states, or countries.
Reverse geocoding is essential for location-based services, making raw GPS data more understandable to end users.
POST /bgis/service/geocoding/1.0/reverse
Content-Type: application/json
{
"geoserver": "osm",
"transportMode": "CAR",
"maximumResults": 5,
"coordinateSat": {
"lon": 2.3412,
"lat": 48.85693
},
"radius": "1000",
"language": "on"
}| Field | Optional | Description |
|---|---|---|
coordinateSat | No | GPS coordinates of the request. Type: CoordinateSat](#coordinatesat). |
radius | No | Maximum search radius around the given GPS point, in meters. Type: long |
geoserver | Yes | Name of the geoserver to use. Type: string |
language | Yes | Defines the language used to perform the address lookup. If the specified language is not available, the default language will be used. The value must be an ISO 639-1 2-letter code. Special value: "IC" β case-insensitive search based on ISO-3166 Alpha-2 or Alpha-3 country codes. Type: string. |
maximumResults | Yes | Maximum number of items used to perform the search and returned by the server. Type: int. |
options | Yes | Comma-separated list of one or more reverse geocoding options. See details below. |
swidx | Yes | Switch index used internally by the server. Type: int. |
transportMode | Yes | Transport mode used for the request. Type: string. See Available transport modes. |
| Option | Description |
|---|---|
OPPOSITE_POSTAL_ADDRESS | Return the opposite postal address only if it differs from the main postal address. |
OPPOSITE_POSTAL_ADDRESS_ALWAYS | Always return the opposite postal address, even if it's the same as the main postal address. |
POLYLINE | Return the list of coordinates forming the road segment. |
ROAD_FEATURE | Return detailed network information for the road segment. |
SEGMENTID | Return the segment ID (similar to a link ID). |
SKIP_EMPTY_STREETNAME | Skip results without a street name if other elements have one. |
START_AT_RADIUS | Force the search to start directly at the specified radius. |
TRAFFIC | Include real-time traffic information. |
TRAFFIC_HISTORICAL (Beta) | Include historical traffic information. Uses timestamps defined in coordinates. |
TRAFFIC_PREDICTIVE | Include predictive traffic information. Uses timestamps defined in coordinates. |
URBAN_AREA | Indicate whether the resulting matched point is inside an urban area. |
| Value | Description |
|---|---|
BICYCLE | Bicycle routing. |
CAR | Passenger car (default). |
EMERGENCY | Emergency vehicle. |
MOTORCYCLE | Motorcycle routing. |
PEDESTRIAN | Pedestrian routing. |
PUBLIC_BUS | Public bus routing. |
TAXI | Taxi routing. |
TRUCK | Standard truck routing. |
Defines the GPS coordinates used in the request.
| Field | Optional | Description |
|---|---|---|
lat | No | Latitude in decimal degrees (WGS84). Type: double. |
lon | No | Longitude in decimal degrees (WGS84). Type: double. |
heading | Yes | Heading angle in degrees. Type: double. |
sat | Yes | Number of GPS satellites available. Type: integer. |
speed | Yes | Speed in km/h. Type: float. |
time | Yes | GPS timestamp in milliseconds (EPOCH). Type: long |
{
"extent": {
"minLon": 2.34117,
"minLat": 48.85686,
"maxLon": 2.3413,
"maxLat": 48.85696
},
"elements": [
{
"coordinate": {
"lon": 2.34121,
"lat": 48.85694
},
"distanceFromRequest": 1.33,
"postalAddress": {
"countryCode": "FRA",
"country": "France",
"state": "Γle-de-France",
"county": "Paris",
"city": "Paris",
"district": "Paris 1er Arrondissement",
"postalCode": "75001",
"roadNumber": "",
"street": "Quai des Orfèvres"
},
"postalAddressClassType": "ROAD_FOURTH",
"postalAddressClassId": 4048,
"postalAddressExactStreeNumber": false,
"angle": 149,
"administrativeSpeedLimit": 30,
"relevanceScore": 0.05327986839399546,
"countryRelevanceScore": 0,
"cityRelevanceScore": 0,
"postalCodeRelevanceScore": 0,
"streetRelevanceScore": 0,
"streetNumberRelevanceScore": 0,
"geoElementTypes": [
"ROAD",
"FOURTH_ROAD",
"DISTRICT",
"CITY",
"COUNTY",
"STATE",
"COUNTRY"
],
"segmentId": 0
},
{
"coordinate": {
"lon": 2.34117,
"lat": 48.85694
},
"distanceFromRequest": 2.46,
"postalAddress": {
"countryCode": "FRA",
"country": "France",
"state": "Γle-de-France",
"county": "Paris",
"city": "Paris",
"district": "Paris 1er Arrondissement",
"postalCode": "75000",
"roadNumber": "",
"street": "Place du Pont Neuf"
},
"postalAddressClassType": "ROAD_FOURTH",
"postalAddressClassId": 4048,
"postalAddressExactStreeNumber": false,
"angle": -147,
"administrativeSpeedLimit": 30,
"relevanceScore": 0.05319761464116799,
"countryRelevanceScore": 0,
"cityRelevanceScore": 0,
"postalCodeRelevanceScore": 0,
"streetRelevanceScore": 0,
"streetNumberRelevanceScore": 0,
"geoElementTypes": [
"ROAD",
"FOURTH_ROAD",
"DISTRICT",
"CITY",
"COUNTY",
"STATE",
"COUNTRY"
],
"segmentId": 0
},
{
"coordinate": {
"lon": 2.34119,
"lat": 48.85696
},
"distanceFromRequest": 3.42,
"postalAddress": {
"countryCode": "FRA",
"country": "France",
"state": "Γle-de-France",
"county": "Paris",
"city": "Paris",
"district": "Paris 1er Arrondissement",
"postalCode": "75000",
"roadNumber": "",
"street": "Place du Pont Neuf"
},
"postalAddressClassType": "ROAD_FOURTH",
"postalAddressClassId": 4048,
"postalAddressExactStreeNumber": false,
"angle": -148,
"administrativeSpeedLimit": 30,
"relevanceScore": 0.05309479745013365,
"countryRelevanceScore": 0,
"cityRelevanceScore": 0,
"postalCodeRelevanceScore": 0,
"streetRelevanceScore": 0,
"streetNumberRelevanceScore": 0,
"geoElementTypes": [
"ROAD",
"FOURTH_ROAD",
"DISTRICT",
"CITY",
"COUNTY",
"STATE",
"COUNTRY"
],
"segmentId": 0
},
{
"coordinate": {
"lon": 2.3413,
"lat": 48.85688
},
"distanceFromRequest": 9.2,
"postalAddress": {
"countryCode": "FRA",
"country": "France",
"state": "Γle-de-France",
"county": "Paris",
"city": "Paris",
"district": "Paris 1er Arrondissement",
"postalCode": "75001",
"roadNumber": "",
"street": "Place du Pont Neuf",
"streetNumber": "15",
"oppositeStreetNumber": "15"
},
"postalAddressClassType": "ROAD_FOURTH",
"postalAddressClassId": 4048,
"postalAddressExactStreeNumber": false,
"angle": 35,
"administrativeSpeedLimit": 30,
"relevanceScore": 0.05190211803413529,
"countryRelevanceScore": 0,
"cityRelevanceScore": 0,
"postalCodeRelevanceScore": 0,
"streetRelevanceScore": 0,
"streetNumberRelevanceScore": 0,
"geoElementTypes": [
"ROAD",
"FOURTH_ROAD",
"DISTRICT",
"CITY",
"COUNTY",
"STATE",
"COUNTRY"
],
"segmentId": 0
},
{
"coordinate": {
"lon": 2.34128,
"lat": 48.85686
},
"distanceFromRequest": 9.75,
"postalAddress": {
"countryCode": "FRA",
"country": "France",
"state": "Γle-de-France",
"county": "Paris",
"city": "Paris",
"district": "Paris 1er Arrondissement",
"postalCode": "75001",
"roadNumber": "",
"street": "Quai des Orfèvres"
},
"postalAddressClassType": "ROAD_FOURTH",
"postalAddressClassId": 4048,
"postalAddressExactStreeNumber": false,
"angle": 134,
"administrativeSpeedLimit": 30,
"relevanceScore": 0.05171704709027348,
"countryRelevanceScore": 0,
"cityRelevanceScore": 0,
"postalCodeRelevanceScore": 0,
"streetRelevanceScore": 0,
"streetNumberRelevanceScore": 0,
"geoElementTypes": [
"ROAD",
"FOURTH_ROAD",
"DISTRICT",
"CITY",
"COUNTY",
"STATE",
"COUNTRY"
],
"segmentId": 0
}
],
"maximunResult": 5
}- Coordinates must be expressed in WGS84 decimal degrees.
- If no result is found within the provided
radius, the response will be empty. - If the
languageparameter is missing, the system will use the default server language.