0

我想限制 KML 文件中所有图标的可点击区域,但我对如何实现这一点有点困惑。这些图标都是相同的典型样式指针,我想将可点击区域限制在指针顶部所包围的圆圈内。图标是 19x32,所以我我想要一个圆,中心距顶部 9px,距左侧 9px,半径为 9px。如果 geoxml3 会这样做,我认为这将在解析器对象中指定,尽管它可能会在 KML 文件的 IconStyle 中。如果事实上那将在解析器对象中,我还没有找到正确的语法。显然不是:

var blues = new geoXML3.parser({map: map, singleInfoWindow: true, zoom: false, markerOptions: {shape: {type:circle, coords: [9px,9px,9px]}}});
blues.parse('allbluesdance.kml');

所以请把我理顺。

谢谢,德鲁

4

1 回答 1

0

GeoXml3 的 markerOptions 选项正是 Google Maps Javascript API v3 markerOptions对象。

您的图标是49x32 像素圆的中心是从左上角定义的,所以您可能需要 24,9 作为中心,半径为 9:

        var blues = new geoXML3.parser({
              map: map,
              singleInfoWindow: true,
              suppressDirections: true,
              markerOptions: {
                shape: {
                  type: 'circle', 
                  coords: [24,9,9]
                }
              },
              zoom: false
            });

有关复杂图标的文档中

// Shapes define the clickable region of the icon.
// The type defines an HTML <area> element 'poly' which
// traces out a polygon as a series of X,Y points. The final
// coordinate closes the poly by connecting to the first
// coordinate.
var shape = {
  coords: [1, 1, 1, 20, 18, 20, 18 , 1],
  type: 'poly'
};

HTML 区域的圆形形状看起来就像您删除“px”(文档说是数字数组)后应该工作的样子,只是它位于图标的左侧。

工作示例

于 2014-08-12T06:25:31.890 回答