2016-04-05 5 views
0

Hat jemand das gleiche Problem mit Google Maps API? Ich benutze das GroundOverlay anstelle von UsgsOverlay, weil das UsgsOverlay nicht pixelgenau mit den ursprünglichen Google Maps ist. Aber das GroundOverlay flackert während des Zoomens. HierGoogle Maps Overlay flackert beim Zoomen

ist ein Fiddle mit Ground: https://jsfiddle.net/sylvanR/a8z0yyeq/17/

Wie Sie sehen können, wenn Sie vergrößern oder verkleinern es wird jedes Mal machen.

Gibt es eine Möglichkeit, das zu beheben? Oder gibt es eine Möglichkeit das UsgsOverlay Pixel Perfect auszuleeren, weil das nicht flimmert?

Vielleicht gibt es eine Möglichkeit, die genau die gleiche Stelle wie Ground zu verwenden, mit 4 Punkten statt dieser beiden:

var sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest()); 
var ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast()); 

die UsgsOverlay NE und SW verwendet, aber es ist Futter nicht perfekt. Kann mir jemand dabei helfen?

Hier ist eine Geige mit UsgsOverlay: https://jsfiddle.net/sylvanR/a8z0yyeq/18/

Kann mir das Flackern oder Platzierung der UsgsOverlay heraus jemand helfen beheben?

Antwort

0

fand ich ein handliches Werkzeug: https://gist.github.com/pacofvf/7324239

ich nicht das Flackern fixiert hat beim Zoomen, weil ich die Usgs Overlay verwendet, und der Link oben ist sehr praktisch, Ihre Karte Pixel perfekt zu platzieren.

0

Nach dieser issue, möglicherweise die Ursache für Flimmern in GroundOverlay ist, dass die Methode addGroundOverlay (GroundOverlayOptions) sofort zurückgibt und nicht auf das Bitmap in den Arbeitsspeicher geladen wird.

Die Lösung hier ist mit der setImage() Methode, die das vorhandene Bild durch ein anderes Bild der gleichen Richtungen ersetzt.

Sie können das Bodenüberlagerungsbild ändern, nachdem es mit der GroundOverlay.setImage (BitmapDescriptor) -Methode zur Karte hinzugefügt wurde.

// Add an overlay, retaining a handle to the GroundOverlay object. 
GroundOverlay imageOverlay = map.addGroundOverlay(newarkMap); 

// Update the GroundOverlay with a new image of the same dimensions. 
imageOverlay = map.setImage(BitmapDescriptorFactory.fromResource(R.drawable.newark_nj_1975)); 

Für die Platzierung von Custom overlay wird das Overlay erstes instanziiert und angezeigt wird, müssen Sie es auf die Karte des über den Browser DOM befestigen. Die API gibt an, dass das Overlay der Karte hinzugefügt wurde, indem die Methode onAdd() des Overlays aufgerufen wird. Um diese Methode zu behandeln, erstellen Sie eine <div>, um Ihr Bild zu halten, fügen Sie ein Element hinzu, hängen Sie es an die <div> an, und hängen Sie dann das Overlay an einen der Bereiche der Karte an. Ein Fenster ist ein Knoten innerhalb der DOM-Struktur. Sie können die Größe des Bildes ändern, das den Grenzen entspricht, die Sie im Konstruktor der Überlagerung angegeben haben. Sie können es mit <div> ändern. Für weitere Informationen können Sie auch this überprüfen.