【问题标题】:Problem customising KML layer in Google Maps在 Google 地图中自定义 KML 图层时出现问题
【发布时间】:2011-06-06 19:51:18
【问题描述】:

我有一个将新南威尔士州的选举边界覆盖到 Google 地图上的文件。缩小时,每个选区上弹出的标记确实会干扰地图的视觉效果。我找到了如何禁用信息窗口,但不知道如何一起关闭标记。

地图示例在这里:

http://www.codepress.com.au/nsw_lower_house_map.html

关闭标记后,有没有办法让整个选民多边形可点击以在 JS 中使用?

【问题讨论】:

    标签: google-maps google-maps-api-3 kml google-maps-markers


    【解决方案1】:

    在向地图添加图层后,要使多边形可点击,请将事件侦听器绑定到图层

    ctaLayer.setMap(map);
                    google.maps.event.addListener(ctaLayer, 'click', function(kmlEvent) {
                        var text = kmlEvent.featureData.name;
                        alert(text);
                    })
    

    以上将提醒您单击的功能的名称(假设名称是在 KML 中设置的)。请注意:要使多边形“有效地”单击,它们需要设置填充。您的 KML 文件没有填充,因此唯一可点击的区域将是多边形的边界。您需要设置填充以使此功能有用。

    一般而言,KML 要素对象返回以下数据:

    {
      author: {
        email: "nobody@google.com",
        name: "Mr Nobody",
        uri: "http://example.com"
      },
      description: "description",
      id: "id",
      infoWindowHtml: "html",
      name: "name",
      snippet: "snippet"
    }
    

    再次 - 提供这些在 KML 中设置

    要删除标记,您需要修改 KML 并删除所有没有指定多边形的地标及其包含的文件夹 - 只有点数据(呈现为标记)。确保在删除后重新验证您的 XML。

    这是没有标记 http://www.mediafire.com/?f9ewd0c5ymk3ccv 的文件。但是,您需要确保您的多边形已设置填充,否则您将只能单击边框。

    【讨论】:

    • 迈克尔。非常感谢您的全面回答,以及提供已删除标记的文件。我真的很感激你的努力。这是完美的解决方案!
    猜你喜欢
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2012-04-08
    • 2013-08-06
    相关资源
    最近更新 更多