2013-01-25 3 views
0

J'ai une grande carte dans mon site et j'ai implémenté le dessin permettant de dessiner des formes (comme des cercles, des rectangles) dessus par l'API Google Maps v3.Est-il possible dans Google Map de dessiner un cercle et de vérifier quelles coordonnées tombent sur le cercle?

J'ai un ensemble d'emplacements (composés de coordonnées). Existe-t-il un moyen de vérifier quelles chutes coordonnées sur la forme (disons cercle) l'utilisateur ont dessinées sur la carte?

J'ai vérifié plusieurs questions ici et j'ai fait une recherche sur Google mais je n'ai pas trouvé de façon spécifique de le faire.

Merci.

+0

Je suis sûr qu'il y a. Lorsque vous pouvez mapper le rayon du cercle à la différence de lattitude et de longitude entre le point central et les points du cercle, vous devriez être capable de créer une formule pour calculer si les coordonnées tombent dans ce cercle. La formule exacte pour un cercle que je ne connaîtrais pas. Les rectangles devraient être plus faciles, donc vous pouvez commencer avec ça. Si vous cherchez les formules exactes pour le faire fonctionner, je ne peux pas vous aider, mais cela peut vous aider un peu. –

+0

Le nombre de coordonnées (points) dans un polygone donné (cercle ou autre) est infini. – Marcelo

+0

@DanielVanDommele, Merci pour la réponse. Je suis sûr que c'est aussi possible. Mais le problème est après avoir dessiné le cercle, il n'est pas clair quelles sont les propriétés de l'objet cercle à être consulté à cet effet. C'est pourquoi j'ai demandé. J'ai aussi la formule du cercle. Mais comme Marcelo l'a dit dans votre commentaire, le nombre de coordonnées d'un polygone donné est infini. –

Répondre

0

Oui, vous pouvez, vous devez calculer la distance entre le centre et les coordonnées dont vous avez besoin. Ensuite, vous vérifiez si la distance est égale au rayon de votre cercle.

Comparer. La distance entre le centre et les autres coordonnées, il peut être calculé avec le levenshtein ou vous pouvez utiliser le getDistanceMatrix en utilisant les places de la bibliothèque.

0

Dépend de la forme.

  1. pour un cercle utilisent la méthode spherical geometry library computeDistanceBetween(), pour chaque point et le centre du cercle (si la distance calculée est inférieure au rayon du cercle, le point est à l'intérieur)

  2. pour un rectangle d'utilisation LatLngBounds.contains()

  3. Pour un polygone, utilisez la méthode poly library containsLocation().

+0

Je sais que c'est un peu en retard ... mais pouvez-vous le redimensionner pour qu'il rentre dans le polygone s'il ne le fait pas sans que l'utilisateur fasse quoi que ce soit? –

+0

Je ne suis pas sûr de ce que vous demandez, mais il est peu probable que ce soit approprié pour un commentaire sur cette question. Veuillez poser une autre question qui indique clairement ce dont vous avez besoin, ce que vous essayez de faire et fournit un [mcve]. – geocodezip

Questions connexes