Avec l'API Google Maps V3, de déterminer si un marqueur est à l'intérieur d'un fichier KML de la Couche limite
Est-il un moyen pour déterminer si un marqueur est entré dans une zone couverte par un KmlLayer? Mon .kml est principalement constitué d'un <Polygon>
avec un tas de coordonnées qui définissent la limite.
Il y a un article que j'ai trouvé, qui décrit certaines similaire à ce que je suis à la recherche, à l'aide d'une superposition: http://www.paulmcilwaine.com/api/google-maps-detecting-markers-in-a-particular-boundary
Cette méthode a l'avantage de l'utilisation de getBounds(), mais je suis à la recherche d'un moyen de le faire avec un KmlLayer limite. KmlLayer ne semble pas avoir une fonction pratique comme getBounds(), mais j'ai toutes les coordonnées disponibles pour moi dans le fichier KML lui-même, donc, je pense qu'il y a un moyen de créer mon propre getBounds() fonction. J'ai juste besoin d'un moyen de déterminer si un marqueur (ou un latlang) est à l'intérieur de ces coordonnées dans le fichier KML.
Merci pour les idées!
OriginalL'auteur Sean Fahey | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une telle fonction sur KmlLayer. Toutefois, si vous pouvez extraire les contours de polygones, et de créer un polygone, vous pouvez utiliser la Géométrie de la bibliothèque de l'API des Cartes pour déterminer si le point se trouve à l'intérieur du polygone:
https://developers.google.com/maps/documentation/javascript/reference#poly
OriginalL'auteur Mano Marks
J'ai eu une demande pour fournir plus de détails sur la façon dont je l'ai fait. Vous pouvez voir un exemple ici: http://www.usinternet.com/fiber-info/map.php
J'ai un couple de marqueurs sur la carte, et je veux tester si elles sont à l'intérieur ou à l'extérieur des frontières. Je les configurer comme ceci:
Pour créer le polygone, vous avez besoin de quelque chose à lire le fichier KML et de construire un ensemble de coordonnées, qui peut ensuite être ajouté à l'intérieur du polygone de chemins: de la propriété. Malheureusement, il ne semble pas que vous pouvez aller à partir de KML pour le Polygone juste à l'aide de l'API Google Maps, mais quelqu'un me corrige si je me trompe!
J'ai analysé le polygone du chemin vers le bas à partir de la KML, les coordonnées qui composent le chemin d'accès ont été imbriqués comme ceci: (la dernière paire de coordonnées n'est pas nécessaire si vous êtes à la fermeture du chemin.)
Puis-je tester si le marqueur est que j'ai sont à l'intérieur ou à l'extérieur du polygone:
Alors vous avez vous-même un vrai ou faux test si vous êtes à l'intérieur ou à l'extérieur de la couche KML, si il y avait un peu de faire un détour pour activer la couche KML dans un Polygone.
OriginalL'auteur Sean Fahey
Ici est une grande réponse pour comment convertir KML pour Google Maps V3:
Comment Vérifier si un Point est dans KML Polygone (SIG fichier de formes (Shapefile)
utiliser un tiers de l'analyseur comme geoxml3 ou geoxml-v3 pour rendre votre KML en tant que natif de l'API Google Maps v3 polygones, puis utiliser de la façon que vous savez comment. exemple d'utilisation de geoxml3
L'exemple donné convertit KML pour les Polygones, prend une adresse en entrée, géolocalise pour obtenir les coordonnées lat/long et détermine ensuite quel polygone le point est dans:
http://www.geocodezip.com/geoxml3_test/v3_collection-map2e.html
OriginalL'auteur Brad Trivers
Maintenant, vous pouvez obtenir le LatLngBoundary à votre KML couche directement à partir de l'API
Je supose cela ne fonctionne que sur de simples calques KML, mais une fois que vous chargez votre couche, vous pouvez obtenir de la frontière avec getDefaultViewport et à l'utilisation c'est contient méthode pour vérifier si un LatLng objet est situé dans les limites. C'est un moyen extrêmement facile de vérifier si une paire de coordonnées s'inscrit dans une couche KML.
OriginalL'auteur Bardo