如何从 GoogleMapsAPI 中的静态数组中删除特定标记

莱蒂西亚·卡梅纳尔

我正在学习 Google Maps API,并且我使用了一些示例代码来构建带有一些标记的地图。我想通过双击按钮删除特定标记,但我无法理解如何构建此删除功能

有谁知道如何做到这一点?

这是我的代码:

<div id="map"></div>
      <script type="text/javascript">
      function initMap() {
            var locations = [
                ['sidewalk problem', -25.438421, -49.268500, 4],
                ['sidewalk problem', -25.437188, -49.269629, 5],
                ['sidewalk problem', -25.432213, -49.257521, 3],
                ['sidewalk problem',-25.433337, -49.275717,2],
                ['sidewalk problem',-25.435546, -49.278635,1],
            ];

            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 15,
                center: new google.maps.LatLng(-25.438421, -49.268500),
            });

            var infowindow = new google.maps.InfoWindow();

            var marker, i;

            for (i = 0; i < locations.length; i++) {  
                locations[i][4] 
                    = marker 
                        = new google.maps.Marker({
                    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                    map: map
            });

            google.maps.event.addListener(marker, 'click', (function(marker, i) {
                return function() {
                    infowindow.setContent(locations[i][0]);
                    infowindow.open(map, marker);
                    position = i;

            }
            })(marker, i));


        }

由于您要绘制多个位置,我相信每个Google Maps Javascript API Marker 最好使用您创建的自定义属性'id'将其推送到'markers array' 中

然后使用循环遍历每个数组值(标记)及其索引。有了这个,您将附加一个Google Maps Javascript API Events 'dblclick'以删除该特定标记。

for (var i = 0; i < locations.length; i++) {  
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
        id : i,
        title : 'Marker ID: '+i
    });  
    markers.push(marker);
    markers[i].addListener('dblclick',function(e){
      markers[this.id].setMap(null);
    });         
}  

我在下面创建了一个示例演示,其中在触发'dblclick'事件后将删除特定标记此应用程序还有一些按钮,可根据其指定的标记索引删除'dblclick'上的特定标记。

      
      var map;
      var markers = [];      
      function initMap() {
            var locations = [
                ['sidewalk problem', -25.438421, -49.268500, 4],
                ['sidewalk problem', -25.437188, -49.269629, 5],
                ['sidewalk problem', -25.432213, -49.257521, 3],
                ['sidewalk problem',-25.433337, -49.275717,2],
                ['sidewalk problem',-25.435546, -49.278635,1],
            ];     
            
            map = new google.maps.Map(document.getElementById('map'), {
              center: new google.maps.LatLng(-25.438421, -49.268500),
              zoom: 15
            });

            for (var i = 0; i < locations.length; i++) {  
                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                    map: map,
                    id : i,
                    title : 'Marker ID: '+i
                });  
                markers.push(marker);
                markers[i].addListener('dblclick',function(e){
                  markers[this.id].setMap(null);
                });         
            }  
            document.getElementById( 'button1' ).addEventListener( 'dblclick', function(){
                 markers[0].setMap(null);
            });
            document.getElementById( 'button2' ).addEventListener( 'dblclick', function(){
                 markers[1].setMap(null);
            }); 
            document.getElementById( 'button3' ).addEventListener( 'dblclick', function(){
                 markers[2].setMap(null);
            }); 
            document.getElementById( 'button4' ).addEventListener( 'dblclick', function(){
                 markers[3].setMap(null);
            }); 
            document.getElementById( 'button5' ).addEventListener( 'dblclick', function(){
                 markers[4].setMap(null);
            });        
      }
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #floating-panel {
        position: absolute;
        top: 10px;
        left: 22%;
        z-index: 5;
        background-color: #FFF;
        padding: 5px;
        border: 1px solid #999;
        text-align: center;
        font-family: 'Roboto','sans-serif';
        line-height: 30px;
        padding-left: 10px;
      }  
    <div id="floating-panel">
      <button id="button1">Delete Marker ID 0</button>
      <button id="button2">Delete Marker ID 1</button>
      <button id="button3">Delete Marker ID 2</button>
      <button id="button4">Delete Marker ID 3</button>
      <button id="button5">Delete Marker ID 4</button>
    </div>
    <div id="map"></div>
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCzjs-bUR6iIl8yGLr60p6-zbdFtRpuXTQ&callback=initMap"
    async defer></script>

