javascript - 如何在 Google map 中自动打开特定标记的信息框?

标签 javascript google-maps google-maps-markers

我想通过给定标记的 ID 自动打开标记的信息框。

//Data of markers are from JSON
var markers = new google.maps.Marker({
      id: place.id,
      map: map,
      title:place.title,
      icon : 'assets/frontend/images/marker.png'
    });
infoWindow = new google.maps.InfoWindow();
infoWindow.open(map, markers);

例如,假设我想打开 id = 243 的标记的信息框

var marker_id = 243;

最佳答案

您可以使用google-maps-utility-library-v3作为信息框,修改您的代码如下,如果您有多个标记并且根据标记需要多个信息框,您可以重复信息框的代码,首先尝试单个标记,您就会有想法。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox.js"></script>
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=true&libraries=places"></script>
<script language="javascript">
//Data of markers are from JSON
$(document).ready(function(){   
            /*Your map code needs to be here*/
            /*Marker being created below*/
    var markers = new google.maps.Marker({
          id: place.id,
          map: map,
          title:place.title,
          icon : 'assets/frontend/images/marker.png'
        });

    var boxText = document.createElement("div");
      boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px;";
      boxText.innerHTML = "Your map info here";
      var myOptions_txtbox = {
         content: boxText
        ,disableAutoPan: false
        ,maxWidth: 0
        ,pixelOffset: new google.maps.Size(-140, 0)
        ,zIndex: null
        ,boxStyle: { 
          background: "url('tipbox.gif') no-repeat"
          ,opacity: 0.75
          ,width: "280px"
         }
        ,closeBoxMargin: "10px 2px 2px 2px"
        ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
        ,infoBoxClearance: new google.maps.Size(1, 1)
        ,isHidden: false
        ,pane: "floatPane"
        ,enableEventPropagation: false
            };
            /*Text box being created for marker `markers` */
    var infobox_new = new InfoBox(myOptions_txtbox);
            /*Created text box is assigned for marker `markers`. You can assign any event. For now, I have selected on `click` */
    google.maps.event.addListener(markers, "click", function (e) {
        infobox_new.open(map, this);
    });
});
    </script>

关于javascript - 如何在 Google map 中自动打开特定标记的信息框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207999/

相关文章:

javascript - vue-router 用 subRoute 替换父 View

javascript - 将下拉列表值传递给谷歌地图javascript

android - 在 google map v2 中为标记的旋转设置动画

javascript - 在 js 中从 Google Maps API 编辑针点描述标签

android - 在 Android 中单击后使标记可拖动

javascript - Jquery 图像大小操作

javascript - 将范围发送到自定义函数

javascript - 使用 foreach 循环将 php 传递给 javascript onclick 事件

javascript - 如何使用 JSF 和 Javascript 在下拉选择时动态更新 Google 区域图表数据

javascript - 如何在 Google Maps API 中 move 标记