【问题标题】:set multiple google map coordinates Objects inside an array在数组中设置多个谷歌地图坐标对象
【发布时间】:2016-09-01 16:36:32
【问题描述】:

我想将点的纬度和经度存储在一个对象中,并将我的所有对象存储在一个数组中。但是我的数组不止一次地获取每个对象。

这是我的代码:

function initMap1() {
  var mapDiv = document.getElementById('frame1');
  map = new google.maps.Map(mapDiv,{
    center: {lat: 3.875083, lng: 11.516110},
    zoom: 14,
    disableDoubleClickZoom: true
  }); 
  var Data = [];
  google.maps.event.addListener(map,'dblclick',function(e){
    var Object = {};
    lat.val(e.latLng.lat());
    lng.val(e.latLng.lng());
    $('#btn_modal').click(function(){
      Object['lat'] = e.latLng.lat();
      Object['lng'] = e.latLng.lng();
      Object['icone'] = nat.val();
      var marker = new google.maps.Marker({
        position: {lat:e.latLng.lat(),lng:e.latLng.lng()},
        map: map,
        icon:'img/icones/'+(nat.val())+'.png',
        title: nat.val()
      });
    });
    Data.push(Object);
  });
}

【问题讨论】:

  • 当您双击谷歌地图时,您正在将点击事件附加到按钮。这看起来很奇怪,你想在这里做什么?
  • 当我双击地图时会出现一个引导模式。并且该模式框架包含一个按钮,使我能够将我的坐标存储在一个对象中,并将对象存储在我的数组中。

标签: javascript arrays function object


【解决方案1】:

如果您想在单击模态按钮时将对象推送到数据数组,那么您应该将推送调用移动到您正在创建的事件中。否则,每次双击地图时,您的对象都会被推送到数组中。

代替

$('#btn_modal').click(function(){
            Object['lat'] = e.latLng.lat();
            Object['lng'] = e.latLng.lng();
            Object['icone'] = nat.val();
            var marker = new google.maps.Marker({
                position: {lat:e.latLng.lat(),lng:e.latLng.lng()},
                map: map,
                icon:'img/icones/'+(nat.val())+'.png',
                title: nat.val()
            });
        });
        Data.push(Object);

做起来

$('#btn_modal').click(function(){
            Object['lat'] = e.latLng.lat();
            Object['lng'] = e.latLng.lng();
            Object['icone'] = nat.val();
            var marker = new google.maps.Marker({
                position: {lat:e.latLng.lat(),lng:e.latLng.lng()},
                map: map,
                icon:'img/icones/'+(nat.val())+'.png',
                title: nat.val()
            });
     ----> Data.push(Object);
        });

【讨论】:

  • 我做到了,但结果是一样的。我的数组不止一次地得到了我的第一个坐标点。
  • 在数组中设置了对象的内容后,我也重置了我的对象,但没有任何改变......我的代码仍然无法正常工作。
  • 您是否使用浏览器中的开发人员工具在 JavaScript 中设置断点,或尝试过任何其他客户端调试技术?
  • 是的。我尝试调试它,但它又出错了。
猜你喜欢
  • 1970-01-01
  • 2012-08-23
  • 2019-10-11
  • 2016-03-16
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
  • 2015-02-05
  • 2012-10-18
相关资源
最近更新 更多