当前位置: 首页 > 文档资料 > Google 地图入门 >

标记(Markers)

优质
小牛编辑
124浏览
2023-12-01

我们可以在地图上绘制对象并将它们绑定到所需的纬度和经度。 这些称为叠加。 Google地图提供了各种叠加层,如下所示。

  • Markers
  • Polylines
  • Polygons
  • 圆形和矩形
  • 信息窗口
  • Symbols

要在地图上标记单个位置,Google地图会提供markers 。 这些标记使用标准符号,这些符号可以自定义。 本章介绍如何添加标记,以及如何自定义,动画和删除标记。

添加简单标记

您可以通过实例化标记类并使用latlng指定要标记的位置,在所需位置向地图添加一个简单标记,如下所示。

var marker = new google.maps.Marker({
   position: new google.maps.LatLng(19.373341, 78.662109),
   map: map,
});  

例子 (Example)

以下代码设置了海德拉巴市(印度)的标记。

<!DOCTYPE html>
<html>
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      <script>
         function loadMap() {
            var mapOptions = {
               center:new google.maps.LatLng(19.373341, 78.662109),
               zoom:7
            }
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.088291, 78.442383),
               map: map,
            });
         }
      </script>
   </head>
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
</html>

动画标记

向地图添加标记后,您可以进一步添加动画,例如bouncedrop 。 以下代码段显示了如何将跳动和拖放动画添加到标记。

//To make the marker bounce`
animation:google.maps.Animation.BOUNCE 
//To make the marker drop
animation:google.maps.Animation.Drop 

例子 (Example)

以下代码设置了海德拉巴市的标记,增加了动画效果 -

<!DOCTYPE html>
<html>
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      <script>
         function loadMap() {
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               animation:google.maps.Animation.Drop
            });
         }
      </script>
   </head>
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
</html>

自定义标记

您可以使用自己的图标代替Google地图提供的默认图标。 只需将图标设置为icon:'ICON PATH' 。 你可以通过设置draggable:true来使这个图标可draggable:true

例子 (Example)

以下示例显示如何将标记自定义为所需图标 -

<!DOCTYPE html>
<html>
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      <script>
         function loadMap() {
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               draggable:true,
               icon:'/scripts/img/logo-footer.png'
            });
            marker.setMap(map);
         }
      </script>
   </head>
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
</html>

删除标记

您可以使用marker.setMap()方法将标记设置为null,从而删除现有标记。

例子 (Example)

以下示例显示如何从地图中删除标记 -

<!DOCTYPE html>
<html>
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      <script>
         function loadMap() {
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               animation:google.maps.Animation.Drop
            });
            marker.setMap(null);
         }
      </script>
   </head>
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
</html>