Javascript 获取google maps kml中单击形状的id名称
我有一张KML的地图。它加载得非常完美,我只想获得单击形状的id 我知道我可以听,但我不知道如何继续Javascript 获取google maps kml中单击形状的id名称,javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,我有一张KML的地图。它加载得非常完美,我只想获得单击形状的id 我知道我可以听,但我不知道如何继续 google.maps.event.addListener(kmlLayer, 'click', function(event) { } 这是我现在的代码 <html> <head> <script src="https://maps.googleapis.com/maps/api/js"></script> <
google.maps.event.addListener(kmlLayer, 'click', function(event) { }
这是我现在的代码
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<link rel="stylesheet" type="text/css" href=" {{ asset("bundles/Estadisticas/css/mapa.css") }}" />
</head>
<body>
<div id="map_canvas"></div>
</body>
<script type="text/javascript">
var map;
var src = 'http://s000.tinyupload.com/download.php?file_id=42027229668711716761&t=4202722966871171676165346';
/**
* Initializes the map and calls the function that creates polylines.
*/
function initialize() {
map = new google.maps.Map(document.getElementById('map_canvas'), {
center: new google.maps.LatLng(-34.6023448, -58.3810855),
zoom: 2,
mapTypeId: google.maps.MapTypeId.TERRAIN
});
loadKmlLayer(src, map);
}
/**
* Adds a KMLLayer based on the URL passed. Clicking on a marker
* results in the balloon content being loaded into the right-hand div.
* @param {string} src A URL for a KML file.
*/
function loadKmlLayer(src, map) {
var kmlLayer = new google.maps.KmlLayer(src, {
suppressInfoWindows: true,
preserveViewport: false,
map: map
});
google.maps.event.addListener(kmlLayer, 'click', function(kmlEvent) {
var text = kmlEvent.featureData.name;
showInContentWindow(text);
});
function showInContentWindow(text) {
var sidediv = document.getElementById('content-window');
sidediv.innerHTML = text;
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</html>
var映射;
var src='1〕http://s000.tinyupload.com/download.php?file_id=42027229668711716761&t=4202722966871171676165346';
/**
*初始化贴图并调用创建多段线的函数。
*/
函数初始化(){
map=new google.maps.map(document.getElementById('map_canvas'){
中心:新google.maps.LatLng(-34.6023448,-58.3810855),
缩放:2,
mapTypeId:google.maps.mapTypeId.TERRAIN
});
LoadKmlayer(src,地图);
}
/**
*根据传递的URL添加KMLLayer。单击标记
*导致引出序号内容加载到右侧div中。
*@param{string}src KML文件的URL。
*/
函数loadKmlayer(src,map){
var kmlLayer=new google.maps.kmlLayer(src{
suppressInfoWindows:对,
不正确:错误,
地图:地图
});
google.maps.event.addListener(Kmlayer,'click',函数(kmlEvent){
var text=kmlEvent.featureData.name;
showInContentWindow(文本);
});
函数showInContentWindow(文本){
var sidediv=document.getElementById('content-window');
sidediv.innerHTML=文本;
}
}
google.maps.event.addDomListener(窗口“加载”,初始化);
我在发布的代码中发现一个javascript错误:
Uncaught TypeError: Cannot set property 'innerHTML' of null
您没有id=“content window”的div
更新的HTML:
<table>
<tr>
<td>
<div id="map_canvas" style="height: 500px; width: 500px;"></div>
</td>
<td valign="top">
<div id="content-window"></div>
</td>
</tr>
</table>
来自KML的数据存在于事件对象中:
google.maps.event.addListener(kmlLayer, 'click', function(event) {
console.log(event.featureData.id);
});
featureData对象包含KML文件中Placemark标记内的大部分信息。因此,每次单击,您都可以根据需要比较或操作这些信息