Ich muss Formen zeichnen, die genau denen entsprechen, die Sie mit benutzerdefinierten Karten in Google Maps mithilfe von Androids MapView erstellen würden.
Mit anderen Worten: Wenn ich eine Form auf der Karte zeichne, sollte sie beim Verkleinern verkleinert werden und denselben Bereich der Karte abdecken, unabhängig von der Zoomstufe.
Beispiel nach der Android-Referenz:
%Vor%Dies zeigt einen weißen Kreis auf der Karte, aber wenn Sie herauszoomen, hat der Kreis die gleiche Größe. Vielleicht ist die Verwendung von Leinwand nicht der richtige Ansatz?
Ich brauche etwas, wie Google Maps Nachbarschaften oder Städte hervorhebt:
Irgendwelche Ideen? Vielen Dank im Voraus!
Ich hatte das gleiche Problem selbst, hier ist eine vollständige Lösung mit Demo-Standorten:
%Vor%Der Radius für drawCircle ist in Pixel, daher ist es sinnvoll, dass der Kreis immer die gleiche Größe hat. Sie müssen den Radius basierend auf der Zoomstufe skalieren. Im folgenden Beispiel wird eine Geometrie aus der JTS Topology Suite grafisch dargestellt, die skaliert wird.
%Vor%Angepasst von hier: MapSelectionOverlay .java
Das, wonach Sie suchen: Kann" Overlay "Größe zusammen mit der Google-Karte auf Android gezoomt werden?
%Vor%Was Sie brauchen, ist eine Liste von Breiten- / Längenpunkten für jede Form, die Sie auf der Karte zeichnen möchten. In der onDraw-Methode müssen Sie über diese Liste (für jede zu zeichnende Form) iterieren und dies tun:
%Vor%Zeichnen Sie dann die Form auf der Leinwand. IIRC, die unabhängig vom Zoom korrekt funktioniert, da die mapView die Zoomstufe kennt und Ihnen die geeignete Pixelposition für das lat / long-Paar bei dieser Zoomstufe zur Verfügung stellt.
Tags und Links android google-maps android-canvas android-mapview android-maps