谷歌地图Api v3触发器问题,外部链接命中信息窗口

wes*_*ide 8 javascript google-maps google-maps-api-3

所以我的代码看起来像这样,多个标记:

var m1 = new google.maps.Marker(
   new google.maps.LatLng(35.2602340, -93.7939480), 
   {icon:tinyIcon,bouncy:1}
);

google.maps.Event.addListener(m1, "click", function() {
   m1.openInfoWindowHtml(   
      '1<br />test,TX'
   );
});

map.addOverlay(m1);

var m2 = new google.maps.Marker(
   new google.maps.LatLng(35.2810510, -93.8246510), 
   {icon:tinyIcon,bouncy:1}
);

google.maps.Event.addListener(m2, "click", function() {
    m2.openInfoWindowHtml(
        'test<br />test,Texas'
    );
});

map.addOverlay(m2);
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它在外部工作?

href="google.maps.Event.trigger(1, 'click');">Something</>
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 3

要触发其中一个标记上的单击事件,您只需执行以下操作:

<a href="javascript:google.maps.event.trigger(m1, 'click');">Trigger Click on m1</a>
Run Code Online (Sandbox Code Playgroud)

但是,您的代码中似乎还存在一些其他问题,因为您混合了v2 APIv3 API的方法。例如,v3 API 中不存在addOverlay()和方法。openInfoWindowHtml()

因此,您的代码应如下所示才能使用 v3 API:

var map = new google.maps.Map(document.getElementById("map"), {
   zoom: 11,
   center: new google.maps.LatLng(35.26, -93.80),
   mapTypeId: google.maps.MapTypeId.ROADMAP
});

// You only need one InfoWindow object
var infowindow = new google.maps.InfoWindow();

// Create the markers, and keep a reference to them
var m1 = new google.maps.Marker({
  position: new google.maps.LatLng(35.2602340, -93.7939480),
  map: map
});

var m2 = new google.maps.Marker({
  position: new google.maps.LatLng(35.2810510, -93.8246510),
  map: map
});

// Add the events listeners on the markers
google.maps.event.addListener(m1, 'click', function() {
  infowindow.setContent('1<br />test,TX');
  infowindow.open(map, m1);
});

google.maps.event.addListener(m2, 'click', function() {
  infowindow.setContent('test<br />test,Texas');
  infowindow.open(map, m2);
});
Run Code Online (Sandbox Code Playgroud)