{"id":8067,"date":"2019-04-02T12:43:40","date_gmt":"2019-04-02T15:43:40","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=8067"},"modified":"2020-08-04T18:57:50","modified_gmt":"2020-08-04T21:57:50","slug":"introducao-ao-leaflet-coordenadas-parte-7","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/02\/introducao-ao-leaflet-coordenadas-parte-7\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Leaflet \u2013 Coordenadas"},"content":{"rendered":"<p>Neste post, faremos algumas coisas:<\/p>\n<p> &#8211; Limpar a exibi\u00e7\u00e3o da precis\u00e3o de coordenadas em nossos pop-ups<br \/>\n &#8211; Adicionar as coordenadas atuais ao mapa enquanto o mouse se move<\/p>\n<p><strong>1. Exibi\u00e7\u00e3o de precis\u00e3o das coordenadas<\/strong><\/p>\n<p>O mapa atual exibe a latitude e longitude com sete casas decimais. Isso \u00e9 mais do que precisamos ver ao exibir informa\u00e7\u00f5es sobre locais:<\/p>\n<p><center><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\" \/><\/center><\/p>\n<p>Consertar isso \u00e9 f\u00e1cil usando a fun\u00e7\u00e3o JavaScript <em>toFixed<\/em>. Aqui est\u00e1 um trecho de c\u00f3digo da camada de trilhas:<\/p>\n<pre>\r\n  onEachFeature: function( feature, layer){\r\n      var townName = feature.properties.feature_na;\r\n      var elevation = feature.properties.elev_in_m;\r\n      var lat = feature.properties.prim_lat_d.toFixed(3);\r\n      var lon = feature.properties.prim_lon_1.toFixed(3);\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_map_d7_i2.png\" alt=\"\" width=\"198\" height=\"122\" class=\"aligncenter size-full wp-image-8071\" style=\"border: 0px solid rgb(0, 0, 0); float: right; margin-left: 5px; margin-bottom: 5px;\"  \/><\/p>\n<p>Observe que adicionamos <em>toFixed(3)<\/em> aos valores de latitude e longitude. Isso nos d\u00e1 uma exibi\u00e7\u00e3o melhor, sem alterar os dados em si. Se voc\u00ea for observador, voc\u00ea deve ter notado que n\u00f3s j\u00e1 fizemos isso para a camada placer em nosso \u00faltimo post (parte 6), n\u00f3s apenas n\u00e3o sinalizamos isso.<\/p>\n<p><strong>2. Exibindo coordenadas no mapa<\/strong><\/p>\n<p>\u00c0s vezes \u00e9 bom saber onde voc\u00ea est\u00e1 no mundo. Para fazer isso, adicionaremos uma exibi\u00e7\u00e3o das coordenadas do mapa que s\u00e3o atualizadas conforme movemos o mouse.<\/p>\n<p>Para fazer isso, precisamos criar um div que seja filho do nosso div mapDIV. Tamb\u00e9m precisamos estiliz\u00e1-lo para configurar sua localiza\u00e7\u00e3o:<\/p>\n<pre>\r\nvar coordDIV = document.createElement('div');\r\ncoordDIV.id = 'mapCoordDIV';\r\ncoordDIV.style.position = 'absolute';\r\ncoordDIV.style.bottom = '0';\r\ncoordDIV.style.left = '0';\r\ncoordDIV.style.zIndex = '900';\r\n\r\ndocument.getElementById('mapDIV').appendChild(coordDIV);\r\n<\/pre>\n<p>Isso configura nosso local de exibi\u00e7\u00e3o no canto inferior esquerdo do mapa. O <em>zIndex <\/em>de 900 garante que seja exibido em cima de todo o resto.<\/p>\n<p>Em seguida, precisamos configurar o evento para fazer a captura e exibi\u00e7\u00e3o real das coordenadas \u00e0 medida que o mouse se move.<\/p>\n<pre>\r\n\/\/ Setup the event to capture and display mouse movements\r\n  map.on('mousemove', function(e){\r\n      var lat = e.latlng.lat.toFixed(3);\r\n      var lon = e.latlng.lng.toFixed(3);\r\n      document.getElementById('mapCoordDIV').innerHTML = lat + ' , ' + lon;\r\n       });\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_map_d7_i3.png\" alt=\"\" width=\"198\" height=\"122\" class=\"aligncenter size-full wp-image-8076\" style=\"border: 0px solid rgb(0, 0, 0); float: right; margin-left: 5px; margin-bottom: 5px;\" \/><\/p>\n<p>Voc\u00ea pode ter notado um problema. A exibi\u00e7\u00e3o de coordenadas ocupa o mesmo lugar que a barra de escalas. Isso ocorre porque, por padr\u00e3o, o controle da barra de escala ocupa o canto inferior esquerdo do mapa. Vamos mover a tela de coordenadas ajustando as posi\u00e7\u00f5es:<\/p>\n<pre>\r\ncoordDIV.style.bottom = '1px';\r\ncoordDIV.style.left = '150px';\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_map_d7_i4.png\" alt=\"\" width=\"332\" height=\"122\" class=\"aligncenter size-full wp-image-8078\" style=\"border: 0px solid rgb(0, 0, 0); float: right; margin-left: 5px; margin-bottom: 5px;\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_map_d7_i4.png 332w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_map_d7_i4-300x110.png 300w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/p>\n<p>Com isso o <em>coordDIV <\/em>sobe 1 pixel e se desloca 150px \u00e0 direita, e assim n\u00e3o est\u00e1 mais atingindo a barra de escala, mas a fonte n\u00e3o est\u00e1 totalmente leg\u00edvel, e podemos fazer alguns ajustes adicionando algumas configura\u00e7\u00f5es de estilo no <em>coordDIV<\/em>:<\/p>\n<pre>\r\ncoordDIV.style.color = '#404040';\r\ncoordDIV.style.fontFamily = 'Georgia';\r\ncoordDIV.style.fontSize = '10pt';\r\ncoordDIV.style.backgroundColor = '#fff';\r\n<\/pre>\n<p>O comando acima faz uma s\u00e9rie de coisas:<\/p>\n<p>&#8211; Define a cor da fonte para um tom de cinza para que n\u00e3o seja t\u00e3o intrusivo<br \/>\n&#8211; Altera a fonte para a Ge\u00f3rgia (apenas por divers\u00e3o)<br \/>\n&#8211; Define o tamanho da fonte para 10 pt<br \/>\n&#8211; Altera a cor de fundo do div para branco para que apare\u00e7a melhor no mapa<\/p>\n<p><strong>3. O C\u00f3digo<\/strong><\/p>\n<p>O c\u00f3digo completo pode ser <a href=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2019\/04\/leaflet_day7.zip\" rel=\"noopener noreferrer\" target=\"_blank\">baixado aqui<\/a>.<\/p>\n<p><strong>4. 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\/XK6TDA2vqD0\" 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, faremos algumas coisas: &#8211; Limpar a exibi\u00e7\u00e3o da precis\u00e3o de coordenadas em nossos pop-ups &#8211; Adicionar as coordenadas atuais ao mapa enquanto o mouse se move 1. Exibi\u00e7\u00e3o de precis\u00e3o das coordenadas O mapa atual exibe a latitude&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2019\/04\/02\/introducao-ao-leaflet-coordenadas-parte-7\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":8074,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[140,293],"class_list":["post-8067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-javascript","tag-leaflet"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8067","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=8067"}],"version-history":[{"count":14,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8067\/revisions"}],"predecessor-version":[{"id":8923,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/8067\/revisions\/8923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/8074"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=8067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=8067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=8067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}