ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ Fakulta Stavební Katedra mapování a kartografie
SEMESTRÁLNÍ PROJEKT Webová aplikace pro efektivnější vyhledávání realit
skupina F Praha květen 2012
Webová aplikace pro efektivnější vyhledávání realit
2012
Vedoucí semestrálního projektu:
Ing. Martin Landa
Autoři semestrálního projektu:
Filip Zavadil Kateřina Jarošová Eva Linhartová Markéta Sedláčková
2
Webová aplikace pro efektivnější vyhledávání realit
2012
Obsah Úvod ..................................................................................................................................................... 4 1
Zdroj dat........................................................................................................................................ 5
Webová aplikace pro efektivnější vyhledávání realit
2012
Úvod Vytvoření webové aplikace, která bude sloužit pro efektivnější vyhledávání realit. Jako mapové podklady budou použita data OpenStreetMap, která obsahují zájmové body např (lékař, škola). Tyto zájmové body umožní uživateli lépe filtrovat výsledky vyhledávání. Dalším vyhledávacím kritériem bude vzdálenost, max. vzdálenost od zájmových bodů. Výsledkem vyhledávání bude přehled realit vyhovující podmínkám nastavených uživatelem. Informace o realitách budou obsahovat údaje o vzdálenostech od např. 3 nejbližších škol, vzdálenost od zastávek hromadné dopravy a dalších zájmových bodů. Bude využit ArcGIS Server a ArcGIS Java-Script API, případně ještě jiný JavaScript framework.
Výběr tématu naší aplikace byl odvíjen od situace, ve které se spousta mladých lidí v dnešní době nachází a to výběr bydlení. Téma nám je blízké a věříme, že hledání realit v určité vzdálenosti od zájmových bodů je velké zpříjemnění pro uživatele aplikace. Tu jsme se snažili vytvořit velice intuitivní a jednoduchou pro všechny uživatele.
4
Webová aplikace pro efektivnější vyhledávání realit
1
2012
Zdroj dat Data poskytla realitní kancelář Dům realit dostupný na http://dumrealit.cz/ . Použitá data
slouží pouze k ukázce funkčnosti aplikace a tudíž nejsou aktuální. Data pokrývají pouze území hlavního města Prahy.
Zdrojem zájmových bodů byla data OpenStreetMap dostupný na http://www.openstreetmap.org/.
2
Náplň databáze Databáze realit byla plněna ručně, tedy všechny informace a fotky byly stahovány ze serve-
ru Dům realit. Data byla ukládána prakticky systematicky, bylo dodržováno pravidlo, aby domy a byty byly rozmístěny po celé Praze. Také pak, aby databáze obsahovala jak pronájem, tak prodej realit.
Po naplnění databáze byla data exportována do aplikace ArcMap a uložena do geodatabáze funkcí AddXY.
Ukázka struktury: CREATE TABLE nemovitosti ( id INT PRIMARY KEY AUTO_INCREMENT, url VARCHAR(256) NOT NULL, -- http:// …... druh VARCHAR(10) NOT NULL, -- byt, dum typ VARCHAR(10) NOT NULL, -- prodej, pronajem velikost VARCHAR(10), -- 1+kk, 3+1 … plocha DOUBLE NOT NULL, -- 64 , udavano v m3 mesto VARCHAR(256) NOT NULL, -- Praha 1 ulice VARCHAR(256) NOT NULL, -- Pobřežní 21 budova VARCHAR(256) NOT NULL, -- zděná, panelák vlastnictvi VARCHAR(256) NOT NULL, -- osobní GPSlon DOUBLE NOT NULL, -- delka v dekadickem tvaru GPSlat DOUBLE NOT NULL, -- sirka v dekadickem tvaru cena INTEGER NOT NULL, -- 64000 , udavano v CZK popis TEXT NOT NULL, poznamka TEXT
);
5
Webová aplikace pro efektivnější vyhledávání realit
3
2012
Popis aplikace Webová aplikace slouží k vyhledávání nemovitostí na území Prahy podle těchto kritérií: Městská část: Praha 1 / Praha 2 / Praha 10 Nabídka: nerozhoduje / prodej / pronájem Nemovitost: nerozhoduje / dům / byt Velikost: 1kk / 1+1 / 2+1 / ... Plocha: [m2] Cena: [Kč] Vlastnictví: nerozhoduje / osobní / družstevní Budova: nerozhoduje / cihlová / panelová / montovaná / dřevěná Zájmový bod, kde uživatel vybere typ zájmového bodu (škola, lékař, …) a zadá vzdálenost [m2], do které by se měla nacházet realita.
Po zadání parametrů se vyhledají vyhovující nemovitosti, které jsou vypsány v pravé části obrazovky. V mapovém okně je na tyto reality přiblíženo a jsou zvýrazněny symbolem kresleného
domečku.
Po vybrání jedné z položek se otevře v aplikaci nový panel s podrobnostmi
reality a zároveň je na ni přiblíženo. Součástí informací o realitě jsou i fotografie, které se po kliknutí na odkaz zobrazí v plné velikosti v prohlížeči fotografií.
Obr. 1: Výběr realit podle městské části.
6
Webová aplikace pro efektivnější vyhledávání realit
2012
Název a popis reality.
Vzdálenost k zájmovým bodům
Fotografie reality Obr. 2: Detail vyhledané nemovitosti.
7
Webová aplikace pro efektivnější vyhledávání realit
4
2012
Zájmové body Zájmovými body se v naší aplikaci rozumí místa, v jejichž blízkosti je bydlení tzv.
příjemnější. Mnoho lidí si v dnešní době hledá byt či dům právě podle těchto zájmových bodů, jakými jsou např. lékaři, školy, ale i restaurace a kavárny.
Typy zájmových bodů a jejich symbologie:
8
Webová aplikace pro efektivnější vyhledávání realit
2012
Data byla pomocí pluginu OpenStreetMap loader importována do geodatabáze v prostředí ArcGIS Desktop. Byla provedena jejich kontrola a editace formou atributových dotazů a nepotřebná data byla smazána (letiště, poštovní schránky, …). Symbologie zájmových bodů byla vytvořena v souladu s kartografickými pravidly v software AcrMap 10. Legenda je uvedena výše.
9
Webová aplikace pro efektivnější vyhledávání realit
5
2012
Publikování mapové služby Součástí mapového dokumentu je vizualizace vrstvy „reality“ a „zájmové body“. Projekt
byl následně uložen ve formátu *.msd pomocí funkce Save Map Service Definition. Formát .msd je výhodný pro optimalizaci mapového dokumentu při publikování služby na ArcGIS Server 10 Enterprise.
Aplikace je dostupná na http://geo1.fsv.cvut.cz/pin2/2012/f/. Mapová služba byla vypublikována v serverovém prostředí ArcGIS Server Manager, který je určený pro administraci mapového serveru.
ArcGIS Server APIs Spolu s ArcGIS Serverem jsou dodávány i komplexní vývojové nástroje pro webové a mobilní platformy, které výrazně usnadňují tvorbu vlastních řešení. ArcGIS Server nabízí otevřenou platformou pro vývoj vlastních GIS aplikací s využitím moderních technologií jako jsou Java, .NET, Microsoft Silverlight, JavaScript a Adobe Flex. Možná je i integrace do aplikací založených na technologii Microsoft Sharepoint.
Vývojová rozhraní pro webové mapové aplikace Pro vývoj webových aplikací jsou k dispozici klientská aplikační prostředí Web API pro JavaScript, Flex a Silverlight. Integraci webových služeb GIS do komplexních informačních systémů pak umožňují standardizovaná rozhraní webových služeb ArcGIS Serveru (SOAP, REST a OGC).
6
Vývoj aplikace a postup práce Aplikace využívá tyto JavaScript knihovny: ArcGIS JavaScript API - rozhraní pro definování webové mapy a pro její ovládání ExtJS 4 - knihovna pro definici uživatelského rozhraní (panelů, oken, tlačítek, ...) Dojo - GUI knihovna, se kterou ArcGIS JS API imlicitně pracuje LightBox 2 - knihovna pro zobrazování fotografií
10
Webová aplikace pro efektivnější vyhledávání realit
2012
Pro grafické uživatelské rozhraní byl zvolen JavaScript Framework ExtJS4, který je volně použitelný, pokud je výsledný projekt v souladu s jeho licenčními podmínkami. V aplikaci byly použity prvky jako panel, okno, tabulka, tlačítko. Jednotlivá prostředí prvků byla definována pomocí JavaScriptu. Díky této technologii byla zaručena jak interaktivita, tak dynamičnost celé aplikace. Grafické rozhraní by mělo pomoci uživateli lépe se orientovat při vyhledávání a výběru nemovitosti.
Dále je bodově uveden postup práce. index.html
kód ve funkci init() je vykonán ihned při načítání stránky a obsahuje zejména definici mapového podkladu: o
vytvoření “extentu”, zájmová část Praha
o
zvolení referenčního systému webMercator (wkid:102100)
o
využití služby ArcGISTiledMapServiceLayer a přidána základní mapa, služba je dostupná na: http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer Základní mapa (Topografic Map) je poskytovaná zdarma pro uživatele ArcGIS.
o
přidání vrstvy realit a zájmových bodů službou ArcGISDynamicMapServiceLayer
definovány fuknce pro identifikaci a dotazování o
function dotazovani() nastavení parametrů výstupu, odkazu na odtazovanou službu a příslušnou vrstvu a atributy, na které se dotazování má vztahovat
o
function execute(query) funkce, která vykoná dotaz, po vykonání dotazu a obdržení odpovědi se asynchronně vykoná funkce showResults(results)
o
function showResults(results) - funkce se automaticky vykonává po obrdžení odpovědi po vykonání dotazu - jsou zde použity parametry, které se nesou v odpovědi z dotazu - obdržené informace se zde formátují do konečného HTML kódu pro vizualizaci
11
Webová aplikace pro efektivnější vyhledávání realit
o
2012
function mapReady(map) definování chování pro identifikaci prvků (co se má provést, pokud se klikne do mapy - je volána funkce executeIdentifyTask(evt) )
o
function executeIdentifyTask(evt) rozponaní prvku a formátování výstupu
GUI.js JS je soubor, kde je definováno uživatelské rozhraní využitím frameworku ExtJS4.
Jsou zde použity zejména tyto prvky:
Ext.container.Viewport
Ext.panel.Panel
Ext.tab.Panel
Ext.form.Label
Ext.button.Button
Ext.form.ComboBox'
Ext.grid.Panel
vyhledavani.js Okno s vytvářením dotazu je definováno v tomto souboru. Jsou zde ošetřeny vstupní parametry a také vytvořen SQL dotaz (function createQuery), dle kterého se výsledky filtrují. Pro tvorbu GUI bylo využito frameworku ExtJS.
Obr. 4: Okno „zadej dotaz“.
12
Webová aplikace pro efektivnější vyhledávání realit
2012
vysledky.js Odpověď dotazu je formátována právě skriptem v tomto souboru. Jednotlivé relity jsou přidávány jako řádky do datagridu, který se objevuje v pravé části aplikace. Je zde možné řadit jednotlivé atributy podle hodnot (vzestupně, sestupně, dle abecedy ...).
function feedBig(data) Po kliknutí na nemovitost jak v mapě či v datagridu je zavolána tato funkce, která načte data příslušné nemovitosti a zformátuje je do HTML kódu. Je vytvořena nová záložka, která obsahuje informace o příslušné nemovitosti.
photo.php Script, který je prováděn na straně serveru. Jako vstupní parametr je ID nemovitosti. Fotky jsou uložené na filesystemu a název adresáře odpovídá právě ID nemovitosti. Dále jsou nalezeny soubory v adresáři, vytvořen “kus” kódu HTML, pro zobrazování fotografií je použita knihovna lightbox 2. Script je z JavaScriptu volán metodou AJAX.
7
Závěr Při práci na tomto projektu jsme byli seznámeni s ArcGIS Serverem a vývojem takovéto ap-
likace. Naše webová aplikace pro efektivnější vyhledávání realit je dostupná pod všemi majoritními internetovými prohlížeči online na http://geo1.fsv.cvut.cz/pin2/2012/f/. Při navrhování uživatelského prostředí byl kladen důraz, aby aplikace byla pro uživatele jednoduchá a práce s ní příjemná.
Webová aplikace pro efektivnější vyhledávání realit
2012
//setup the popup window pro identifikaci var popup = new esri.dijit.Popup({ fillSymbol: new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,0,0]), 2), new dojo.Color([255,255,0,0.25])) }, dojo.create("div")); var initExtent = new esri.geometry.Extent({"xmin":1579898.4692263813,"ymin":6433181.305441205,"xmax": 1645481.439494974,"ymax":6484164.80330735,"spatialReference":{"wkid":102100}}); map = new esri.Map("mapa",{infoWindow:popup,extent:initExtent}); var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer" var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL); map.addLayer(basemap); var imageParameters = new esri.layers.ImageParameters(); imageParameters.format = "png24"; var dynamicMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://geo1.fsv.cvut.cz/ArcGIS/rest/se rvices/pin2/2012-F-REALITY/MapServer"); legendLayers.push({layer:dynamicMapServiceLayer,title:' '}); dojo.connect(map,'onLayersAddResult',function(results){ //add the legend var legend = new esri.dijit.Legend({ map:map, layerInfos:legendLayers, arrangement:esri.dijit.Legend.ALIGN_LEFT },"legend"); legend.startup(); }); map.addLayers([dynamicMapServiceLayer]); dojo.connect(map, 'onLoad', function(theMap) { dojo.connect(dijit.byId('mapa'), 'resize', map,map.resize); }); dojo.connect(map,"onLoad",mapReady); dotazovani(); } dojo.addOnLoad(init);
15
Webová aplikace pro efektivnější vyhledávání realit
2012
Reality pod lupou
Tato aplikace byla vytvořena v rámci předmětu Projekt informatika 2 na magisterském studiu Stavební fakulty ČVUT v Praze oboru Geoinformatika.
Aplikace slouží k vyhledávání nemovitostí v rámci Prahy. Po stisknutí tlačítka zadat dotaz ! je možné uživatelem zadat přesné požadavky pro vyhledávání.
Data nemovitostí nám pro tento projekt poskytl Dům realit. Uvedená nabídka realit není aktuální a slouží spíše pro ukázku funkčnosti aplikace.