【发布时间】:2020-05-05 01:36:27
【问题描述】:
我有一个带有谷歌地图的页面,其中显示了当您单击图例中的复选框时可以看到的几个 kml 文件。 如何配置地图,以便在加载页面时只看到 layer2,就好像它已经被点击了一样?
源码为:
<script type="text/javascript">
var map;
var layers = [];
function initialize() {
var myLatLng = new google.maps.LatLng(37.18186,-3.58843);
var myOptions = {
zoom: 15,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var legend = document.getElementById('legend');
map.controls[google.maps.ControlPosition.TOP_RIGHT].push
(document.getElementById('legend'));
var noPoi = [
{
featureType: "poi",
stylers: [
{ visibility: "off" }
]
}
];
map.setOptions({styles: noPoi});
layers [0] = new google.maps.KmlLayer('https://granadainfo.com/googlemaps/kml/L33-2018.kml',
{preserveViewport: true, suppressInfoWindows: false});
layers [1] = new google.maps.KmlLayer('https://granadainfo.com/googlemaps/kml/C31-2018.kml',
{preserveViewport: true, suppressInfoWindows: false});
layers [2] = new google.maps.KmlLayer('https://granadainfo.com/googlemaps/kml/C34-2018.kml',
{preserveViewport: true, suppressInfoWindows: false});
layers [3] = new google.maps.KmlLayer('https://granadainfo.com/googlemaps/kml/C30-2018.kml',
{preserveViewport: true, suppressInfoWindows: false});
for (var i = 0; i < layers.length; i++) {
layers[i].setMap(null);
}
}
function toggleLayer(i) {
if (layers[i].getMap() === null) {
layers[i].setMap(map);
}
else {
layers[i].setMap(null);
}
}
</script>
html代码是:
<div id="map_canvas"></div>
<div id="legend">
<p>
<input type="checkbox" id="layer0" onClick="toggleLayer(0)"/> Bus 33<br />
<input type="checkbox" id="layer1" onClick="toggleLayer(1)"/> Bus C31<br />
<input type="checkbox" id="layer2" onClick="toggleLayer(2)"/> Bus C34<br />
<input type="checkbox" id="layer3" onClick="toggleLayer(3)"/> Bus C30<br />
</div>
【问题讨论】:
标签: google-maps-api-3 kml layer