【问题标题】:How do I add custom marker images to Google Maps using the GWT Maps API?如何使用 GWT 地图 API 将自定义标记图像添加到 Google 地图?
【发布时间】:2010-01-30 11:59:06
【问题描述】:

我正在开发一个使用 Google 地图的 GWT 应用。我正在尝试在我的地图上添加许多字母标记。最初,我有:

Marker marker = new Marker(point);
marker.setImage("http://www.google.com/mapfiles/markerA.png");
map.addOverlay(marker);

但这没有用。对 setImage 的调用导致地图 API 出现异常,并且地图上没有显示任何内容。我搜索并找到了一些关于 MarkerOptions 的半答案,所以我尝试了:

Icon icon = Icon.newInstance(Icon.DEFAULT_ICON);
icon.setImageURL("http://www.google.com/mapfiles/markerA.png");
MarkerOptions ops = MarkerOptions.newInstance(icon);
ops.setIcon(icon);
Marker marker = new Marker(point, ops);
map.addOverlay(marker);

这更好一点,因为我的应用不再抛出异常,而且我看到了标记阴影,但仍然没有自定义标记图像。

对于这个问题,我更喜欢非 JSNI 解决方案。

谢谢!

【问题讨论】:

    标签: gwt google-maps


    【解决方案1】:

    此示例似乎涵盖了您想要实现的目标:IconDemo.java

    // Create our "tiny" marker icon
    Icon icon = Icon.newInstance(
        "http://labs.google.com/ridefinder/images/mm_20_red.png");
    icon.setShadowURL("http://labs.google.com/ridefinder/images/mm_20_shadow.png");
    icon.setIconSize(Size.newInstance(12, 20));
    icon.setShadowSize(Size.newInstance(22, 20));
    icon.setIconAnchor(Point.newInstance(6, 20));
    icon.setInfoWindowAnchor(Point.newInstance(5, 1));
    
    MarkerOptions options = MarkerOptions.newInstance();
    options.setIcon(icon);
    
    // LatLng point; MapWidget map;
    map.addOverlay(new Marker(point, options));
    

    现场演示可以在这里看到:http://gwt.google.com/samples/HelloMaps-1.0.4/HelloMaps.html#Creating%20Icons

    【讨论】:

    • 非常感谢您的超快速响应。那行得通。
    【解决方案2】:

    这是我的新工作解决方案(再次感谢 igro):

    Icon icon = Icon.newInstance("http://www.google.com/mapfiles/markerA.png");
    icon.setIconSize(Size.newInstance(20, 34));
    MarkerOptions ops = MarkerOptions.newInstance(icon);
    Marker marker = new Marker(point, ops);
    map.addOverlay(marker);
    

    【讨论】:

      【解决方案3】:

      这是我在 3.10 版本中的代码

      LatLng centerIcon = LatLng.newInstance(-25.90307367246304, -48.82550597190857);
      MarkerImage markerImage = MarkerImage.newInstance("http://someIcon.png");
      MarkerOptions mOpts = MarkerOptions.newInstance();
      mOpts.setIcon(markerImage);
      mOpts.setPosition(centerIcon);
      
      Marker marker = Marker.newInstance(mOpts);
      marker.setMap(mapWidget);
      

      【讨论】:

      • 您能否在答案中添加一些文字,解释这是否完全/部分解决了 OP 问题?因此,我不清楚。
      猜你喜欢
      • 2011-04-14
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2016-02-05
      • 2014-03-22
      相关资源
      最近更新 更多