gwt-maps - 动态改变标记偏移量

时间:2011-01-09 09:19:17

标签: google-maps gwt google-maps-markers

在我的网站http://www.foodtrucksmap.com/,标记尺寸取决于该城市的开放式食品卡车的数量。问题是当洛杉矶的标记太大时,看起来标记的点在海洋或墨西哥。这可以通过简单地将标记的中心沿y轴偏移标记高度的一半来解决。我无法弄清楚如何编写这段代码!!

另一个(坏)选项是将图像的高度加倍并使按钮保持半透明。这种方法的问题是图像的透明部分是可点击的!

请帮我找一个解决方案,谢谢!

2 个答案:

答案 0 :(得分:0)

creating-custom-google-maps-overlays-with-gwt-widgets

custom Overlay class

由于您使用的是标记,因此链接可能无济于事。在我的应用程序中,我停止使用标记并开始使用客户覆盖。

答案 1 :(得分:0)

使用javascript API查看this示例。

基本上,您可以定义自定义图标的锚点坐标,以充当标记的中心。而不是使用中间,使用卡车图标的底部尖端/边缘。查看“iconAnchor”属性:

// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.
var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34); // THIS IS WHAT YOU CARE ABOUT
baseIcon.infoWindowAnchor = new GPoint(9, 2);

在您的情况下,您可以将锚值设置为:

// Assuming the tip is exactly in the middle at the bottom of the icon
.iconAnchor = new GPoint(iconWidth/2, 0);

我没有使用你提到的gwt-maps - 但是因为它们总是只包装javascript API你应该能够找到要设置的等效属性。你能链接到你正在使用的gwt-maps实现吗?