Dokumentace API – Hledání objektů podle souřadnic
Webová služba pro hledání adres, parcel a lokalit podle souřadnic je k dispozici na adrese:
- https://secure.smartform.cz/smartform-ws/reverseGeocode/v2
Autentizace
Služba využívá autentizační metodu Basic authentication. Jako jméno použijte uživatelské ID (clientId), které získáte po přihlášení do administrace v pravém horním rohu. Heslo si můžete zobrazit v administraci na záložce „Smartform Web Services“.
Při neúspěšné autentizaci vrací služba HTTP kód 401.
Vlastnosti dotazu
Dotazy musí být posílány metodou POST. Data jsou posílána ve formátu JSON s kódováním UTF-8.
Hlavička http requestu musí obsahovat následující položky:
název | hodnota |
---|---|
Content-type | application/json |
Accept | application/json |
Struktura dotazu a odpovědi
Následuje referenční struktura dotazu a odpovědi. Objekty jsou zachyceny ve formě pseudokódu pro lepší pochopení struktury.
Dotaz
/** Dotaz hledání objektů podle souřadnic */ class ReverseGeocodeRequest { /** Zeměpisná šířka */ double latitude; /** Zeměpisná délka */ double longitude; /** Vstupní souřadnicový systém */ CoordinateSystem inputCoordinateSystem; }
Odpověď
/** Odpověď hledání objektů podle souřadnic */ class ReverseGeocodeResponse { /** Zdali vůbec došlo k validaci a zda validace proběhla v pořádku */ ResultCode resultCode; /** Pokud došlo k nějaké chybě, popisuje k jaké */ String errorMessage; /** Výsledek hledání objektů podle souřadnic */ ReverseGeocodeResult result; }
Další objekty
/** Souřadnicový systém */ enum CoordinateSystem { /** Systém, který se používá v GPS */ WGS84, /** * Systém, který je používán českými úřady. * Při zadávání JTSK souřadnic vložte souřadnici X do pole latitude a souřadnici Y do pole longitude. * */ JTSK }
/** Výsledek hledání objektů podle souřadnic */ class ReverseGeocodeResult { /** Seznam nejbližších adres. */ List<AddressWithDistance> addresses; /** Seznam nejbližších parcel. */ List<ParcelWithDistance> parcels; /** Seznam nejbližších ulic/částí obce. */ List<AddressWithDistance> localities; }
/** Adresa a vzdálenost od zadaných souřadnic */ class AddressWithDistance { /** Vzdálenost od zadaných souřadnic (v m) */ double distance; /** Adresa */ Address address; }
/** Parcela a vzdálenost od zadaných souřadnic */ class ParcelWithDistance { /** Vzdálenost od zadaných souřadnic (v m) */ double distance; /** Parcela */ Parcel parcel; }
/** Adresa */ class Address { /** Typ adresy - přesná nebo částečná */ AddressType type; /** * Mapa výstupních políček zvalidované adresy. * Je-li adresou přesná adresa, bude mapa obsahovat všechna políčka * Je-li adresou částečná adresa, bude mapa obsahovat jen políčka, která se podařilo určit. * * V mapě ovšem mohou být i hodnoty null: * Když bude výsledkem částečná adresa - např. malá obec, ve které nejsou ulice, * bude v mapě i dvojice "STREET_NAME: null" */ Map<OutputAddressFieldType, string> values; /** Souřadnice — pokud nejsou známé, je hodnota null. */ Coordinates coordinates; /** Informace o nemovitosti — pokud nejsou známé, je hodnota null. */ Map<OutputRealEstateField, string> realEstateDetails; }
/** Typ adresy */ enum AddressType { /** Přesná adresa – obsahuje číslo domu */ EXACT /** Částečná adres - např. část obce, ulice, obec */ PARTIAL }
/** Typy výstupních políček zvalidované adresy */ enum OutputAddressFieldType { /** Kód v registru RUIAN */ CODE, /** Jméno ulice. Může být null, když adresní místo nemá ulici (v menších obcích) */ STREET_NAME, /** Kód ulice v RUIAN. Může být null. */ STREET_CODE, /** Název obce */ MUNICIPALITY_NAME, /** Kód obce v RUIAN */ MUNICIPALITY_CODE, /** Název pošty */ POST_NAME, /** PSČ */ ZIP, /** Obec a (pokud je to potřeba tak i) okres */ MUNICIPALITY_AND_OPTIONAL_DISTRICT, /** Jméno části obce. */ MUNICIPALITY_PART_NAME, /** Kód části obce v RUIAN */ MUNICIPALITY_PART_CODE, /** Název městské části - např. "Praha 13" */ CITY_AREA_1_NAME, /** Kód městské části v RUIAN */ CITY_AREA_1_CODE, /** Pražský obvod - jen pro Prahu ("Praha 1" - "Praha 10) */ CITY_AREA_2_NAME, /** Kód pražského obvodu v RUIAN */ CITY_AREA_2_CODE, /** Správní obvod - v Praze je "Praha 1" - "Praha 22" */ CITY_AREA_3_NAME, /** Kód správního obvodu v RUIAN */ CITY_AREA_3_CODE, /** Název volebního okrsku. V Česku číslo volebního okrsku (unikátní v rámci obce). */ ELECTORAL_AREA_NAME, /** Kód volebního okrsku. */ ELECTORAL_AREA_CODE, /** Okres - např. "Hlavní město Praha" nebo "Liberec" */ DISTRICT_NAME, /** Kód okresu */ DISTRICT_CODE, /** Kraj - např. "Hlavní město Praha" nebo "Liberecký kraj" */ REGION_NAME, /** Kód kraje */ REGION_CODE, /** Název státu */ COUNTRY_NAME, /** Dvoupísmenný ISO kód státu */ COUNTRY_CODE, /** Číslo popisné */ NUMBER_POPISNE, /** Číslo evidenční */ NUMBER_EVIDENCNI, /** Číslo orientační */ NUMBER_ORIENT, /** Písmeno u orientačního číslo */ CHAR_ORIENT, /** Zformátované celé číslo - např. "154", "622/37" nebo i "č.p. 35" */ NUMBER_WHOLE, /** První řádka v adrese (ulice nebo část obce + celé číslo domu) */ FIRST_LINE, /** První řádka v adrese bez čísla (ulice nebo část obce) */ FIRST_LINE_NO_NUMBER, /** Druhá řádka v adrese - např. "Plzeň 1" nebo "Praha 4 - Nusle" */ SECOND_LINE, /** Celé jméno nalezené adresy */ WHOLE_NAME }
/** Typy výstupních políček obsahujících informace o nemovitosti */ enum OutputRealEstateField { /** Kmenové číslo parcely */ BUILDING_PARCEL_NUMBER_1; /** Poddělení (pořadové číslo nové parcely v rámci původní parcely). Pokud není, má hodnotu null */ BUILDING_PARCEL_NUMBER_2; /** Název katastrálního území */ CADASTRAL_UNIT_NAME; /** Číslo katastrálního území */ CADASTRAL_UNIT_CODE; /** Informace o výtahu. Může mít hodnoty: "true", "false", null */ BUILDING_WITH_LIFT; /** Počet podlaží */ NUMBER_OF_STOREYS; /** Počet bytů */ NUMBER_OF_FLATS; /** Podlahová plocha [m2] */ FLOOR_AREA; }
/** Parcela */ class Parcel { /** ID parcely. (V Česku ID podle databáze RÚIAN) */ int id; /** Dvoupísmenný ISO kód státu */ string countryCode; /** První číslo parcely. */ int number1; /** * Druhé číslo parcely. * V Česku se jmenuje poddělení čísla a udává se za lomítkem (nepovinné). */ int number2; /** * Typ číslování. * * V Česku některé katastrální území používají dvě číselné řady: pro stavební pozemky a pro * ostatní pozemky. */ ParcelNumberingType numberingType; /** Typ parcely */ ParcelType type; /** Katastrální území – kód */ int cadastralUnitCode; /** Katastrální území – název */ string cadastralUnitName; /** Kód obce */ int municipalityCode; /** Název obce */ string municipalityName; /** Výměra v m2 */ double area; /** Hranice ve formátu geoJSON v souřadnicovém systému WGS84 (GPS) */ json border; /** Souřadnice */ Coordinates coordinates; /** Seznam adresích míst na parcele */ List<AddressReference> addresses; }
/** * Číselné řady parcel. * * V Česku existují v některých katastrálních územích dvě číselné řady parcel, * jedna pro takzvané pozemkové parcely a druhá pro stavební parcely. * * Viz https://cs.wikipedia.org/wiki/Parcelní_číslo */ enum ParcelNumberingType { /** CZ: Stavební parcely */ BUILDING, /** CZ: Pozemkové parcely */ OTHER }
/** Způsob využití parcely */ enum ParcelType { /** Orná půda */ ARABLE_LAND, /** Chmelnice */ HOP_GARDEN, /** Vinice */ VINEYARD, /** Zahrada */ GARDEN, /** Ovocný sad */ ORCHARD, /** Trvalý travní porost */ GRASS, /** Lesní pozemek */ WOOD, /** Vodní plocha */ WATER, /** Zastavěná plocha */ BUILDING_AREA, /** Ostatní plocha */ OTHER }
/** Stručná informace o adrese */ class AddressReference { /** Kód adresy */ long code; /** Dvoupísmenný ISO kód státu */ string countryCode; /** Celý název adresy */ string wholeName; }
/** Souřadnice */ class Coordinates { /** Typ souřadnic */ CoordinatesType type; /** Souřadnice JTSK – osa X */ double jtskX; /** Souřadnice JTSK – osa Y */ double jtskY; /** GPS – šířka */ double gpsLat; /** GPS – délka */ double gpsLng; }
/** Typ souřadnic */ enum CoordinatesType { /** Souřadnice jsou přesné (např. ukazují na konkrétní adresu) */ EXACT, /** Souřadnice ukazují na střed oblasti (např. střed obce) */ CENTER, /** Výsledná souřadnice je dána výpočtem (např. průměr souřadnic adres z jedné ulice) */ APPROXIMATE }
/** Výsledek dotazu. */ enum ResultCode { /** Volání service proběhlo v pořádku. */ OK, /** Při volání service došlo k chybě. */ FAIL }
Tabulka typů v pseudokódu
typ v pseudokódu | typ v JSON |
---|---|
třída (class) | vnořený objekt |
výčet (enum) | řetězec se jménem vybrané položky |
List | pole |
Map | objekt – klíče a hodnoty se stanou položkami objektu |
string | řetězec |
int | číslo |
double | číslo |
boolean | boolean |
char (jeden znak) | řetězec |