CBAPI
API pro práci s objekty v mapovém prostředí. Veškeré dotazy jsou možné pouze z povolených IP adres.
Resource Group ¶
LookoutTower ¶
Práce s objekty rozhleden.
API pracuje výhradně se strukturami ve tvaru JSON řetězce a za použití UTF-8 kódování.
Pokud žádaná operace proběhne úspěšně, je vrácen HTTP kód 200. Pokud operace neproběhne úspěšně, je vrácen odpovídající kód. Ve všech případech je vrácen též platný JSON řetezec. Pokud tělo odpovědi neobsahuje platný JSON řetězec, došlo k neočekávané situaci a výsledek by neměl být použit. O takové situaci nás, prosím, informujte.
Obrázky objektů je možné získávat pomocí odkazu složeného jako: https://stceapp.phonemaps.eu/content/img/cached/lookoutTower/{Image} kde {Image} je název souboru včetně relativní cesty, jak jej vrací API. Tedy napr.: https://stceapp.phonemaps.eu/content/img/cached/lookoutTower/12/34/72443-1592291234.jpg (jde o ukázkové url, daný odkaz žádný obrázek obsahovat nemusí). API vrací názvy obrázků vždy včetně relativní cesty, tj. např.: 12/34/72443-1592291234.jpg
Get AllGET/api/lookouttowers
Získání základních údajů o všech objektech.
Popis výstupních dat (každý objekt v poli items obsahuje):
-
idLot - id objektu [int]
-
visible - má být objekt zobrazován? [0/1]
-
hideInLanguages - má být objekt v nekterém jazyce zkryt? [0/1 array]
-
latitude - zeměpisná šířka [double]
-
longitude - zeměpisná délka [double]
-
lastUpdate - datum a čast poslední změny objektu [Y-m-d H:i:s]
Example URI
Headers
Content-Type: application/json
200
Headers
Content-Type: application/json
Body
{
"items":[
{
"idLot":53,
"visible":1,
"hideInLanguages":[],
"latitude":49.7585756,
"longitude":15.0986767,
"lastUpdate":"1000-01-01 00:00:00"
},
{
"idLot":54,
...
},
...
]
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
Get DetailGET/api/lookouttowers/{idLot}
Získání všech údajů o vybraném objektu.
Popis výstupních dat viz vložení objektu a získání základních údajů. Při získání detailu se oproti vkládání a získání základních údajů pracuje navíc s:
-
images - pole obrázků k objektu. každý záznam obsahuje název souboru a textové popisy v poli, kde klíčem je id jazyka dle číselníku jazyků
-
icon - soubor s ikonou pro zobrazení bodu na mapě
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
200
Headers
Content-Type: application/json
Body
{
"item": {
"idLot": 53,
"lastUpdate": "1000-01-01 00:00:00",
"visible": 1,
"hideInLanguages": [],
"latitude": 49.7585756,
"longitude": 15.0986767,
"phone": "",
"gsm": "",
"email": "",
"web": "",
"title": {
"1": "Rozhledna Babka",
"6": "Aussichtsturm Babka",
"7": "Lookout tower Babka",
"9": "Wieża widokowa Babka"
},
"address": {
"1": "",
"6": "",
"7": "",
"9": ""
},
"view": {
"1": "Zruč nad Sázavou, vrch Melechov u Ledče nad Sázavou, Velký Blaník, přehrada Želivka, Českomoravská vrchovina",
"6": "Zruč nad Sázavou, Melechov, Velký Blaník, Želivka Damm, Českomoravská vrchovina",
"7": "Zruč nad Sázavou, Melechov, Velký Blaník, dam Želivka, Českomoravská vrchovina",
"9": "Zruč nad Sázavou, Melechov, Velký Blaník, zapora Želivka, Českomoravská vrchovina"
},
"openingHours": {
"1": "Celoročně",
"6": "Ganzes Jahr",
"7": "Whole year",
"9": "Cały rok"
},
"descriptionShort": {
"1": "Dřevěná rozhledna s kovovými prvky a schodištěm se nachází v lokalitě \"Mezi cestami\" asi 2 km severně nad městem Zruč nad Sázavou směrem na Jiřice.",
"6": "",
"7": "A unique wooden lookout tower with metal elements is located about 2 km north from Zruč nad Sázavou, towards the village of Jiřice.",
"9": ""
},
"price": {
"1": "Zdarma",
"6": "Kostenlos",
"7": "Free",
"9": "za darmo"
},
"weblink": {
"1": "https://www.centralbohemia.cz/dr-cs/27027-rozhledna-babka.html",
"6": "",
"7": "https://www.centralbohemia.cz/dr-en/27027-lookout-tower-babka.html",
"9": ""
},
"images": [
{
"file": "32/65/47525-1592223265.jpg",
"title": {
"1": "",
"6": "",
"7": "",
"9": ""
}
}
],
"icon": {
"file": "69/57/19762-1592226957.png"
},
"altitude": 450,
"numberOfStairs": 130,
"towerHeight": 27.4
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
404
Headers
Content-Type: application/json
Insert LookoutTowerPOST/api/lookouttowers
Vložení nového objektu.
Popis vstupních dat (pouze označené údaje jsou povinné):
-
visible - viditelnost objektu [0/1]
-
latitude (povinné) - zeměpisná šířka [double]
-
longitude (povinné) - zeměpisná délka [double]
-
title (povinné) - asociativní jazykové pole názvů objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]
-
hideInLanguages - asociativní jazykové pole pro možnost zkrytí objektu v dané jazykové verzi , klíčem je id jazyka dle číselník jazyků [0/1 array]
-
address - asociativní jazykové pole adresy objektu, klíčem je id jazyka dle číselníku jazyků [string array]
-
view - asociativní jazykové pole s popisem výhledu z objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]
-
openingHours - asociativní jazykové pole s otevíracími hodinami objektu [string[40] array]
-
descriptionShort - asociativní jazykové pole s krátkým popisem objektu [string[350] array]
-
price - asociativní jazykové pole s otevíracími hodinami objektu [string[40] array]
-
weblink - asociativní jazykové pole odkazů na objekt na webu centralbohemia
-
phone - kontaktní telefon k objektu [string[20]]
-
gsm - kontaktní mobilní telefon k objektu [string[20]]
-
email - kontaktní e-mail k objektu [string[40]]
-
web - web objektu [string[255]]
-
numberOfStairs - počet schodů [int]
-
altitude - nadmořská výška [int]
-
towerHeight - výška rozhledny [float]
Pokud vložení proběhne v pořádku, je vráceno id nového objektu.
Example URI
Headers
Content-Type: application/json
Body
{
"visible": 1,
"latitude": 50.06,
"longitude": 14.445,
"title": {
"1": "title CZ",
"6": "title DE",
"7": "title EN",
"9": "title PL"
},
"hideInLanguages": {
"1": 0,
"6": 0,
"7": 0,
"9": 1
},
"address": {
"1": "address CZ",
"6": "address DE",
"7": "address EN",
"9": "address PL"
},
"view": {
"1": "view CZ",
"6": "view DE",
"7": "view EN",
"9": "view PL"
},
"openingHours": {
"1": "openingHours CZ",
"6": "openingHours DE",
"7": "openingHours EN",
"9": "openingHours PL"
},
"descriptionShort": {
"1": "descriptionShort CZ",
"6": "descriptionShort DE",
"7": "descriptionShort EN",
"9": "descriptionShort PL"
},
"price": {
"1": "price CZ",
"6": "price DE",
"7": "price EN",
"9": "price PL"
},
"weblink": {
"1": "web CZ",
"6": "web DE",
"7": "web EN",
"9": "web PL"
},
"phone": "707843724",
"gsm": "g707843724",
"email": "email@gmail.com",
"web": "http://web",
"altitude": 123,
"numberOfStairs": 1000,
"towerHeight": 58.7
}
200
Headers
Content-Type: application/json
Body
{
"result": {
"idLot": 12
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
400
Headers
Content-Type: application/json
Body
{
"errorMessage": "Invalid input data. Problem with following: latitude",
"errorCode": 5
}
Update LookoutTowerPUT/api/lookouttowers/{idLot}
Aktualizace existujícího objektu.
Popis vstupních dat:
-
visible - viditelnost objektu [0/1]
-
latitude - zeměpisná šířka [double]
-
longitude - zeměpisná délka [double]
-
title - asociativní jazykové pole názvů objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]
-
hideInLanguages - asociativní jazykové pole pro možnost zkrytí objektu v dané jazykové verzi , klíčem je id jazyka dle číselník jazyků [0/1 array]
-
address - asociativní jazykové pole adresy objektu, klíčem je id jazyka dle číselníku jazyků [string array]
-
view - asociativní jazykové pole s popisem výhledu z objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]
-
openingHours - asociativní jazykové pole s otevíracími hodinami objektu [string[40] array]
-
descriptionShort - asociativní jazykové pole s krátkým popisem objektu [string[350] array]
-
price - asociativní jazykové pole s otevíracími hodinami objektu [string[40] array]
-
weblink - asociativní jazykové pole odkazů na objekt na webu centralbohemia
-
phone - kontaktní telefon k objektu [string[20]]
-
gsm - kontaktní mobilní telefon k objektu [string[20]]
-
email - kontaktní e-mail k objektu [string[40]]
-
web - web objektu [string[255]]
-
numberOfStairs - počet schodů [int]
-
altitude - nadmořská výška [int]
-
towerHeight - výška rozhledny [float]
Pokud úprava proběhne v pořádku, je vráceno id upraveného objektu.
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
Body
{
"visible": 1,
"latitude": 50.16,
"longitude": 14.545,
"title": {
"1": "title2 CZ",
"6": "title2 DE",
"7": "title2 EN",
"9": "title2 PL"
},
"hideInLanguages": {
"1": 1,
"6": 1,
"7": 1,
"9": 0
},
"address": {
"1": "address2 CZ",
"6": "address2 DE",
"7": "address2 EN",
"9": "address2 PL"
},
"view": {
"1": "view2 CZ",
"6": "view2 DE",
"7": "view2 EN",
"9": "view2 PL"
},
"openingHours": {
"1": "openingHours2 CZ",
"6": "openingHours2 DE",
"7": "openingHours2 EN",
"9": "openingHours2 PL"
},
"descriptionShort": {
"1": "descriptionShort2 CZ",
"6": "descriptionShort2 DE",
"7": "descriptionShort2 EN",
"9": "descriptionShort2 PL"
},
"price": {
"1": "price2 CZ",
"6": "price2 DE",
"7": "price2 EN",
"9": "price2 PL"
},
"weblink": {
"1": "web2 CZ",
"6": "web2 DE",
"7": "web2 EN",
"9": "web2 PL"
},
"phone": "2707843724",
"gsm": "2g707843724",
"email": "2email@gmail.com",
"web": "http://web2",
"altitude": 2123,
"numberOfStairs": 21000,
"towerHeight": 258.7
}
200
Headers
Content-Type: application/json
Body
{
"result": {
"idLot": 12
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
400
Headers
Content-Type: application/json
Body
{
"errorMessage": "Invalid input data. Problem with following: latitude",
"errorCode": 5
}
404
Headers
Content-Type: application/json
Delete LookoutTowerDELETE/api/lookouttowers/{idLot}
Smazání existujícího objektu.
Pokud smazání proběhne v pořádku, je vráceno id již neexistujícího objektu. Obrázky k danému objektu jsou odstraněny též a v závislosti na stavu cache již nemusí být na serveru dostupné.
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
200
Headers
Content-Type: application/json
Body
{
"result": {
"idLot": 12
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
404
Headers
Content-Type: application/json
Insert / Update ImagePOST/api/lookouttowers/image/{idLot}
Vložení nového obrázku nebo přepsání existujícího obrázku u existujícího objektu.
Objekt je nutné určit parametrem idLot. V těle požadavku je pak nutné předat další údaje:
-
image - base64 kódovaný obrázek ve formátu JPEG. Maximální velikost obrázku 1MB
-
title - asociativní jazykové pole názvů fotografie, klíčem je id jazyka dle číselníku jazyků [string array]
-
? fileToUpdate - název souboru obrázku k přepsání
Atribut fileToUpdate je nepovinný a používá se pouze v situaci, kdy je cílem přepsat již existující obrázek. Pokud je cílem vložit obrázek nový, atribut do těla požadavku neumísťujte.
Pokud vložení / přepsání proběhne v pořádku, je vráceno jméno souboru uloženého obrázku.
Example URI
- idLot
number
(required)id objektu
to insert
Headers
Content-Type: application/json
Body
{
"image": "TG9yZW0gaXBz ... HDFmWk=",
"title": {
"1": "title CZ",
"6": "title DE",
"7": "title EN",
"9": "title PL"
}
}
to update
Headers
Content-Type: application/json
Body
{
"image": "TG9yZW0gaXBz ... HDFmWk=",
"title": {
"1": "title CZ",
"6": "title DE",
"7": "title EN",
"9": "title PL"
},
"fileToUpdate": "12/34/72443-1592291234.jpg"
}
200
Headers
Content-Type: application/json
Body
{
"result": {
"file": "12/34/72443-1592291234.jpg"
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
400
Headers
Content-Type: application/json
Body
{
"errorMessage": "Invalid input data. Problem with following: fileToUpdate",
"errorCode": 5
}
404
Headers
Content-Type: application/json
Delete ImageDELETE/api/lookouttowers/image/{idLot}
Smazání obrázku u existujícího objektu.
Objekt je nutné určit parametrem idLot a jeho obrázek ke smazání pak v těle požadavku názvem souboru včetne relativní cesty v atributu file.
Pokud smazání proběhne v pořádku, je vráceno jméno již neexistujícího souboru. Obrázek je odstraněn a v závislosti na stavu cache již nemusí být na serveru dostupný.
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
Body
{
"file": "12/34/72443-1592291234.jpg"
}
200
Headers
Content-Type: application/json
Body
{
"result": {
"file": "12/34/72443-1592291234.jpg"
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
404
Headers
Content-Type: application/json
Insert / Update IconPOST/api/lookouttowers/icon/{idLot}
Vložení nové nebo přepsání existující ikonky u existujícího objektu. Ikonka objektu se používá při zobrazení jejího bodu nad mapou.
Pokud objekt neměl ikonku, je vložena nová. Pokud objekt ikonku již měl, je stará ikonka přepsána.
Objekt je nutné určit parametrem idLot. V těle požadavku je pak nutné předat další údaje:
- image - base64 kódovaný obrázek ve formátu PNG. Maximální velikost obrázku je 100KB.
Pokud vložení / přepsání proběhne v pořádku, je vráceno jméno souboru uloženého obrázku.
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
Body
{
"image": "TG9yZW0gaXBz ... HDFmWk=",
}
200
Headers
Content-Type: application/json
Body
{
"result": {
"file": "12/34/72443-1592291234.png"
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
404
Headers
Content-Type: application/json
400
Headers
Content-Type: application/json
Body
{
"errorMessage": "Image file not valid PNG.",
"errorCode": 13
}
Delete IconDELETE/api/lookouttowers/icon/{idLot}
Smazání ikonky u existujícího objektu.
Objekt je nutné určit parametrem idLot.
Pokud smazání proběhne v pořádku, je vráceno jméno již neexistujícího souboru. Obrázek je odstraněn a v závislosti na stavu cache již nemusí být na serveru dostupný.
Example URI
- idLot
number
(required)id objektu
Headers
Content-Type: application/json
200
Headers
Content-Type: application/json
Body
{
"result": {
"file": "12/34/72443-1592291234.jpg"
}
}
403
Headers
Content-Type: application/json
Body
{
"errorMessage": "Access denied.",
"errorCode": 15
}
404
Headers
Content-Type: application/json