Reverse geocoding
The API finds an address based on given coordinates.
API URL
The request URL should match the following pattern:
https://api.kartes.lv/v3//reverse_geocoding?
By default, the response is given in JSON (JSONP and XML are also available).
The HTTP GET request method is used.
Query parameters
The request consists of the following GET parameters:
| Parameter | Description | Possible values |
|---|---|---|
| x | x-coordinate in the TM Baltic93 CRS (EPSG:25884). | Mandatory, if lat, lon not used |
| y | y-coordinate in the TM Baltic93 CRS (EPSG:25884). | Mandatory, if lat, lon not used |
| lat | Latitude coordinate in the WGS-84 projection (EPSG:4326) | Mandatory, if x, y not used |
| lon | Longitude coordinate in the WGS-84 projection (EPSG:4326) | Mandatory, if x, y not used |
| latlon | latlon coordinates in the WGS-84 projection (EPSG:4326). | Format 57.208140,24.773591. Mandatory if type = suggest_place |
| returnTerritUnitAfter | If this parameter is used, only territorial unit and administrative unit is returned. The minimum distance in meters, when this approach should work, should be defined. | Meters (valid if type=address) |
| result_data_type | Output format. JSON is the default option. |
|
| callback | Callback function | Valid if result_data_type=jsonp. |
| type | The type of object searched for | Possible values:
|
| limit | Number of returned addresses. | From 1 (default value) to 20. Valid if type=address |
| short_address | Short address. | Without value. Working as type=address, ignore type parameter |
Response parameters depending of type
type = address
The response consists of a single or multiple elements. It has following parameters:
| Parameter | Description |
|---|---|
| valsts | Country. |
| admin_vien | Administrative unit. |
| terit_vien | Territorial unit. |
| apdz_vieta | Populated place (city, town or other settlement). |
| iela | Street or road name. |
| maja | House number or name. |
| index | Postal code. |
| vzd_id | The unique address identifier. |
| distance | Distance in meters from the given point to the returned address. |
| x | x-coordinate in the TM Baltic93 CRS (EPSG:25884) of the address. |
| y | y-coordinate in the TM Baltic93 CRS (EPSG:25884) of the address. |
| lon | Longitude coordinate in the WGS-84 projection (EPSG:4326) of the address. |
| lat | Latitude coordinate in the WGS-84 projection (EPSG:4326) of the address. |
| adrese | Full (or short if short_address) address. |
type = populated_area
The response consists of a single elements. It has following parameters:
| Parameter | Description |
|---|---|
| name | Name. |
| iso_code | Country ISO code. |
| dist | Distance (meters). |
| country_name | Countru name. |
type = country
The response consists of a single elements. It has following parameters:
| Parameter | Description |
|---|---|
| country | Countru name. |
type = suggest_place
The response consists of a single or multiple elements. Answer is the same as type = address and one more parameter:
| Parameter | Description |
|---|---|
| suggestion | Suggested address. |
type = admin_unit
The response consists of a single elements. It has following parameters:
| Parameter | Description |
|---|---|
| admin_unit | Administrative unit. |
| iso_code | Country ISO code. |
| country | Countru name. |
type = territ_unit
The response consists of a single elements. It has following parameters:
| Parameter | Description |
|---|---|
| territ_unit | Territorial unit. |
| admin_unit | Administrative unit. |
| iso_code | Country ISO code. |
| country | Countru name. |
type = cadastral
The response consists of a single elements. It has following parameters:
| Parameter | Description |
|---|---|
| code | Cadastre number. |
| ownership_status | Ownership status. |
Error codes
| Status code | Description |
|---|---|
| 200 | Wrong coords. |
| 200 | Wrong type. |
| 200 | Parameter latlon expected. |
| 200 | Wrong coordinates or not delimited by comma. |
| 404 | No location found. The URL is not recognized; the resource does not exist. |
| 5xx | Server error. |
Examples
Input:
https://api.kartes.lv/v3//reverse_geocoding?x=509679&y=6314169
Response:
{
"valsts": "Latvija",
"admin_vien": "Rīga",
"terit_vien": "Vidzemes priekšpilsēta",
"apdz_vieta": "Rīga",
"iela": "Brīvības gatve",
"maja": "197A",
"index": "LV-1039",
"korpuss": "",
"vzd_id": "101867023",
"distance": 25,
"x": "509679.56",
"y": "6314193.80",
"lon": 24.159217,
"lat": 56.971222,
"adrese": "Brīvības gatve 197A, Rīga, Vidzemes pr-pilsēta, Latvija"
}
Input:
https://api.kartes.lv/v3//reverse_geocoding?lat=57.208140&lon=24.773591
Response:
{
"valsts": "Latvija",
"admin_vien": "Siguldas novads",
"terit_vien": "Krimuldas pagasts",
"apdz_vieta": "",
"iela": "",
"maja": "Akmeņi",
"index": "LV-2144",
"korpuss": "",
"vzd_id": "104910650",
"distance": 99,
"x": "546816.85",
"y": "6340771.40",
"lon": 24.775007,
"lat": 57.207688,
"adrese": "Akmeņi, Krimuldas pag., Siguldas nov., Latvija"
}
Use examples
Defining a reverse geocoding API class in JavaScript code:
class ReverseGeocodingApi {
constructor() {
this.apiKey = 'your_api_key_here'; // Replace with your actual API key
this.baseUrl = 'https://api.kartes.lv/v3';
}
// Method to fetch reverse geocoded data by latitude and longitude
async getReverseGeocodingData(lat, lon) {
const url = `${this.baseUrl}/${this.apiKey}/reverse_geocoding?lat=${lat}&lon=${lon}`;
try {
const response = await fetch(url);
// Check if the response is ok (status code 200-299)
if (!response.ok) {
throw new Error(`Error fetching data: ${response.statusText}`);
}
const data = await response.json();
return { success: true, data };
} catch (error) {
console.error('Fetch error:', error);
return { success: false, error: error.message };
}
}
}
Using the reverse geocoding API class:
const api = new ReverseGeocodingAPI();
api.getReverseGeocodingData(57.208140, 24.773591)
.then(result => {
if (!result.success) {
console.error('Error:', result.error); // Handle the error
return;
}
console.log(result.data);
// Use the data
});