2012-12-28 4 views
6

Ich versuche, viele Kreise über eine Google Map (viele Kreise pro Dach) zu zeichnen.Google Karte Kreise sind nicht rund

Ich habe versucht, die Circle-Klasse und scheint für große Kreise in Ordnung zu sein, aber wenn kleine zeichnen, sind sie überhaupt nicht rund.

Der Code Ich verwende geht so:

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); 

Und das Ergebnis ist: google map with white circles

Ich weiß, dass es andere Möglichkeiten gibt Punkte über eine Google-Karte zu zeichnen, aber ich würde wirklich gerne mit der Google-Lösung gehen, wenn es eine Möglichkeit gibt, sie so aussehen zu lassen, wie sie sein sollten.

Antwort

9

Sie könnten Symbole verwenden, sie sollten perfekte Kreise sein. Versuchen Sie folgendes:

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

Dann

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); 
} 

Die Kreise sind wahrscheinlich groß sein, so mit der Waage spielen, um es richtig zu machen.

Ich habe nie die Circle-Klasse verwendet. Im diesjährigen Google I/O wurden Symbole eingeführt. Sie sind Vektoren, was bedeutet, dass Sie Ihre eigene Form definieren können. Hier ist ein Link für weitere Informationen: googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html

+0

Danke, es macht den Job. Allerdings sind sie nicht sehr leistungsfähig (google.maps.Circle in't auch nicht) – Nicolas

+0

Ich würde nicht leistungsmäßig wissen. Ich habe erst vor kurzem auf Vektoren statt Bilder umgeschaltet. Ihre Bearbeitung ist viel einfacher als der Wechsel der Marker. Ich zeichne nicht viele der Bilder, aber aus meiner Erfahrung mit Gmaps, verlangsamen zu viele Marker es (außer für zurück in den Flash-Karten Tagen) –

+0

Ich ging schließlich mit benutzerdefinierten Herstellern, mit verschiedenen PNGs für Kreisfarben und Skalierung mit der Size-Eigenschaft – Nicolas

-2

Anti-Aliasing ist kritisch.

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

Die Google-Lösung wird nicht für kleinere Kreise arbeiten.

+8

Es tut mir leid, aber was ist 'g2d'? – Nicolas

+2

@Nicolas scheint [Java] zu sein (http://docs.oracle.com/javase/7/docs/api/java/awt/RenderingHints.html) –