Afficher sur le menu contextuel de la souris (marqueur)
J'ai ce code pour menu contextuel et ça fonctionne
google.maps.event.addListener(map, 'rightclick', function(e)
{
//start buy hiding the context menu if its open
contextMenu.hide();
var mapDiv = $(map.getDiv()),
x = e.pixel.x,
y = e.pixel.y;
//save the clicked location
clickedLatLng = e.latLng;
//adjust if clicked to close to the edge of the map
if ( x > mapDiv.width() - contextMenu.width() )
x -= contextMenu.width();
if ( y > mapDiv.height() - contextMenu.height() )
y -= contextMenu.height();
//Set the location and fade in the context menu
contextMenu.css({ top: y, left: x }).fadeIn(100);
});
Ma question est pourquoi cela ne fonctionne pas, la même chose, mais le clic est maintenant startMarker *cliquez sur*?
google.maps.event.addListener(startMarker, 'click', function(e) {
//start buy hiding the context menu if its open
contextMenu.hide();
var mapDiv = $(map.getDiv()),
x = e.pixel.x,
y = e.pixel.y;
//save the clicked location
clickedLatLng = e.latLng;
//adjust if clicked to close to the edge of the map
if ( x > mapDiv.width() - contextMenu.width() )
x -= contextMenu.width();
if ( y > mapDiv.height() - contextMenu.height() )
y -= contextMenu.height();
//Set the location and fade in the context menu
contextMenu.css({ top: y, left: x }).fadeIn(100);
});
Et le reste du code
//Create the context menu element
var contextMenu = $(document.createElement('ul')).attr('id', 'contextMenu');
//Fill our context menu with links
contextMenu.append(
'<li><a href=\"#startMenu\">Start</a></li>' +
'<li><a href=\"#stopMenu\">End</a></li>'
);
//Disable the browser context menu on our context menu
contextMenu.bind('contextmenu', function() { return false; });
//Append it to the map object
$(map.getDiv()).append(contextMenu);
//Set some events on the context menu links
contextMenu.find('a').click( function()
{
//fade out the menu
contextMenu.fadeOut(75);
//The link's href minus the #
var action = $(this).attr('href').substr(1);
switch (action) {
case 'startMenu':
$.get('something1.php', method1);
break;
case 'stopMenu':
$.get('something2.php', method2);
break;
}
return false;
});
InformationsquelleAutor svenkapudija | 2011-02-28
Vous devez vous connecter pour publier un commentaire.
Je l'ai eu pour activer le menu contextuel clic droit sur la carte et de la marque, étapes de:
1) Créer un nouveau MapCanvasProjection à utiliser fromLatLngToContainerPixel fonction:
2) Pour Chaque Marqueur inclure clic Droit Auditeur:
3) Remplacer le clic à droite de l'Écouteur de la Carte avec:
Marqueur d'événement (e) ne renvoie pas un pixel de l'objet ou un latLng objet (contrairement à une carte de l'événement) - il ne retourne x & y les coordonnées de l'événement - de sorte que les lignes suivantes dans votre code ne fonctionnera pas pour le marqueur
Pour obtenir les coordonnées, vous aurez besoin de remplacer les lignes ci-dessus avec
Vous ne serez pas en mesure d'obtenir latLng objet de cliquer sur le marqueur. Je suppose que le meilleur moyen d'obtenir cela est de lire l'objet à partir de la propriété de l'indicateur lui-même.