Ich benutze die GWT Google Maps V3 API und ich muss benutzerdefinierte Formen über die Karte anzeigen. Für einfache Elemente habe ich Polygon-, Circle- und InfoWidnow-Klassen verwendet, aber ich möchte einige andere Widgets wie Schaltflächen oder benutzerdefinierte Panels anzeigen. Gibt es eine Möglichkeit, dies mit der OverlayView-Klasse zu tun? Ich habe eine einfache Lösung ausprobiert: ein AbsolutePanel, das das MapWidget und meine benutzerdefinierten Widgets enthält, aber ich möchte die gwt google maps-Klassen so oft wie möglich verwenden. Ich habe die Dokumentation gelesen und nach einer Antwort gesucht, aber ich konnte es nicht herausfinden, also wäre ein Codebeispiel großartig. Danke!GWT Google Maps V3 Overlay Widgets
4
A
Antwort
0
fand ich, was ich hier gebraucht (JavaScript v3 api): https://developers.google.com/maps/documentation/javascript/overlays#CustomOverlays
die Methodennamen und Klassen sind sehr ähnlich, so dass es nicht so schwierig ist, wie sollten die GWT-Klassen verwendet werden, um herauszufinden, (wie Überlagerungsansicht). Hier
ist ein Beispiel mit benutzerdefinierten Widgets (mit SVG-Elemente und Animationen) auf der Karte wiedergegeben:
private class TargettingOverlay extends OverlayView {
protected Element div ;
protected PanelWrapper panelWrapper;
private TargettingEffect targetEffect;
TargettingOverlay(){
targetEffect = new TargettingEffect();
targetEffect.setLinedDimension(10500);
targetEffect.setLinesOffset(-5000);
}
void positionTarget(LatLng loc, boolean withoutLines){
if (targetEffect == null)
return;
if (loc == null) {
targetEffect.setElementsVisible(false);
return;
}
targetEffect.setElementsVisible(true);
Point p = null;
Point sw = null;
Point ne = null;
LatLng locSW = (LatLng)this.getMap().getBounds().getSouthWest();
LatLng locNE = (LatLng)this.getMap().getBounds().getNorthEast();
//
p = (Point)getProjection().fromLatLngToDivPixel(loc);
sw = (Point)getProjection().fromLatLngToDivPixel(locSW);
ne = (Point)getProjection().fromLatLngToDivPixel(locNE);
targetEffect.setWithoutLinles(withoutLines);
targetEffect.target((int)ne.getY(), (int)p.getY(), (int)sw.getX(), (int)p.getX());
}
@Override
public void draw() {
Point ne = (Point)getProjection().fromLatLngToDivPixel((LatLng)
this.getMap().getBounds().getNorthEast());
Point sw = (Point)getProjection().fromLatLngToDivPixel((LatLng)
this.getMap().getBounds().getSouthWest());
div.getStyle().setTop(ne.getY(), Unit.PX);
div.getStyle().setLeft(sw.getX(), Unit.PX);
}
@Override
public void onAdd() {
div = DOM.createDiv();
getPanes().getOverlayLayer().appendChild(div);
panelWrapper = new PanelWrapper(div);
panelWrapper.attach();
targetEffect.setContainer(panelWrapper);
}
@Override
public void onRemove() {
div.removeFromParent();
panelWrapper.removeFromParent();
div = null;
panelWrapper = null;
}
}
0
Verwenden Sie einfach die Standard-GWT-API zusammen mit Ihrer Karten-V3-API. Sie werden sich gut miteinander verbinden.
Verwandte Themen
- 1. Google Maps v3 OverlayView.getProjection()
- 2. Benutzerdefiniertes Overlay anklickbar machen (Google Maps API v3)
- 3. Google Maps Overlay-Ebene
- 4. Google Maps Overlay anklickbar
- 5. Google Maps v3 Fehler
- 6. Wo finde ich GWT Google Maps V3 API-Codebeispiele?
- 7. Google Maps Overlay Rendering Ausgabe
- 8. Google Maps: Bild-Overlay aktualisieren
- 9. Google Maps v3 - Kontextmenü verfügbar?
- 10. Google Maps JavaScript API v3
- 11. Falsche Standardmarkierungen Google Maps v3
- 12. Google Maps API v3 Markerkoordinaten
- 13. Google Maps API v3 BrowserIsCompatible
- 14. Google Maps API v3: Zeichnungsmanager
- 15. falsche Positionierung v3 Google Maps
- 16. Google Maps API v3 Gemeindegrenze
- 17. Google Maps v3 Sidebar Links
- 18. Geocode in Google Maps v3
- 19. Google Maps v3 Grenze hightlight
- 20. Google Maps API V3 - Benutzerdefinierte Fliesen
- 21. Google Maps Android API v2 Route Overlay
- 22. Google Maps Overlay flackert beim Zoomen
- 23. Google Maps-Overlay-Nachricht bleibt nicht versteckt
- 24. Hinzufügen von Text-Overlay zu Google Maps
- 25. jqtouch/google maps api v3 ausgabe
- 26. Google Maps API V3-Methode fitBounds()
- 27. Google Maps v3 - Anzeigebereich und Zoomstufe einschränken
- 28. Google Maps Api v3 - getBounds ist undefined
- 29. Google Maps API v3: Kartentyp ändern Ereignis
- 30. Problem mit Google Maps API v3
Ich habe versucht, dass und es war in Ordnung (GWT Widgets verwenden), aber ich möchte verwenden, wie viele Klassen wie ich kann von der Google Maps gwt api (ich fühle mich wie es ist mehr zu OverlayView-Klasse). Wenn du ein Beispiel oder einen Link irgendwo liefern könntest, wäre das großartig. –
Man einfach die beiden Gläser in Ihrer Sonnenfinsternis verknüpfen und von beiden verwenden – GingerHead
Ich meinte das nicht, ich meinte ein Codebeispiel zum Hinzufügen von benutzerdefinierten Widgets auf der Karte mit OverlayView, wenn das möglich ist –