简体   繁体   English

Leaflet:图标标记未出现在地图的右侧

[英]Leaflet: Icon marker does not appear in the right point of the map

I am placing a custom icon marker in a leaflet map. 我在传单地图中放置了一个自定义图标标记。

The first time the map is loaded, the icon marker does not appear in the right given coordenates. 第一次加载地图时,图标标记不会出现在右侧给定的坐标中。 It's "moved", then, if you zoom in until the minimum the icon appers in the right point. 它被“移动”,然后,如果你放大直到最小图标出现在正确的点。 I was wondering what's wrong. 我想知道什么是错的。

 var map = L.map('map').setView([-36.60664, -72.10342], 4); map.options.minZoom = 4; map.options.maxZoom = 18; L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(map); var LeafIcon = L.Icon.extend({ options: { //shadowUrl: 'leaf-shadow.png', iconSize: [30, 30], //shadowSize: [50, 64], iconAnchor: [22, 94], //shadowAnchor: [4, 62], popupAnchor: [-3, -76] } }); var myIcon = new LeafIcon({iconUrl: 'http://icons.veryicon.com/128/System/Small%20%26%20Flat/map%20marker.png'}); L.marker([-33.4247, -70.67877], {icon: myIcon}).bindPopup("Parque Fluvial Renato Poblete").addTo(map); 
  #map { width: 100%; height: 600px; } 
 <link href="https://unpkg.com/leaflet@1.0.3/dist/leaflet.css" rel="stylesheet"/> <script src="https://unpkg.com/leaflet@1.0.3/dist/leaflet.js"></script> <div id='map'></div> 

The icon you use is 128x128. 您使用的图标是128x128。 You have to resize it to 30x30 which is the size you declare in your options. 您必须将其大小调整为30x30,这是您在选项中声明的大小。

If you want to use a custom icon, you also have to understand how iconAnchor and popupAnchor are defined. 如果要使用自定义图标,还必须了解如何定义iconAnchorpopupAnchor

In your case, possible values could be: 在您的情况下,可能的值可能是:

iconSize:    [30, 30],
iconAnchor:  [15, 30],
popupAnchor: [0, -25],

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM