src/pyams_gis/resources/js/pyams_gis.js
changeset 91 6c9dec257d60
parent 90 53d13af906a1
equal deleted inserted replaced
90:53d13af906a1 91:6c9dec257d60
   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) {