Dokumentace API – Hledání parcel

Toto je popis starší verze služby pro hledání parcel. Doporučujeme používat aktuální verzi.

Webová služba pro hledání parcel je k dispozici na adrese:

  • https://secure.smartform.cz/smartform-ws/searchParcel/v1

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í parcel.
 * 
 * Vždy musí obsahovat 
 *  - identifikaci katastrálního území, tedy "cadastralUnitName" nebo "cadastralUnitCode".
 *  - číslo parcely, tedy dvojici "number1" a "number2" nebo "wholeNumber".  
 */
class SearchParcelRequest 
{
    /** Heslo - pokud jej nemáte, získáte ho v administraci na https://admin.smartform.cz */
    string password;

    /** Název katastrálního území */
    string cadastralUnitName;

    /** Kód katastrálního území */
    int cadastralUnitCode;

    /** První číslo parcely. V Česku slouží pro zadání kmenového čísla. */
    int number1;

    /** 
     * Druhé číslo parcely. V Česku slouží pro zadání poddělení čísla.
     * 
     * Když je zadáno "number1" a není zadáno "number2", hledají se jen parcely bez poddělení čísla. 
     */
    int number2;

    /** 
     * Celé číslo parcely.
     * 
     * Může mít následující tvary:
     *    321
     *    321/45
     *    st 321
     *    st. 321/45
     *    pp 321/45
     *    pp. 321
     */
    string wholeNumber;
    
    /**
     * Typ číslování.
     * 
     * V Česku některé katastrální území používají dvě číselné řady: pro stavební pozemky a pro
     * ostatní pozemky.
     * 
     * Nepovinný vstup.
     */
    ParcelNumberingType numberingType;

}

Odpověď

/** Odpověď hledání parcel. */
class SearchParcelResponse 
{
    /** Zdali vůbec došlo k hledání parcel a hledání proběhlo v pořádku */
    ResultCode resultCode;

    /** Typ výsledku hledání parcel. */
    ResultType resultType;

    /** Nalezené parcely. */
    List<Parcel> parcels;

    /** Doplňující vysvětlení k výsledku hledání. Např. když je vstup zadán špatně nebo když dojde k nějaké chybě. */
    string message;
}

Další objekty

/** Typ výsledku hledání parcel. */
enum ResultType 
{
    /** Byla nalezena právě jedna parcela. */
    HIT,

    /** Nebyla nalezena žádná parcela. */
    NOTHING,

    /** Bylo nalezeno více parcel.*/
    MANY,

    /** Nebyla nalezena žádná parcela, protože vstupní data obsahují nějaký závažný nedostatek. */
    BAD_INPUT
}    
/** 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