251 'leaflet-markercluster'); |
251 'leaflet-markercluster'); |
252 MyAMS.getCSS('/--static--/pyams_gis/css/leaflet-markercluster-default-1.4.1' + MyAMS.devext + '.css', |
252 MyAMS.getCSS('/--static--/pyams_gis/css/leaflet-markercluster-default-1.4.1' + MyAMS.devext + '.css', |
253 'leaflet-markercluster-default'); |
253 'leaflet-markercluster-default'); |
254 } |
254 } |
255 |
255 |
|
256 // show tooltip |
|
257 var hoverMarker = function(e) { |
|
258 this.openPopup(); |
|
259 } |
|
260 // hide tooltip |
|
261 var leaveMarker = function(e) { |
|
262 this.closePopup(); |
|
263 } |
256 // click marker |
264 // click marker |
257 var clickMarker = function(e) { |
265 var clickMarker = function(e) { |
258 window.location.href = this.options.clickURL; |
266 window.location.href = this.options.clickURL; |
259 } |
|
260 // show tooltip |
|
261 var hoverMarker = function(e) { |
|
262 var icon = this.getIcon(), |
|
263 tooltip = this.getTooltip(), |
|
264 position = e.containerPoint.y, |
|
265 height = $(this.getPane()).parents('.map').height(); |
|
266 if (position < height / 2) { |
|
267 tooltip.options.direction = 'bottom'; |
|
268 tooltip.options.offset = [0, 0] |
|
269 } else { |
|
270 tooltip.options.direction = 'top'; |
|
271 tooltip.options.offset = [0, -icon.options.iconSize[1]] |
|
272 } |
|
273 this.openTooltip(); |
|
274 } |
|
275 // hide tooltip |
|
276 var leaveMarker = function(e) { |
|
277 this.closeTooltip(); |
|
278 } |
267 } |
279 |
268 |
280 maps.each(function(idx, elt) { |
269 maps.each(function(idx, elt) { |
281 |
270 |
282 var map = $(elt), |
271 var map = $(elt), |
314 icon: markerIcon, |
303 icon: markerIcon, |
315 clickURL: markerConfig.href, |
304 clickURL: markerConfig.href, |
316 markerId: markerConfig.id, |
305 markerId: markerConfig.id, |
317 alt: markerConfig.id |
306 alt: markerConfig.id |
318 }); |
307 }); |
|
308 var popup = new L.popup({ |
|
309 offset: new L.Point(0, -markers.icon.size[1]), |
|
310 closeButton: false, |
|
311 autoPan: true |
|
312 }); |
|
313 marker.addEventListener('mouseover', hoverMarker); |
|
314 marker.addEventListener('mouseout', leaveMarker); |
319 if (markerConfig.href) { |
315 if (markerConfig.href) { |
320 marker.addEventListener('click', clickMarker); |
316 marker.addEventListener('click', clickMarker); |
321 } |
317 } |
322 icons[markerConfig.id] = marker; |
318 icons[markerConfig.id] = marker; |
323 // bind tooltip with title content |
319 // bind tooltip with title content |
335 if (label) { |
331 if (label) { |
336 var className = markers.tooltipClass || 'map-tooltip'; |
332 var className = markers.tooltipClass || 'map-tooltip'; |
337 if (markerConfig.img) { |
333 if (markerConfig.img) { |
338 className += ' p-0'; |
334 className += ' p-0'; |
339 } |
335 } |
340 icons[markerConfig.id].bindTooltip(label, { |
336 marker.bindPopup(label, { |
341 direction: 'top', |
337 direction: 'top', |
342 offset: [0, -markerIcon.options.iconSize[1]], |
338 offset: [0, -markerIcon.options.iconSize[1]], |
343 opacity: 1, |
339 opacity: 1, |
344 className: className |
340 className: className, |
|
341 closeButton: false, |
|
342 autoPan: true |
345 }); |
343 }); |
346 icons[markerConfig.id].addEventListener('mouseover', hoverMarker); |
344 marker.addEventListener('mouseover', hoverMarker); |
347 icons[markerConfig.id].addEventListener('mouseout', leaveMarker); |
345 marker.addEventListener('mouseout', leaveMarker); |
348 } |
346 } |
349 markersClusterCustom.addLayer(icons[markerConfig.id]); |
347 markersClusterCustom.addLayer(marker); |
350 } |
348 } |
351 leafmap.addLayer(markersClusterCustom); |
349 leafmap.addLayer(markersClusterCustom); |
352 if (config.adjust === 'auto') { |
350 if (config.adjust === 'auto') { |
353 leafmap.fitBounds(markersClusterCustom.getBounds()); |
351 leafmap.fitBounds(markersClusterCustom.getBounds()); |
354 if (markers.markers.length === 1) { |
352 if (markers.markers.length === 1) { |