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
});