2011-11-09 14 views
7

Google Maps V3 API'sini kullanarak bir daire oluşturdum ve aynı yarıçapa sahip bir işaretçi dairesi oluşturmaya çalıştım.Oluşturduğum Google Maps V3 Circle & Circle, eşleşmiyor

Sorun: Oluşturduğum bir tanesi eğikken Google Haritalar'dan biri güzel bir yuvarlak daire. Ne yanlış gitti?

Google Maps V3 Çember Kod

// Draw search circle 
search_circle = new google.maps.Circle; 
search_circle.setCenter(target_latlng); 
search_circle.setRadius(travel_time * average_speed); 
search_circle.setMap(map); 

enter image description here

cevap

4

Bir şey, google daire hangi bir küre (yeryüzünde) üzerindeki iki nokta arasındaki mesafeyi veriyor burada unutulmaması gerekir çemberiniz neden aynı görünmüyor?

Örneğinizde çemberin amacının ne olduğunu belirtmediniz, ancak kod pasajından, seyahat mesafeleriyle ilgili bir şey olduğunu söyleyebilirim.

The Haversine Formula

veya

The Spherical Law of Cosines

Ayrıca this page doğru daire şeklini almak için formülü çimdik için bazı esasına size sağlayabilir: Bu durumda içine bakmak isteyebilecek .

Düzenleme: Doğrulık uğruna, dünya mükemmel bir küre değildir, ancak tüm pratik amaçlar için bir tane olduğu varsayılır.

2

Küre üzerindeki mesafeleri hesaplamak için Google Maps geometry library'u kullanabilirsiniz.

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=true_or_false"></script> 

Ardından, daire JS kodu olacaktır:

num_theta_step = 365;    // number of steps 
for(theta = 0; theta < 365; theta += 365/num_theta_step) {       
    var circle_latlng = google.maps.geometry.spherical.computeOffset(target_latlng, R, theta); 
    var marker = new google.maps.Marker({ 
     position: circle_latlng, 
     map: map, 
     title:"Hello World!" 
    }); 
} 
kütüphane kullanımını talep etmek