我对googleMaps Javascript API有疑问。是否可以创建一个自定义图层,使其像给定的图层(如交通和自行车图层)一样显示/隐藏?
我想为自己的标记创建一个图层,为多边形创建一个图层。
预先感谢
答案 0 :(得分:1)
我了解您要在网站上创建自定义图层的问题。您还需要随时更改图层信息。
Google maps api提供了用于“显示地理信息”的KML和GeoRSS数据格式。
我们将介绍KML格式。
您可以创建一个KML文件,以便为您的图层提供信息。您可以找到KML文件here的示例。当然,您可以随时在服务器上编辑此文件。
这是在php上编辑文件的示例:
$file = file_get_contents($_SERVER['DOCUMENT_ROOT']."/yourKLMFile.txt");
$file= str_replace("OldValue", "NewValue", $file);
echo ($file);
您还可以为用户提供个人数据,或仅更新您的图层。
接下来,JS。
Google Maps api提供了KmlLayer()
构造函数,巫婆可以创建您的图层并将其显示在地图上(因为您已经创建了它)。
构造函数带有两个重要参数:
这是一个示例示例:
var ctaLayer = new google.maps.KmlLayer({
url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml',
map: map
});
这是示例代码Spinnet,可以恢复所有这些操作:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: {lat: 41.876, lng: -87.624}
});
var ctaLayer = new google.maps.KmlLayer({
url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml',
map: map
});
}
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
<div id="map"></div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?callback=initMap">
</script>
请记住,您始终可以在php中更新数据文件。
您可以在Google Maps网站上查阅有关KML图层以及一般google maps' layers的文档。
如果您有任何疑问,请告诉我