希望它可以帮助和快乐编码!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从GMS中删除特定标记?

来自分类Dev

如何从GMS中删除特定标记?

来自分类Dev

如何在android中确定当前的本地化并向GoogleMapsApi添加标记

来自分类Dev

如何在Android中从Google Map删除特定标记

来自分类Dev

如何使用.bat文件从PATH环境变量中删除特定标记?

来自分类Dev

如何基于特定标记在数组中拆分字符串

来自分类Dev

如何在Android Maps活动中显示特定标记?

来自分类Dev

如何使用Powershell从XML文件中删除特定标签?

来自分类Dev

当用户开始在文本框中重新键入另一个地名时如何从谷歌地图中删除特定标记

来自分类Dev

如何让班级中的每个测试都自动标记有特定标签

来自分类Dev

如何在传单MarkerClusterGroup中打开特定标记的弹出窗口?

来自分类Dev

如何修改xml文件中的内容(特定标记内除外)

来自分类Dev

p如何在 XML 中的特定标记之间替换 \n 换行符

来自分类Dev

如何从数组中删除/过滤特定项目?

来自分类Dev

如何从数组中删除特定元素

来自分类Dev

如何从数组中删除特定对象

来自分类Dev

如何删除PHP中的特定数组

来自分类Dev

如何快速从数组中删除特定项目?

来自分类Dev

JavaScript:如何从数组中删除特定元素

来自分类Dev

如何读取XML中的特定标签?

来自分类Dev

Python 从列表中删除特定标记

来自分类Dev

如何使用jsoup从整个html页面中删除特定标签

来自分类Dev

如何使用jsoup从整个html页面中删除特定标签

来自分类Dev

如何从 OSM 中删除标记

来自分类Dev

如何从特定标记中选择数据

来自分类Dev

如何仅为特定标记设置InfoWindowAdapter

来自分类Dev

如何从PHP中的多维数组中删除特定的索引

来自分类Dev

如何从Node.js中的数组中删除特定值

来自分类Dev

如何在PHP中删除多维数组中的特定层?

Related 相关文章

  1. 1

    如何从GMS中删除特定标记?

  2. 2

    如何从GMS中删除特定标记?

  3. 3

    如何在android中确定当前的本地化并向GoogleMapsApi添加标记

  4. 4

    如何在Android中从Google Map删除特定标记

  5. 5

    如何使用.bat文件从PATH环境变量中删除特定标记?

  6. 6

    如何基于特定标记在数组中拆分字符串

  7. 7

    如何在Android Maps活动中显示特定标记?

  8. 8

    如何使用Powershell从XML文件中删除特定标签?

  9. 9

    当用户开始在文本框中重新键入另一个地名时如何从谷歌地图中删除特定标记

  10. 10

    如何让班级中的每个测试都自动标记有特定标签

  11. 11

    如何在传单MarkerClusterGroup中打开特定标记的弹出窗口?

  12. 12

    如何修改xml文件中的内容(特定标记内除外)

  13. 13

    p如何在 XML 中的特定标记之间替换 \n 换行符

  14. 14

    如何从数组中删除/过滤特定项目?

  15. 15

    如何从数组中删除特定元素

  16. 16

    如何从数组中删除特定对象

  17. 17

    如何删除PHP中的特定数组

  18. 18

    如何快速从数组中删除特定项目?

  19. 19

    JavaScript:如何从数组中删除特定元素

  20. 20

    如何读取XML中的特定标签?

  21. 21

    Python 从列表中删除特定标记

  22. 22

    如何使用jsoup从整个html页面中删除特定标签

  23. 23

    如何使用jsoup从整个html页面中删除特定标签

  24. 24

    如何从 OSM 中删除标记

  25. 25

    如何从特定标记中选择数据

  26. 26

    如何仅为特定标记设置InfoWindowAdapter

  27. 27

    如何从PHP中的多维数组中删除特定的索引

  28. 28

    如何从Node.js中的数组中删除特定值

  29. 29

    如何在PHP中删除多维数组中的特定层?

热门标签

归档