GoogleMap infowindow按下按钮即可点击

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoogleMap infowindow按下按钮即可点击相关的知识,希望对你有一定的参考价值。

即时通讯使用Googlemap JS API,我有一些从我的数据库中获取的标记和一个infowindow foreach标记,在每个infowindow我有一个按钮希望推送到另一个页面与某个变量,我试图使用ngZone,我不是很熟悉它但我试过x),这是我的代码:

  // GET request to get data from database
  for(var i=0;i<data.length;i++)
  {

   var ouvrier=data[i].firstname+' '+data[i].lastname; //Getting data from db

   var Latlng = new google.maps.LatLng(data[i].lat,data[i].lon);
     var marker = new google.maps.Marker({
      position: Latlng,
      map: this.map,
      labelAnchor: new google.maps.Point(22, 0),
      draggable:false,
      icon: { url : 'assets/imgs/worker.png',scaledSize: new google.maps.Size(70, 70)
    },

    });




    var infowindow = new google.maps.InfoWindow({
      content: "Name: "+ouvrier+" <input type='button' id='clickableItem' value='consulter profile' >"
    }); 

    google.maps.event.addListener(infowindow, 'domready', () => {

      var clickableItem = document.getElementById('clickableItem');
      clickableItem.addEventListener('click', () => {
        this.zone.run( () => { //Im using ngZone
          console.log("wlidoz "+ data[i].idprof);
        this.navCtrl.push(ProfilPage, {
          profilId: data[i].idprof // PROBLEM HERE
      });

        });


      });
    });

  marker.addListener('click', event => {
    infowindow.open(this.map, marker);
    });

}

一切都工作正常,地图正在加载..但是当我点击那个按钮,没有任何反应,我试图在ngZone内部的data[i].idprof控制台.log但未定义,但在监听器之前,console.log工作正常

答案

我修复了它,我刚刚在qazxsw poi之前声明了一个变量:

google.maps.event.addLister

如果有人有更好的解决方案,我会接受它

以上是关于GoogleMap infowindow按下按钮即可点击的主要内容,如果未能解决你的问题,请参考以下文章

GMaps V3 InfoWindow - 禁用关闭“x”按钮

如何更新按钮图像,即`Image(SystemName)` 按下 swiftUI

Flutter GoogleMap Provider Context问题

向 Google Maps API InfoWindow 中的元素添加事件

按下/按下按钮设计 - Flutter

使用 jQuery mobile、google maps API v3 将 infoWindow 添加到地图标记