{"id":8052,"date":"2019-04-01T07:30:37","date_gmt":"2019-04-01T10:30:37","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=8052"},"modified":"2020-08-04T18:56:18","modified_gmt":"2020-08-04T21:56:18","slug":"introducao-ao-leaflet-geopackage-parte-6","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/01\/introducao-ao-leaflet-geopackage-parte-6\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Leaflet \u2013 Geopackage"},"content":{"rendered":"<p>Neste post vamos &#8220;trocar de marcha&#8221; e instalar o Leaflet localmente, depois adicionar uma camada de um arquivo GeoPackage.<\/p>\n<p><strong>1. Instalando o Leaflet<\/strong><\/p>\n<p>At\u00e9 agora, estamos usando uma vers\u00e3o hospedada no servidor do Leaflet. Em outras palavras, cada vez que carregamos o mapa, \u00e9 feita uma solicita\u00e7\u00e3o para buscar o CSS e o JavaScript do Leaflet.<\/p>\n<pre>\r\n&lt;link&nbsp;rel=\"stylesheet\"&nbsp;href=\"https:\/\/unpkg.com\/leaflet@1.4.0\/dist\/leaflet.css\"\r\n&nbsp;&nbsp;integrity=\"sha512-puBpdR0798OZvTTbP4A8Ix\/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb\/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==\"\r\n&nbsp;&nbsp;crossorigin=\"\"\/&gt;\r\n&nbsp;&nbsp;\r\n&lt;script&nbsp;src=\"https:\/\/unpkg.com\/leaflet@1.4.0\/dist\/leaflet.js\"\r\n&nbsp;&nbsp;integrity=\"sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S\/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg==\"\r\n&nbsp;&nbsp;crossorigin=\"\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<p>Existem algumas maneiras de instalar o Leaflet : baixe-o do site ou instale-o npm. Em ambos os casos, voc\u00ea precisar\u00e1 mover os arquivos leaflet.js, leaflet.css e o diret\u00f3rio de images para o local apropriado para o seu site.<\/p>\n<p>Uma vez instalado, o arquivo HTML precisa ser alterado para refletir a localiza\u00e7\u00e3o dos arquivos:<\/p>\n<pre>\r\n&lt;link rel=\"stylesheet\" href=\"\/stylesheets\/leaflet.css\" \/&gt;  \r\n&lt;script src=\"\/js\/leaflet.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<p><strong>2. Usando o Plugin<\/strong><\/p>\n<p>Para acessar as camadas do GeoPackage, precisamos usar o plugin <em>leaflet-geopackage<\/em>. Podemos us\u00e1-lo sem instalar como fizemos anteriormente com o Leaflet:<\/p>\n<pre>\r\n&lt;script src=\"https:\/\/unpkg.com\/@ngageoint\/leaflet-geopackage@2.0.5\/dist\/leaflet-geopackage.min.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<p><strong>3. Adicionando a camada GeoPackage<\/strong><\/p>\n<p>O c\u00f3digo para adicionar e estilizar a camada \u00e9:<\/p>\n<pre>\r\n\tvar&nbsp;placer&nbsp;=&nbsp;L.geoPackageFeatureLayer([],&nbsp;{\r\n\t\t&nbsp;&nbsp;geoPackageUrl:&nbsp;'code\/points.gpkg',\r\n\t\t&nbsp;&nbsp;layerName:&nbsp;'points',\r\n\t\t&nbsp;&nbsp;pointToLayer:&nbsp;function(feature,&nbsp;latlng){\r\n\t\t\t&nbsp;&nbsp;return&nbsp;L.circleMarker(latlng,&nbsp;{radius:&nbsp;5,\r\n\t\t\t\t\t\t\t\t\t\t\tstroke:&nbsp;false,\r\n\t\t\t\t\t\t\t\t\t\t\tfillColor:&nbsp;'#800000',\r\n\t\t\t\t\t\t\t\t\t\t\tfillOpacity:&nbsp;0.6});\r\n\t\t&nbsp;&nbsp;},\r\n\t\t&nbsp;&nbsp;onEachFeature:&nbsp;function(&nbsp;feature,&nbsp;layer){\r\n\t\t\t&nbsp;&nbsp;var&nbsp;name&nbsp;=&nbsp;feature.properties.name;\t\t\t&nbsp;\r\n\t\t\t&nbsp;&nbsp;var&nbsp;lat&nbsp;=&nbsp;feature.properties.prim_lat_d;\r\n\t\t\t&nbsp;&nbsp;var&nbsp;lon&nbsp;=&nbsp;feature.properties.prim_lon_1;\r\n\r\n\t\t\t&nbsp;&nbsp;layer.bindPopup('Name:&nbsp;'&nbsp;+&nbsp;name&nbsp;+\t\t\t\t\t\t\t&nbsp;&nbsp;\r\n\t\t\t\t\t\t\t&nbsp;&nbsp;'&lt;br\/&gt;Lat\/Lon:&nbsp;'&nbsp;+&nbsp;lat&nbsp;+&nbsp;'&nbsp;,&nbsp;'&nbsp;+&nbsp;lon);\r\n\t\t\t&nbsp;&nbsp;layer.on('mouseover',&nbsp;function()&nbsp;{layer.openPopup();});\r\n\t\t\t&nbsp;&nbsp;layer.on('mouseout',&nbsp;function()&nbsp;{layer.closePopup();});\r\n\t\t&nbsp;&nbsp;}\r\n\t&nbsp;&nbsp;});\r\n<\/pre>\n<p>A camada \u00e9 criada especificando a URL (caminho) para o arquivo GeoPackage e fornecendo o nome da camada (points). O restante do c\u00f3digo se parece muito com c\u00f3digo visto no \u00faltimo post.<\/p>\n<p>Na op\u00e7\u00e3o <em>pointToLayer<\/em>, estilizamos um pouco diferente, removendo o tra\u00e7o (contorno) do c\u00edrculo e fornecendo uma cor vermelha escura com opacidade de 0,6.<\/p>\n<p>Na op\u00e7\u00e3o onEachFeature \u00e9 semelhante, com exce\u00e7\u00e3o dos nomes de campo usados \u200b\u200bpara o pop-up.<\/p>\n<p>A camada points\u00e9 adicionada \u00e0 lista de superposi\u00e7\u00f5es, mas inicialmente n\u00e3o \u00e9 vis\u00edvel. Quando ativado no controle de camada, o mapa se parece com isto:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet.png\" alt=\"\" width=\"709\" height=\"708\" class=\"aligncenter size-full wp-image-8063\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet.png 709w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet-150x150.png 150w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet-300x300.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet-144x144.png 144w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/map6_leaflet-600x599.png 600w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><br \/>\n<\/center><\/p>\n<p><strong>4. O C\u00f3digo<\/strong><\/p>\n<p>O c\u00f3digo completo pode ser baixado <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/03\/leaflet_day6.zip\" target=\"_blank\" rel=\"noopener noreferrer\">clicando aqui<\/a>.<\/p>\n<p><strong>5. YouTube<\/strong><\/p>\n<p>Se voc\u00ea quiser, pode ver o processo detalhado acima no YouTube:<\/p>\n<p><center><br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/L8V6QEB5flw\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste post vamos &#8220;trocar de marcha&#8221; e instalar o Leaflet localmente, depois adicionar uma camada de um arquivo GeoPackage. 1. Instalando o Leaflet At\u00e9 agora, estamos usando uma vers\u00e3o hospedada no servidor do Leaflet. Em outras palavras, cada vez que&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/01\/introducao-ao-leaflet-geopackage-parte-6\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":8055,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[324,140,293],"class_list":["post-8052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-geopackage","tag-javascript","tag-leaflet"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=8052"}],"version-history":[{"count":12,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8052\/revisions"}],"predecessor-version":[{"id":8922,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8052\/revisions\/8922"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/8055"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=8052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=8052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=8052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}