私はGWT google maps V3 APIを使用しており、マップ上にカスタムシェイプを表示する必要があります。 単純な要素については、Polygon、Circle、およびInfoWidnowクラスを使用しましたが、ボタンやカスタムパネルなどの他のウィジェットを表示したいとします。 OverlayViewクラスを使用する方法はありますか?私は単純な解決策を試みました:MapWidgetと私のカスタムウィジェットを含むAbsolutePanelが上に置かれましたが、できる限り私はgwt google mapsクラスを使いたいと思います。私はドキュメントを読んで答えを探しましたが、私はそれを理解することができませんでしたので、コード例が素晴らしいでしょう。 Thanx!GWT GoogleマップV3オーバーレイウィジェット
4
A
答えて
0
私は私がここで必要なものを(ジャバスクリプトv3のAPIを)見つけ: https://developers.google.com/maps/documentation/javascript/overlays#CustomOverlays
メソッド名とクラスは非常に似ているので、GWTクラスを使用すべきかを把握するそう難しいことではない(のようなオーバーレイビュー)。ここで
が地図上にレンダリング(SVG要素やアニメーションを含む)、カスタムウィジェットを持つ例です。
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
地図V3 APIとともに標準のGWT APIを使用してください。彼らは十分に相互接続します。
関連する問題
- 1. GWT + Google Maps API v3
- 2. GoogleマップV3 - マイル
- 3. Googleマップv3ポリラインツールチップ
- 4. GoogleマップV3キーボードアクセシビリティ
- 5. Googleマップv3エラー
- 6. Googleマップを使用した例v3 + gwt〜jsni
- 7. Googleマップjs api v3
- 8. GoogleマップV3 - グーグルが
- 9. GoogleマップV3 Infowindow.openエラー
- 10. ポイント(GoogleマップAPI v3の)
- 11. フィルタリングマーカーGoogleマップのAPI V3
- 12. GoogleマップV3はjqueryの
- 13. GoogleマップAPI v3では、:
- 14. カスタムGoogleマップAPI V3ズームボタン
- 15. KML。 GoogleマップV3。パフォーマンス。ラベル
- 16. Googleマップv3境界ハイライト
- 17. Googleマップapi v3背景色
- 18. Googleマップapi v3の問題
- 19. Googleマップv3の方向アイコン
- 20. GoogleマップのAPI V3 - カスタムタイル
- 21. はサークルポリゴン(GoogleマップのAPI V3)
- 22. GoogleマップApi v3ドラッグイベントon map
- 23. Googleマップ上のクラスタV3 - javascript
- 24. GoogleマップAPI V3メソッドfitBounds()
- 25. ポリライン内のラベルGoogleマップV3
- 26. Markerclusterを追加GoogleマップV3
- 27. GoogleマップV3ポリゴン図面
- 28. Googleマップapi v3 +マーカークラスタラー:センタリングマップ?
- 29. Googleマップv3インフォボックスイベントリスナーを追加
- 30. GoogleマップAPI v3では:
私はそれを試したし、それが(GWTのウィジェットを使用して)OKだったが、私はとして使用したいですgwt google maps api(私はそれがOverlayViewクラス以上のように感じる)からできる多くのクラス。あなたがどこかで例やリンクを提供できれば素晴らしいだろう。 –
人はあなたの日食で2つのjarファイルをリンクし、両方から使用します – GingerHead
私はそれが可能ならば、オーバーレイビューを使ってマップ上にカスタムウィジェットを追加するコード例を意味しました –