javascript - 在谷歌地图中显示点击标记的弹出信息

标签 javascript google-maps vue.js

显示弹出信息包括:位置、名称、国家/地区、纬度和经度,在单个弹出窗口中通过单击 Google map 中的每个标记显示。我需要显示用户点击的那个特定标记的所有信息,例如:“位置:邦迪海滩,国家:澳大利亚,纬度:-33.890,经度:151.274”。

<template>
  <div id="map" class="map"></div>
</template>

<script>
mounted() {
  var locations = [
    ['Bondi Beach','Australia',-33.890542, 151.274856, 4],
    ['Coogee Beach','Australia', -33.923036, 151.259052, 5],
    ['Cronulla Beach','Australia', -34.028249, 151.157507, 3] 
  ];

  var count, marker;

  // Init map
  let mapOptions = {
    zoom: 13,
    center: new google.maps.LatLng(locations[0][1], locations[0][2]),
    scrollwheel: true
  };

  var map = new google.maps.Map(document.getElementById("map"), mapOptions);

  // Create info window
  var infowindow = new google.maps.InfoWindow({
      maxWidth: 350,
      pixelOffset: new google.maps.Size(-10,-25)
  });

  var infoData = [];
  // Add markers
  for (count = 0; count < locations.length; count++) {
    var loan = locations[count][0]
      let myLatlng = new google.maps.LatLng(locations[count][1], locations[count][2]);

      marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: locations[count][0]
      });

  marker.setMap(map);

  // Bind marker click event to open info-window
  google.maps.event.addListener(marker, 'click', function() {

    infowindow.setContent( " " );
    infowindow.open(map);
    infowindow.setPosition(myLatlng);
    });

  }
}
</script>

最佳答案

您可以将信息窗口内容设置为 HTML。 JS fiddle from Google . 谷歌官方documentation .

代码示例:

var locations = [
    ['Bondi Beach', -33.890542, 151.274856, 4],
    ['Coogee Beach', -33.923036, 151.259052, 5],
    ['Cronulla Beach', -34.028249, 151.157507, 3],
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
    ['Maroubra BeachManly Beach Manly Beach Manly Beach', -33.950198, 151.259302, 1]
];

var count, marker;

// Init map
var mapOptions = {
    zoom: 13,
    center: new google.maps.LatLng(locations[0][1], locations[0][2]),
    scrollwheel: true,
};

var map = new google.maps.Map(document.getElementById("map"), mapOptions);

// Create info window
var infowindow = new google.maps.InfoWindow({
    maxWidth: 350,
    pixelOffset: new google.maps.Size(-10,-25)
});

var infoFn = function (count) {
    return function (e) {
        var content = '<div>' +
            '<span>Location: ' + locations[count][0] + '</span>' +
            '<span>, Lat: ' + locations[count][1] + '</span>' +
            '<span>, Long: ' + locations[count][2] + '</span>' +
            '</div>';

        infowindow.setContent(content);
        infowindow.open(map);
        infowindow.setPosition(new google.maps.LatLng(locations[count][1], locations[count][2]));
    }
};

// Add markers
for (count = 0; count < locations.length; count++) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[count][1], locations[count][2]),
        map: map,
        title: locations[count][0]
    });
    marker.setMap(map);

    let fn = infoFn(count);
    google.maps.event.addListener(marker, 'click', fn);
}

工作 demo .

关于javascript - 在谷歌地图中显示点击标记的弹出信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57335402/

相关文章:

javascript - 使用 Javascript Safari 加载 CSS

javascript - 根据下拉列表更改输入字段的标签

javascript - Google Maps JS 功能变更

安卓|谷歌地图 V2 |比例尺/尺子

android - 如何通过改造发送 "clean"url

javascript - 在 vue.js 中使用 props 在每个页面上设置不同的文本

javascript - 读取位置指示器 - Chrome 问题

javascript - 如何调用外部url?

html - 单击按钮时打开 v-select 选项

javascript - 我不能在 Nuxt.js/vue.js 中使用第三方组件