Ģeokodēšana

Serviss ļauj iegūt adreses informāciju un ģeotelpiskos datus no ievadītā adreses teksta lauka.

Servisa URL

Servisa saitei jāatbilst šādai formai:

https://api.kartes.lv/v3//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ības
address Teksts, kurā ievadīta adrese vai tās hash. Parametrs obligāts, ja nav izvēlēts address_code
address_code Teksts, kurā ievadīts adreses kods. Parametrs obligāts, ja nav izvēlēts address
limit Parametrs nosaka rezultāta maksimālo objektu skaitu. Parametra vērtība - no 1 līdz 25 (noklusētā vērtība).
LVA Ja parametrs netiek padots, tad dati tiek meklēti Baltijā. Ja nepieciešams meklēt tikai Latvijā, tad jāpadod šis parametrs.
result_data_type Nosaka atgriežamo datu formātu. Pieejami 3 formāti:
  • json (noklusētā vērtība)
  • jsonp
  • xml
callback Tiek izsaukta šī parametra funkcija. Parametrs aktuāls, ja izvēlas result_data_type=jsonp
historical Atgriež vēsturiskās adreses Ja parametrs nav norādīts, meklē tikai aktuālās adreses. Ja parametra vērtība nav norādīta, meklē vēsturiskajās adresēs, ja neatrod aktuālajās adresēs. Ja parametra vērtība ir only, meklē tikai vēsturiskajās adresēs
strict Precīza adreses meklēšana 1

Atbildes parametri

Atbildē tiek atgriezts masīvs ar objektiem, objektu parametri ir šādi:

Parametrs Skaidrojums
rank Atrastās adreses pareizuma ticamības vērtējums.
gid Datubāzes ieraksta identifikators.
valsts Valsts nosaukums.
admin_vien Administratīvā vienība.
terit_vien Teritoriālā vienība.
apdz_vieta Apdzīvota vieta.
iela Iela.
maja Māja.
index Pasta indekss.
korpuss Korpuss.
x Punkta X koordināta TM Baltic93 (EPSG:25884) koordinātu sistēmā.
y Punkta Y koordināta TM Baltic93 (EPSG:25884) koordinātu sistēmā.
address_hash Adreses hash.
iso_code Valsts ISO kods.
vzd_id adreses kods.
lat Ģeogrāfiskais platums WGS (EPSG:4326) formātā.
lon Ģeogrāfiskais garums WGS (EPSG:4326) formātā.
adrese Pilnā adrese.

Kļūdu kodi

Kods Skaidrojums
200 Wrong input data. Tiek atgriezts, ja vaicājumā nav ievadīti vai nav korekti ievadīti pieprasījuma parametri.
404 No location found. Tiek atgriezts, ja nekas nav ticis atrasts.
5xx Servera kļūda.

Paraugi

Pieprasījums:

https://api.kartes.lv/v3//geocoding?address=Brīvības&limit=1

Atbilde:

[
    {
        "rank": "0.356207",
        "gid": "1076167001",
        "valsts": "Latvija",
        "admin_vien": "Rīga",
        "terit_vien": "Centra rajons",
        "apdz_vieta": "Rīga",
        "iela": "Brīvības laukums",
        "maja": "1",
        "index": "LV-1050",
        "korpuss": "",
        "x": "506837.133000",
        "y": "6311879.574000",
        "address_hash": "31359ac8dbaddecb21d2a938d37dcb16",
        "iso_code": "LVA",
        "vzd_id": "105546121",
        "lat": 57.398171,
        "lon": 21.574947,
        "adrese": "Brīvības laukums 1, Rīga, Centra raj., Latvija"
    }
]

Pielietošanas piemēri

Ģeokodēšanas klases definēšana JavaScript kodā:

class GeocodingApi {
    constructor() {
        this.apiKey = 'your_api_key_here'; // Replace with your actual API key
        this.baseUrl = 'https://api.kartes.lv/v3';
    }

    // Method to fetch geocoded data
    async getGeocodingData(address, limit = 1) {
        const url = `${this.baseUrl}/${this.apiKey}/geocoding?address=${encodeURIComponent(address)}&limit=${limit}`;

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

Ģeokodēšanas klases pielietošana:

const api = new GeocodingAPI();

api.getGeocodingData('Brīvības')
    .then(result => {
        if (!result.success) {
            console.error('Error:', result.error); // Handle the error
            return;
        }

        console.log(result.data);
        // Use the data
    });