自定义标记和多边形的Google Maps图层?

时间:2018-07-12 12:46:33

标签: google-maps google-maps-api-3

我对googleMaps Javascript API有疑问。是否可以创建一个自定义图层,使其像给定的图层(如交通和自行车图层)一样显示/隐藏?

我想为自己的标记创建一个图层,为多边形创建一个图层。

预先感谢

1 个答案:

答案 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()构造函数,巫婆可以创建您的图层并将其显示在地图上(因为您已经创建了它)。

构造函数带有两个重要参数:

  • 您的KML文件的网址(可能在您的服务器上);
  • 要显示图层的女巫中的地图。

这是一个示例示例:

  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的文档。

如果您有任何疑问,请告诉我