2016-05-15 82 views
-1

我在包含多个多边形的Google地图上有一个KML图层。点击每个多边形后,将使用默认的Google地图信息窗口显示属性表中的数据。代码如下:如何控制KmlLayer上Google地图信息窗口的内容?

google.maps.event.addListener(kmlLayer, 'click', function(event) { 
var content = event.featureData.infoWindowHtml; 
var testimonial = document.getElementById('capture'); 
testimonial.innerHTML = content; 

是否可以仅显示一部分属性数据而不显示信息窗口中的每一列?目前它正在显示多边形背后的所有数据。这里是信息窗口的图像一样,所以比如我想只显示“名称”“镇”和“KM2”在信息窗口中的数据:

enter image description here

+0

是的,这是可能的。请提供证明此问题的[最小,完整,测试和可读示例](http://stackoverflow.com/help/mcve)。 – geocodezip

回答

2

一种选择是使用suppressInfoWindows:true kmlOption,然后创建您自己的infowindow,其中包含您想要的任何内容。

KmlLayer click event包含来自KML的KmlFeatureData,您可以通过解析来定制显示的信息。

用于JSON格式的单个KML特征KmlFeatureData对象规范

数据,返回被点击KML功能时。此对象中包含的数据反映与声明它的KML或GeoRSS标记中的特征相关联的数据。

属性

  • 作者类型:KmlAuthor

特征的<atom:author>,从图层标记中提取(如果指定)。

  • 描述类型:字符串

特征的<description>,从层标记中提取。

  • ID类型:字符串

特征的<id>,从图层标记中提取。如果未指定,则将为此功能生成唯一的ID。

  • infoWindowHtml类型:字符串

特征的气球样式文本,如果设置。

  • 名称类型:字符串

特征的<name>,从图层标记中提取。

  • 片断类型:字符串

特征的<Snippet>,从层标记中提取。

代码片段:

function initialize() { 
 
    var map = new google.maps.Map(
 
    document.getElementById("map_canvas"), { 
 
     center: new google.maps.LatLng(37.4419, -122.1419), 
 
     zoom: 13, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var kmllayer = new google.maps.KmlLayer({ 
 
    map: map, 
 
    url: "http://www.geocodezip.com/geoxml3_test/us_states.xml", 
 
    suppressInfoWindows: true 
 
    }); 
 
    var infowindow = new google.maps.InfoWindow(); 
 
    google.maps.event.addListener(kmllayer, 'click', function(evt) { 
 
    infowindow.setContent(evt.featureData.name); 
 
    infowindow.setPosition(evt.latLng); 
 
    infowindow.open(map); 
 
    }) 
 

 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

+0

好我会尝试创建我自己的信息窗口。这也会让我有能力设计信息窗口吗?我发现难以设置默认弹出窗口 –

+0

是的,如果您使用允许自定义或您自己的自定义代码的第三方库。 – geocodezip

相关问题