J'utilise la superposition Circle dans le cadre de la V3 de l'API Javascript Google Maps (c.-à-d. Voir ci-dessous - nous avons un appel ultérieur qui définit en fait radius/etc.) Pour afficher goe emplacements spatiaux dans notre application.Google Maps Circle Overlay et Vincenty Formula
var circle = new google.maps.Circle({
fillColor: lCircleColor,
strokeWeight: 2
});
Nous avons aussi un processus de serveur d'arrière-plan qui calcule les distances de points du centre du cercle pour déterminer si les points tombent à l'intérieur ou à l'extérieur du cercle - lorsque les points tombent à l'intérieur nous élevons une alarme. Il y a un cas particulier où nous avons eu récemment un point (lat = 31.197163, lon = -83.87292) qui tombe juste à la frontière du cercle (lat = 31.1998, lon = -83.8738, rayon = 1000ft). Lorsque vous utilisez la formule de Haversine pour calculer la distance, la distance calculée est supérieure au rayon tandis que Vincenty (plus précise) la distance est inférieure au rayon, provoquant ainsi une alarme générée par le processus dorsal que le point tombe dans le lieu.
Ma question concerne la façon dont Google Maps affiche la superposition Circle. Quand nous le voyons dans notre application, il semble tomber juste à l'extérieur du cercle (seulement visible lorsque le zoom est le plus important). J'avais lu ailleurs que pour calculer la distance, les API de Google utilisent l'algorithme de Vincenty mais pour afficher leur superposition, prennent-elles une forme sphérique (et donc expliquent pourquoi le point semble tomber en dehors du cercle)?
Juste à noter, ceci est probablement dû à une mauvaise correspondance dans votre implémentation des différents algorithmes avec des googles; par exemple. En outre, Haversine et Vincenty sont totalement indiscernables jusqu'à environ 8 décimales (~ 1,11 mm) mais les cartes api elles-mêmes n'ont qu'une précision de 6 décimales (~ 111 mm).) donc le niveau de précision de Vincenty n'est pas, comme je le vois, significatif pour l'affichage dans Google Maps. – Fraser