Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 如何打开/关闭谷歌地图标记信息窗口?_Google Maps_Google Maps Markers_Polymer - Fatal编程技术网

Google maps 如何打开/关闭谷歌地图标记信息窗口?

Google maps 如何打开/关闭谷歌地图标记信息窗口?,google-maps,google-maps-markers,polymer,Google Maps,Google Maps Markers,Polymer,我正在使用由我创建的聚合物元素中的网络组件。我想在我的组件中点击它来做一些后续工作,所以我在我的模板上尝试了以下方法: <div horizontal layout flex style="height: 400px;"> <div class="panel-contents" vertical layout flex> <google-map flex map="{{map1}}" latitude="45.5601451" longitude="-

我正在使用由我创建的聚合物元素中的网络组件。我想在我的组件中点击它来做一些后续工作,所以我在我的模板上尝试了以下方法:

<div horizontal layout flex style="height: 400px;">
  <div class="panel-contents" vertical layout flex>
    <google-map flex  map="{{map1}}" latitude="45.5601451" longitude="-73.7120832">
       <google-map-marker latitude="45.5601451" longitude="-73.7120832"  map="{{map1}}" clickEvents="true" google-map-marker-click="{{markerClicked}}" ></google-map-marker>
    </google-map>
  </div>
</div>
有没有办法做到这一点?提前谢谢

顺便说一句,我最初想做的是关闭所有其他标记信息窗口(如果它们可见),然后显示一个刚刚单击的标记。如果有人想到了更好的解决方法,那就太棒了。

调用函数时缺少一个“on-”,正确的方法是:

on-google-map-marker-click="{{markerClicked}}"
这称为声明性事件映射:

以下是如何使用Maps API打开或关闭标记信息窗口:

markerClicked: function(e, detail, sender) {

          console.log('google_map_marker_click');

          /////////////////////////////////////
          //Seting marker infowindow to be open by default using it's API
          //
          //Select the map and the marker:
          // var map_marker_1 =  this.$.map_marker_1;
          // var google_map = this.$.map_1;
          //Open the info:
          // google_map_marker.info.open(google_map.map, google_map_marker.marker);
          /////////////////////////////////////

          /////////////////////////////////////
          //Closing marker infowindow
          //
          //console.log(sender.tagName);
          //console.log(sender.info);//marker's info object
          //console.log(sender.info.content);

          //or select the marker by id:
          //var map_marker_1 =  this.$.map_marker_1;

          //this is closing marker infowindow
          sender.info.close();
          //or 
          // map_marker_1.info.close();
          /////////////////////////////////////

        },

以下是Goce Ribeski在1.0中的答案更新示例:

  • clickEvents
    现在应该是
    clickEvents
  • 花括号是
也就是说,在谷歌地图标记器上点击事件=“真”,点击标记器“点击”

markerClicked: function(e, detail, sender) {

          console.log('google_map_marker_click');

          /////////////////////////////////////
          //Seting marker infowindow to be open by default using it's API
          //
          //Select the map and the marker:
          // var map_marker_1 =  this.$.map_marker_1;
          // var google_map = this.$.map_1;
          //Open the info:
          // google_map_marker.info.open(google_map.map, google_map_marker.marker);
          /////////////////////////////////////

          /////////////////////////////////////
          //Closing marker infowindow
          //
          //console.log(sender.tagName);
          //console.log(sender.info);//marker's info object
          //console.log(sender.info.content);

          //or select the marker by id:
          //var map_marker_1 =  this.$.map_marker_1;

          //this is closing marker infowindow
          sender.info.close();
          //or 
          // map_marker_1.info.close();
          /////////////////////////////////////

        },