{"id":8147,"date":"2019-04-15T07:30:39","date_gmt":"2019-04-15T10:30:39","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=8147"},"modified":"2020-09-04T17:05:21","modified_gmt":"2020-09-04T20:05:21","slug":"introducao-ao-leaflet-plugins-parte-11","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/15\/introducao-ao-leaflet-plugins-parte-11\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Leaflet \u2013 Plugins"},"content":{"rendered":"<p>Em ess\u00eancia, o <a href=\"http:\/\/leafletjs.com\" rel=\"noopener noreferrer\" target=\"_blank\">Leaflet<\/a> \u00e9 projetado para ser leve. Dito isto, existem centenas de <a href=\"https:\/\/leafletjs.com\/plugins.html\" rel=\"noopener noreferrer\" target=\"_blank\">plugins dispon\u00edveis<\/a> para ampliar e melhorar as funcionalidades dos seus mapas na web.<\/p>\n<p>Hoje vamos ilustrar a adi\u00e7\u00e3o de um plugin ao nosso mapa a <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/01\/introducao-ao-leaflet-geopackage-parte-6\/\" rel=\"noopener noreferrer\" target=\"_blank\">partir do dia 6<\/a>.<\/p>\n<p>O plugin <a href=\"https:\/\/github.com\/elrobis\/L.Control.ZoomBar\" rel=\"noopener noreferrer\" target=\"_blank\">L.Control.ZoomBar<\/a> adiciona um controle de zoom personalizado que nos permite desenhar uma caixa ao redor da \u00e1rea que queremos ampliar, bem como adicionar um bot\u00e3o Home para retornar \u00e0 visualiza\u00e7\u00e3o inicial do mapa.<\/p>\n<p><strong>1. Instalando o Plugin<\/strong><\/p>\n<p>O procedimento de instala\u00e7\u00e3o de um plug-in do Leaflet varia. Alguns s\u00e3o instalados usando npm outros, colocando manualmente os arquivos. Para o plugin ZoomBar, a instala\u00e7\u00e3o \u00e9 um processo manual.<\/p>\n<p>O plugin e as instru\u00e7\u00f5es podem ser encontrados em:<br \/>\n &#8211; <a href=\"https:\/\/github.com\/elrobis\/L.Control.ZoomBar\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/github.com\/elrobis\/L.Control.ZoomBar<\/a>. <\/p>\n<p>Depois de baixar os arquivos e coloc\u00e1-los no(s) local(is) apropriado(s), adicionamos o seguinte refer\u00eancia ao cabe\u00e7alho do nosso arquivo HTML:<\/p>\n<pre>\r\n&lt;link&nbsp;rel=\"stylesheet\"&nbsp;type=\"text\/css\"&nbsp;href=\"stylesheets\/L.Control.ZoomBar.css\"\/&gt;\r\n\r\n&lt;script&nbsp;type=\"text\/javascript\"&nbsp;src=\"js\/L.Control.ZoomBar.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<p>As imagens para o plugin ZoomBar devem ser instaladas no mesmo local que outras imagens do Leaflet, no nosso caso:<\/p>\n<p><em>stylesheets\/images<\/em><\/p>\n<p><strong>2. Configurando o Controle<\/strong><\/p>\n<p>Em seguida, precisamos fazer algumas modifica\u00e7\u00f5es no nosso arquivo JavaScript. A declara\u00e7\u00e3o do mapa \u00e9 alterada para:<\/p>\n<pre>\r\nvar map = L.map(document.getElementById('mapDIV'), {\r\n    center: [-20.231, -44.250],\r\n    zoom: 9,\r\n    zoomControl: false\r\n});\r\n<\/pre>\n<p>Alteramos um pouco o centro do mapa, bem como o n\u00edvel de zoom, para come\u00e7armos com uma vis\u00e3o mais ampla. A op\u00e7\u00e3o <em>zoomControl:false<\/em> desativa o controle de zoom padr\u00e3o para que possamos usar o <em>ZoomBar<\/em>.<\/p>\n<p>Agora tudo o que precisamos fazer \u00e9 adicionar o <em>ZoomBar <\/em>no final do c\u00f3digo JavaScript:<\/p>\n<pre>\r\n\/\/ Adicionando o ZoomBar\r\nvar zoom_bar = new L.Control.ZoomBar({position: 'topleft'}).addTo(map);\r\n<\/pre>\n<p>Observe que definimos a posi\u00e7\u00e3o no canto superior esquerdo do mapa. Por padr\u00e3o, ele ficar\u00e1 l\u00e1, mas isso ilustra a op\u00e7\u00e3o necess\u00e1ria para definir o local do controle. Por exemplo, se quis\u00e9ssemos no canto superior direito, usar\u00edamos:<\/p>\n<pre>\r\nvar zoom_bar = new L.Control.ZoomBar({position: 'topright'}).addTo(map);\r\n<\/pre>\n<p>Com essas poucas altera\u00e7\u00f5es, obtemos o novo controle de zoom no canto superior esquerdo:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1.png\" alt=\"\" width=\"709\" height=\"707\" class=\"aligncenter size-full wp-image-8151\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1.png 709w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1-150x150.png 150w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1-300x300.png 300w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1-144x144.png 144w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_d11_i1-600x598.png 600w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><br \/>\n<\/center><\/p>\n<p>Clicar no bot\u00e3o de zoom para a \u00e1rea (inferior) nos permite desenhar uma caixa de zoom e aplicar zoom nela.<\/p>\n<p>O bot\u00e3o home nos retorna para a visualiza\u00e7\u00e3o inicial.<\/p>\n<p>Nota: em telas pequenas (ou seja, Mobile), o bot\u00e3o de zoom na \u00e1rea n\u00e3o \u00e9 exibido devido ao recurso de zoom de captura do dispositivo. Se voc\u00ea n\u00e3o vir o bot\u00e3o inferior, \u00e9 por isso.<\/p>\n<p>D\u00ea uma olhada na p\u00e1gina <a href=\"https:\/\/leafletjs.com\/plugins.html\" rel=\"noopener noreferrer\" target=\"_blank\">Plugins do Leaflet<\/a> para ver o que mais voc\u00ea pode achar \u00fatil.<\/p>\n<p><strong>3. O C\u00f3digo<\/strong><\/p>\n<p>Para visualizar o c\u00f3digo-fonte completo, <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_day11.zip\" rel=\"noopener noreferrer\" target=\"_blank\">clique aqui<\/a>.<\/p>\n<p><strong>4. YouTube<\/strong><\/p>\n<p>Voc\u00ea pode tamb\u00e9m assistir o que foi apresentado nesse post no YouTube:<\/p>\n<p><center><br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/ieO7mqMj3kg\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em ess\u00eancia, o Leaflet \u00e9 projetado para ser leve. Dito isto, existem centenas de plugins dispon\u00edveis para ampliar e melhorar as funcionalidades dos seus mapas na web. Hoje vamos ilustrar a adi\u00e7\u00e3o de um plugin ao nosso mapa a partir&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/15\/introducao-ao-leaflet-plugins-parte-11\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":8149,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[140,293,338],"class_list":["post-8147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-javascript","tag-leaflet","tag-plugins"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8147","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=8147"}],"version-history":[{"count":11,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8147\/revisions"}],"predecessor-version":[{"id":8947,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8147\/revisions\/8947"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/8149"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=8147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=8147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=8147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}