Reversā ģeokodēšana
Serviss ļauj iegūt adreses informāciju padotajam punktam.
Servisa URL
Servisa saitei jāatbilst šādai formai:
https://api.kartes.lv/v3//reverse_geocoding?
Noklusētais atgriezto datu formāts ir JSON (pieejami arī JSONP un XML).
HTTP metode ir GET.
Pieprasījuma parametri
Iespējams padot šādus GET parametrus:
Parametrs | Skaidrojums | Vērtība |
---|---|---|
x | X koordināta TM Baltic93 (EPSG:25884) koordināšu sistēmā. | Parametrs obligāts, ja netiek izmantoti lat, lon |
y | Y koordināta TM Baltic93 (EPSG:25884) koordināšu sistēmā. | Parametrs obligāts, ja netiek izmantoti lat, lon |
lat | lat koordināta WGS-84 (EPSG:4326) koordināšu sistēmā. | Parametrs obligāts, ja netiek izmantoti x, y |
lon | lon koordināta WGS-84 (EPSG:4326) koordināšu sistēmā. | Parametrs obligāts, ja netiek izmantoti x, y |
latlon | latlon koordinātu pāris WGS-84 (EPSG:4326) koordināšu sistēmā. | Formāts 57.208140,24.773591. Parametrs obligāts un izmantojams, ja type = suggest_place |
returnTerritUnitAfter | Ja norādīts šis parametrs, tad tiek meklēts teritoriālās piederības, ne adrešu, līmenī. Parametrā jānorāda distance metros, ar kuru sākt atgriezt rezultātu teritoriālās piederības līmenī. | Parametrs aktuāls, ja izvēlas type=address |
result_data_type | Nosaka atgriežamo datu formātu. | Pieejami 3 formāti:
|
callback | Pie datu atgriešanas izsauc parametra funkciju. | Parametrs aktuāls, ja izvēlas result_data_type=jsonp |
type | Objekta tips, kas tiek meklēts. | Iespējamās vērtības:
|
limit | Atgriezto adrešu skaits. | Parametra vērtība - no 1 (noklusētā vērtība) līdz 20. Aktuāla, ja izvēlas type=address |
short_address | Saīsinātā adrese. | Darbojas bez parametra vērtības. Iestata type=address, ignorē pieprasījuma parametru type |
Atbildes parametri atkarībā no parametra type
type = address
Atbildē tiek atgriezti viens vai vairāki (parametrs limit) objekti, tā parametri ir šādi:
Parametrs | Skaidrojums |
---|---|
valsts | Valsts, kurā atrodas pieprasītās koordinātas. |
admin_vien | Administratīvā vienība. |
terit_vien | Teritoriālā vienība. |
apdz_vieta | Apdzīvotā vieta vai pilsēta. |
iela | Ielas nosaukums. |
maja | Mājas numurs vai nosaukums. |
index | Pasta indekss. |
korpuss | Korpuss. |
vzd_id | VZD indekss. |
distance | Attālums metros no pieprasītā punkta līdz atgrieztajai adresei. |
x | Adreses X koordinātes TM Baltic93 (EPSG:25884) koordināšu sistēmā. |
y | Adreses Y koordinātes TM Baltic93 (EPSG:25884) koordināšu sistēmā. |
lon | Ģeogrāfiskais garums WGS (EPSG:4326) formātā. |
lat | Ģeogrāfiskais platums WGS (EPSG:4326) formātā. |
adrese | Pilnā (vai saīsinātā pie short_address) objekta adrese. |
type = populated_area
Atbildē tiek atgriezts viens objekts, tā parametri ir šādi:
Parametrs | Skaidrojums |
---|---|
name | Nosaukums. |
iso_code | Valsts ISO kods. |
dist | Attālums metros no pieprasītā punkta līdz atgrieztajai adresei. |
country_name | Valsts nosaukums. |
type = country
Atbildē tiek atgriezta viens objekts, tā parametrs ir šāds:
Parametrs | Skaidrojums |
---|---|
country | Valsts nosaukums. |
type = suggest_place
Atbildē tiek atgriezti vairāki objekti, parametri ir līdzigi type = address atbildes parametriem ar papildus parametru:
Parametrs | Skaidrojums |
---|---|
suggestion | Iespējamā adrese. |
type = admin_unit
Atbildē tiek atgriezts viens objekts, tā parametri ir šādi:
Parametrs | Skaidrojums |
---|---|
admin_unit | Administratīvā vienība. |
iso_code | Valsts ISO kods. |
country | Valsts nosaukums. |
type = territ_unit
Atbildē tiek atgriezts viens objekts, tā parametri ir šādi:
Parametrs | Skaidrojums |
---|---|
territ_unit | Teritoriālā vienība. |
admin_unit | Administratīvā vienība. |
iso_code | Valsts ISO kods. |
country | Valsts nosaukums. |
type = cadastral
Atbildē tiek atgriezts viens objekts, tā parametri ir šādi:
Parametrs | Skaidrojums |
---|---|
code | Kadastra numurs. |
ownership_status | Īpašumtiesību statuss. |
area | Laukums (ha). |
Kļūdu kodi
Kods | Skaidrojums |
---|---|
200 | Wrong coords. Vaicājumā nav ievadītas koordinātas |
200 | Wrong type. Nepareizs objekta tips |
200 | Parameter latlon expected. Trūkst parametra latlon |
200 | Wrong coordinates or not delimited by comma. Nepareizas koordinātas |
404 | No location found. Tiek atgriezts, ja nekas nav ticis atrasts. |
5xx | Servera kļūda. |
Paraugi
Pieprasījums:
https://api.kartes.lv/v3//reverse_geocoding?x=509679&y=6314169
Atbilde:
{
"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"
}
Pieprasījums:
https://api.kartes.lv/v3//reverse_geocoding?lat=57.208140&lon=24.773591
Atbilde:
{
"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"
}
Pielietošanas piemēri
Reversās ģeokodēšanas klases definēšana JavaScript kodā:
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 };
}
}
}
Reversās ģeokodēšanas klases pielietošana:
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
});