2016-05-15 89 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

相關問題