一次只打开一个信息窗口谷歌地图

西亚兰

我试图创建一个带有多个标记的google地图,一次只允许一个信息窗口。标记是IP摄像机的位置,它们是通过红宝石获取的。我已经阅读了类似问题的答案,其中的解决方案是仅创建一个信息窗口并重新使用它。

我试图通过其他一些问题来实施解决方案,但是我无法使其正常工作。

  $(document).ready(function () {
// execute
(function () {
  // map options
  var options = {
    zoom: 2,
    center: new google.maps.LatLng(25, 10), // centered US
    mapTypeControl: false,
    streetViewControl: false
  };

  // init map
  var map = new google.maps.Map(document.getElementById('map-canvas'), options);

  // set multiple marker
  <% @cameras.each do |c| %>
  // init markers
    <% if c.deep_fetch(:location) {} != nil %>

  var marker = new google.maps.Marker({
    position: new google.maps.LatLng(<%= c.deep_fetch(:location, :lat) {} %>, <%= c.deep_fetch(:location, :lng) {} %>),
    map: map,
    title: 'Click Me '
  });

  // process multiple info windows
  (function (marker) {
    // add click event
    google.maps.event.addListener(marker, 'click', function () {
      infowindow = new google.maps.InfoWindow({
        content: "<%= preview(c, true) %>"+
            '<h5><%= c["name"] %></h5>'+
            '<p><a href="/publiccam/<%= c['id'] %>">View Camera</a></p>'

      });

      infowindow.open(map, marker, this);
    });
  })(marker);
  <% end %>
  <% end %>

})();
});

由于我使用<%@ cameras.each为每个摄像机创建一个信息窗口的方式,是否可以仅创建一个信息窗口?%>?

先生先生

应该只创建一个infowindow对象的实例并使用该setContent()方法。

首先创建infowindow对象:

var infowindow = new google.maps.InfoWindow();

然后在创建标记的位置并添加click事件监听器:

google.maps.event.addListener(marker, 'click', function () {

    infowindow.setContent('set the infowindow content here');
    infowindow.open(map, marker);
});

希望这可以帮助。

var map = null;
var infowindow = new google.maps.InfoWindow();

function initialize() {

  var myOptions = {
    zoom: 8,
    center: new google.maps.LatLng(43.907787, -79.359741),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);

  google.maps.event.addListener(map, 'click', function() {
    infowindow.close();
  });

  // Add markers to the map
  // Set up three markers with info windows

  var point;

  point = new google.maps.LatLng(43.65654, -79.90138);
  createMarker(point, 'This is point 1');

  point = new google.maps.LatLng(43.91892, -78.89231);
  createMarker(point, 'This is point 2');

  point = new google.maps.LatLng(43.82589, -79.10040);
  createMarker(point, 'This is point 3');
}

function createMarker(latlng, html) {

  var marker = new google.maps.Marker({
    position: latlng,
    map: map
  });

  google.maps.event.addListener(marker, 'click', function() {

    infowindow.setContent(html);
    infowindow.open(map, marker);
  });
}

initialize();
#map_canvas {
  height: 200px;
}
<div id="map_canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk
"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一次只打开一个信息窗口谷歌地图

来自分类Dev

一次只打开一个信息窗口

来自分类Dev

一次只打开一个滑块

来自分类Dev

设置一个窗口只打开一次,除非需要

来自分类Dev

如何一次只打开一个弹出窗口?

来自分类Dev

Google Maps API-一次仅打开一个信息窗口

来自分类Dev

Wordpress高级自定义字段,Google Map,一次只能打开一个信息窗口

来自分类Dev

javascript / Jquery弹出窗口-一次只能打开一个弹出窗口

来自分类Dev

如何一次只打开一个子菜单

来自分类Dev

如何一次只打开一个子菜单

来自分类Dev

一次仅打开一个滑块

来自分类Dev

一次打开一个元素

来自分类Dev

jQuery一次打开一个部分

来自分类Dev

一次打开一个标题

来自分类Dev

C#WPF-希望一次打开多个窗口,但每个窗口仅打开一个实例

来自分类Dev

使按钮一次只能打开一个窗口(通过关闭顶级窗口来启用按钮)

来自分类Dev

使用javascript打开一个新窗口(谷歌地图),删除以前的事件处理程序

来自分类Dev

在 Android Webview 窗口中只打开一次工作

来自分类Dev

Android 抽屉只打开一次

来自分类Dev

传单地图:打开一个窗口时,如何阻止所有弹出窗口关闭?

来自分类Dev

如果Apple Script没有(或只是信息窗口),则打开一个新的Finder窗口?

来自分类Dev

“ Firefox的一个副本已经打开。一次只能打开一个Firefox副本。”

来自分类Dev

React Bootstrap 在使用地图函数渲染时只打开一个折叠/在每个折叠中显示相关信息

来自分类Dev

使用javascript和前一个窗口中的信息打开一个新窗口

来自分类Dev

如何一次打开一个下拉列表?

来自分类Dev

Bootstrap DateTimePicker:一次打开一个datetimepicker

来自分类Dev

切换菜单,一次使用纯JavaScript打开一个菜单

来自分类Dev

一次只能打开一个部分的逻辑

来自分类Dev

如何一次只允许打开一个扩展垫面板?

Related 相关文章

  1. 1

    一次只打开一个信息窗口谷歌地图

  2. 2

    一次只打开一个信息窗口

  3. 3

    一次只打开一个滑块

  4. 4

    设置一个窗口只打开一次,除非需要

  5. 5

    如何一次只打开一个弹出窗口?

  6. 6

    Google Maps API-一次仅打开一个信息窗口

  7. 7

    Wordpress高级自定义字段,Google Map,一次只能打开一个信息窗口

  8. 8

    javascript / Jquery弹出窗口-一次只能打开一个弹出窗口

  9. 9

    如何一次只打开一个子菜单

  10. 10

    如何一次只打开一个子菜单

  11. 11

    一次仅打开一个滑块

  12. 12

    一次打开一个元素

  13. 13

    jQuery一次打开一个部分

  14. 14

    一次打开一个标题

  15. 15

    C#WPF-希望一次打开多个窗口,但每个窗口仅打开一个实例

  16. 16

    使按钮一次只能打开一个窗口(通过关闭顶级窗口来启用按钮)

  17. 17

    使用javascript打开一个新窗口(谷歌地图),删除以前的事件处理程序

  18. 18

    在 Android Webview 窗口中只打开一次工作

  19. 19

    Android 抽屉只打开一次

  20. 20

    传单地图:打开一个窗口时,如何阻止所有弹出窗口关闭?

  21. 21

    如果Apple Script没有(或只是信息窗口),则打开一个新的Finder窗口?

  22. 22

    “ Firefox的一个副本已经打开。一次只能打开一个Firefox副本。”

  23. 23

    React Bootstrap 在使用地图函数渲染时只打开一个折叠/在每个折叠中显示相关信息

  24. 24

    使用javascript和前一个窗口中的信息打开一个新窗口

  25. 25

    如何一次打开一个下拉列表?

  26. 26

    Bootstrap DateTimePicker:一次打开一个datetimepicker

  27. 27

    切换菜单,一次使用纯JavaScript打开一个菜单

  28. 28

    一次只能打开一个部分的逻辑

  29. 29

    如何一次只允许打开一个扩展垫面板?

热门标签

归档