{"id":125,"date":"2017-03-27T22:18:15","date_gmt":"2017-03-27T20:18:15","guid":{"rendered":"http:\/\/brozanski.net\/?p=125"},"modified":"2017-03-27T22:18:44","modified_gmt":"2017-03-27T20:18:44","slug":"125","status":"publish","type":"post","link":"https:\/\/brozanski.net\/index.php\/2017\/03\/27\/125\/","title":{"rendered":"GIS dla laik\u00f3w &#8211; intro"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/brozanski.net\/wp-content\/uploads\/2017\/03\/ipad-632394_640.jpg\" alt=\"\" width=\"640\" height=\"425\" class=\"aligncenter size-full wp-image-128\" srcset=\"https:\/\/brozanski.net\/wp-content\/uploads\/2017\/03\/ipad-632394_640.jpg 640w, https:\/\/brozanski.net\/wp-content\/uploads\/2017\/03\/ipad-632394_640-300x199.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Postanowi\u0142em pobawi\u0107 si\u0119 troch\u0119 systemami informacji geograficznej (GIS). Zdarzy\u0142o mi si\u0119 kiedy\u015b wsp\u00f3\u0142pracowa\u0107 przy du\u017cym projekcie, kt\u00f3rego celem by\u0142o udost\u0119pnienie portalu mapowego dla r\u00f3\u017cnych zastosowa\u0144 i wtedy \u0142ykn\u0105\u0142em troch\u0119 niezb\u0119dnej wiedzy. W trakcie tego projektu pracowa\u0142em z drogimi narz\u0119dziami, kt\u00f3re wymaga\u0142y sporych umiej\u0119tno\u015bci zdobywanych na drogich szkoleniach. Wtedy te\u017c pomy\u015bla\u0142em, czy faktycznie to wszystko musi by\u0107 drogie? Czy prosty programista bez wielkiej wiedzy teoretycznej o geodezji i kartografii by\u0142by w stanie stworzy\u0107 portal z udost\u0119pnionymi funkcjami charakterystycznymi dla drogich system\u00f3w GIS? Ten i przysz\u0142e wpisy b\u0119d\u0105 zapiskami z moich &#8222;bada\u0144&#8221;. Zapraszam i zaczynamy&#8230;<br \/>\n<!--more--><\/p>\n<h3>Troch\u0119 teorii  i podstaw<\/h3>\n<p>Za\u0142\u00f3\u017cmy, \u017ce na naszym portalu chcieliby\u015bmy wy\u015bwietli\u0107 interaktywn\u0105 map\u0119. Czego potrzebujemy do realizacji naszego celu? <\/p>\n<p>Po pierwsze \u017ar\u00f3d\u0142a danych. Od razu nasuwa si\u0119 nam pierwszy wyb\u00f3r: Google z ich <a href=\"https:\/\/developers.google.com\/maps\/\">Google Map API<\/a>. Ka\u017cdy z nas zna i u\u017cywa mapy Google. API jest wygodne w u\u017cytkowaniu, dobrze udokumentowane, ale ma jedn\u0105 wad\u0119 &#8211; czasem trzeba za nie p\u0142aci\u0107. Dop\u00f3ki nie zechcemy zarabia\u0107 na naszym portalu lub nasze rozwi\u0105zanie jest tylko na u\u017cytek nasz i zaproszonych go\u015bci Google Maps API jest za darmo. Gdy jednak oka\u017ce si\u0119, \u017ce jeste\u015bmy popularni i zechcemy co\u015b zarobi\u0107 to niestety trzeba ju\u017c zap\u0142aci\u0107. Plan\u00f3w jest du\u017co i ka\u017cdy wybierze co\u015b dla siebie. Postaram si\u0119 w jednym z post\u00f3w co\u015b napisa\u0107 o Google Maps i jego u\u017cyciu.<\/p>\n<p>Czy mamy darmow\u0105 alternatyw\u0119? Tutaj wyb\u00f3r jest do\u015b\u0107 oczywisty. Nasze pierwsze kroki powinni\u015bmy skierowa\u0107 do spo\u0142eczno\u015bci skupionej wok\u00f3\u0142 <a href=\"http:\/\/www.openstreetmap.org\" target=\"_blank\">OpenStreetMap<\/a>. Jest to organizacja zrzeszaj\u0105ca amator\u00f3w GIS, kt\u00f3ra mi\u0119dzy innymi rozwija autorsk\u0105, wektorow\u0105 map\u0119 \u015bwiata. Dane udost\u0119pnian\u0119 przez t\u0119 organizacj\u0119 s\u0105 na licencji ODbL, wi\u0119c ich wykorzystania wymaga g\u0142\u00f3wnie umieszczenia ich \u017ar\u00f3d\u0142a. Map\u0119 mo\u017cna \u015bci\u0105gn\u0105\u0107 z dost\u0119pnych \u017ar\u00f3de\u0142 i udost\u0119pni\u0107 z wykorzystaniem serwera map. Zwykle jednak jest to proces czasoch\u0142onny, wi\u0119c, my w tym wypadku b\u0119dziemy si\u0119 posi\u0142kowa\u0107 gotowymi serwerami udost\u0119pnianymi przez spo\u0142eczno\u015b\u0107 w postaci serwis\u00f3w WMS.<\/p>\n<h3>Co to jest WMS?<\/h3>\n<p>WMS &#8211; Web Map Service, czyli webowy serwis mapowy udost\u0119pniaj\u0105cy na odpowiednie \u017c\u0105danie mapy w postaci obrazka w formacie JPEG, PNG lub GIF. <em>(Istnieje jeszcze WFS i WFSM, ale o tym kiedy indziej)<\/em>. Dzia\u0142a jak zwyczajna us\u0142uga HTTP z tym, \u017ce ma odg\u00f3rnie zdefiniowany przez organizacj\u0119 OGC (Open Geospatial Consortium) format. O tym dok\u0142adniej napisz\u0119 przy okazji tworzenia w\u0142asnego serwera map. Nam obecnie potrzebny jest tylko adres us\u0142ugi i odpowiednie parametry zapytania. <\/p>\n<p>Je\u015bli chodzi o adresy serwer\u00f3w map, polecam forum openStreeMap lub strony <a href=\"http:\/\/wiki.openstreetmap.org\/wiki\/WMS#OSM_WMS_Servers\" target=\"_blank\">wiki<\/a>. Ma\u0142a uwaga &#8211; nie ka\u017cdy udost\u0119pniaj\u0105cy serwer, udost\u0119pnia dane za darmo. Cz\u0119\u015b\u0107 serwer\u00f3w zezwala na korzystanie danych tylko na u\u017cytek niekomercyjny. Pami\u0119tajmy wi\u0119c aby zawsze czyta\u0107 Terms of Use.<\/p>\n<h3>Jak to wy\u015bwietli\u0107?<\/h3>\n<p>Skoro zapewnili\u015bmy sobie backend to teraz czas na frontend. Musimy gdzie\u015b te nasze mapy wy\u015bwietli\u0107. W \u015brodowisku web jedyn\u0105 sensown\u0105 opcj\u0105 jest j\u0119zyk JavaScript i powsta\u0142e z jego pomoc\u0105 biblioteki. Wyb\u00f3r mamy ca\u0142kiem du\u017cy. Od minimalistycznych, idealnych dla rozwi\u0105za\u0144 mobilnych <a href=\"http:\/\/leafletjs.com\/\">LeafLet<\/a> i <a href=\"http:\/\/modestmaps.com\/\">ModestMaps<\/a>, przez wspieraj\u0105ce mapy wektorowe <a href=\"http:\/\/polymaps.org\/\">Polymaps<\/a>, <a href=\"http:\/\/www.vincentbroute.fr\/mapael\/\">Mapael<\/a>, a sko\u0144czywszy na mocno zaawansowanych (i ci\u0119\u017ckich) <a href=\"http:\/\/openlayers.org\/\">OpenLayers<\/a>, z kt\u00f3rych korzystaj\u0105 r\u00f3wnie\u017c profesjonali\u015bci. Warto zajrze\u0107 <a href=\"http:\/\/wiki.osgeo.org\/wiki\/A_comprehensive_list_of_webmapping_toolkits\">tutaj<\/a>, gdzie dost\u0119pna jest w miar\u0119 aktualna lista narz\u0119dzi wspieraj\u0105cych nas w wizualizacji danych GIS. Spora cz\u0119\u015b\u0107 z tych narz\u0119dzi ma publicznie dost\u0119pny kod, wi\u0119c jak kto\u015b chce to mo\u017cna pogrzeba\u0107 w bebechach. <\/p>\n<p>Dobra. Na dzi\u015b wystarczy. Wiemy skad czerpa\u0107 wiedz\u0119. Nast\u0119pnym razem spr\u00f3bujemy co\u015b napisa\u0107.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Postanowi\u0142em pobawi\u0107 si\u0119 troch\u0119 systemami informacji geograficznej (GIS). Zdarzy\u0142o mi si\u0119 kiedy\u015b wsp\u00f3\u0142pracowa\u0107 przy du\u017cym projekcie, kt\u00f3rego celem by\u0142o udost\u0119pnienie portalu mapowego dla r\u00f3\u017cnych zastosowa\u0144 i wtedy \u0142ykn\u0105\u0142em troch\u0119 niezb\u0119dnej wiedzy. W trakcie tego projektu pracowa\u0142em z drogimi narz\u0119dziami, kt\u00f3re wymaga\u0142y sporych umiej\u0119tno\u015bci zdobywanych na drogich szkoleniach. Wtedy te\u017c pomy\u015bla\u0142em, czy faktycznie to wszystko musi\u2026 <span class=\"read-more\"><a href=\"https:\/\/brozanski.net\/index.php\/2017\/03\/27\/125\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[19,22,20,21],"class_list":["post-125","post","type-post","status-publish","format-standard","hentry","category-dsp2017","tag-gis","tag-javascript","tag-maps","tag-web"],"_links":{"self":[{"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":4,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":130,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/posts\/125\/revisions\/130"}],"wp:attachment":[{"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brozanski.net\/index.php\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}