vérifier si les marqueurs de carte sont dans certaines limites
J'ai une carte avec des marqueurs différents et j'ai besoin d'être en mesure de dessiner un rectangle sur la carte et sélectionner les marqueurs qui sont dans le rectangle de limites.
Pour l'instant j'ai trouvé quelques info ici: Comment obtenir des marqueurs à l'intérieur d'une zone choisie par la souris, faites glisser?
J'ai mis en œuvre la keymapzoom plugin ok. comme
$('#dispatcher').gmap3({action:'get'}).enableKeyDragZoom({
boxStyle: {
border: "dashed black",
//backgroundColor: "red",
opacity: 0.5
},
paneStyle: {
backgroundColor: "gray",
opacity: 0.2
}
});
var dz = $('#dispatcher').gmap3({action:'get'}).getDragZoomObject();
google.maps.event.addListener(dz, 'dragend', function (bnds) {
alert(bnds);
});
Cela me donne la suite
((lat,long),(lat,long)) format de l'alerte(bnds);
J'ai besoin de savoir comment je peux maintenant vérifier si tous les marqueurs sont à l'intérieur de cette?
J'ai déjà un objet qui stocke les marqueurs pour une autre raison. comme:
markers[name] = {};
markers[name].lat = lati;
markers[name].lng = longi;
qui pourrait être utile?
Je ne comprends pas comment utiliser la GLatLngBounds et containsLatLng(latlng:GLatLng) comme suggéré.
OriginalL'auteur Vince Lowe | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Votre question est étiqueté avec la v3 version de l'API des Cartes, donc je vais supposer que vous êtes à l'aide de cette version (ce qui devrait que v2 est déconseillée). Notez que certaines classes et les méthodes sont nommés différente de celle de votre question.
Limites sont représentées avec des
LatLngBounds
classe. Vous pouvez effectuer lescontains
méthode sur une instance de cette classe pour déterminer si un point se trouve à l'intérieur de ces limites.Si vous avez un objet avec tous vos repères, vous pouvez faire une boucle à travers eux et de vérifier chaque marqueur, par exemple:
Sur une note de côté, je voudrais stocker les LatLng objet dans les marqueurs d'objet lors de la création d'eux. De cette façon, vous n'avez pas à créer partout où vous en avez besoin.
Le constructeur prend 2 arguments: le sud-ouest et nord-est. Cliquez simplement sur le lien que j'ai fourni.
je vois, donc comment puis-je obtenir le sw et ne les arguments de mon bnds de sortie?
Vous dessinez un rectangle sur la carte, à droite? Semble que vous pouvez utiliser ces données pour calculer les coordonnées lat/lng de chaque point, une recherche sur Google.
LatLngBounds est utilisée pour les rectangles seulement (le doc a dit "correspond à un rectangle de coordonnées géographiques"). Il y a aussi un Polygone classe pour lesquels vous pouvez utiliser le Poly utilitaire de la bibliothèque.
OriginalL'auteur Peter Kruithof
Boîte/dessin du Rectangle de Sélection dans Google Maps
C'était ma solution..
OriginalL'auteur Vince Lowe