2012-12-28 13 views
6

Próbuję narysować wiele kręgów nad Mapą Google (wiele okręgów na dachu).Kręgi mapy Google nie są okrągłe

Próbowałem klasy Circle i wydaje się być w porządku dla dużych kręgów, ale podczas rysowania małych nie są one okrągłe.

Kod używam idzie tak:

for(var i = 0; i < latitudes.length; i++) 
    var newCircle = new google.maps.Circle({ 
     strokeColor: "#FFFFFF", 
     strokeOpacity: 0, 
     strokeWeight: 1, 
     fillColor: "#FFFFFF", 
     fillOpacity: 1, 
     map: map, 
     center: new google.maps.LatLng(latitudes[i], longitudes[i]), 
     radius: 0.5 
    }); 
    newCircle.setMap(map); 

a wynik jest: google map with white circles

wiem, że istnieją inne sposoby, aby narysować punkty na mapie google, ale ja naprawdę lubię korzystać z rozwiązania Google, jeśli istnieje sposób, aby je rozejrzeć się tak, jak powinny.

Odpowiedz

9

Można używać symboli, powinny to być idealne kręgi. Spróbuj tego:

var whiteCircle = { 
    path: google.maps.SymbolPath.CIRCLE, 
    fillOpacity: 1.0, 
    fillColor: "white", 
    strokeOpacity: 1.0, 
    strokeColor: "white", 
    strokeWeight: 1.0, 
    scale: 1.0 
}; 

Następnie

for(var i = 0; i < latitudes.length; i++) { 
    var latLng = new google.maps.LatLng(latitudes[i], longitudes[i]) 
    var newCircle = new google.maps.Marker({ 
     icon: whiteCircle, 
     position: latLng 
    }); 
    newCircle.setMap(map); 
} 

Kręgi mogą być ogromne, więc bawić się ze skalą aby zrobić to dobrze.

Nigdy nie korzystałem z klasy Koło. Symbole zostały wprowadzone w tegorocznym Google I/O. Są to wektory, co oznacza, że ​​możesz zdefiniować swój własny kształt. Oto link, aby uzyskać więcej informacji: googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html

+0

Dzięki, wykonuje to zadanie. Jednak nie są one bardzo wydajne pod względem wydajności (np. Google.maps.Circle). – Nicolas

+0

Nie wiedziałbym, co do wydajności. Niedawno przełączałem się na wektory zamiast obrazów. Ich edycja jest znacznie łatwiejsza niż konieczność zmiany znaczników. Nie rysuję wielu obrazów, ale z mojego doświadczenia z zespołem, zbyt wiele znaczników spowolniło (z wyjątkiem tyłu w dniach mapy Flash). –

+0

W końcu poszedłem z producentami niestandardowymi, używając różnych png dla kolorów koła, i skalowanie za pomocą właściwości size – Nicolas

-2

Anti-aliasing jest krytyczny.

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)

Rozwiązanie Google nie będzie działać na mniejszych kołach.

+8

Przykro mi, ale co to jest "g2d"? – Nicolas

+2

@Nicolas wydaje się być [java] (http://docs.oracle.com/javase/7/docs/api/java/awt/RenderingHints.html) –