javascript - HTML5 地理位置信息窗口不起作用
问题描述
我需要用这段代码创建信息窗口,我缺乏应用程序逻辑并且对编程来说是全新的我使用这个开源代码
此代码将用户连同他们的标记一起添加到地图中
function loadMarkers(data) {
for(key in data) {
var user = data[key];
xmartlabschat.addUser(user);
markers[key] = getMarker(user.lat, user.lng, user.name);
}
}
我尝试使用 info-window 的基本代码
var infoWindow = new google.maps.InfoWindow(user.name);
markers[key].addListener('click', function(){
infoWindowMe.open(map,markers[key);
但是,此代码将所有标记转换为与用户相同的名称,而不是不同的名称,因为我单击其他用户标记
请帮忙 看一下我拍的截图
解决方案
你可以试试这个。希望这可以帮助。
var locations = [
['Location name', LAT, LON],
['...', ..., ...],
//...
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: new google.maps.LatLng(LAT, LON),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
var lat = locations[i][1];
var lng = locations[i][2];
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
}); // generates all the markers
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
zIndex: 1000;
infowindow.setContent(locations[i][0]); // replace locations[i][0] with which data you want to show
infowindow.open(map, marker);
}
})(marker, i)); // generates corresponding info-window
}
推荐阅读
- c++ - 使用工具时如何查找未发生的段错误
- merge - SSIS将左侧2行的连接数据合并为右侧1行
- html - 如何在不使用绝对位置的情况下在 div 的底部和中心获取 img
- python - 如何删除不同元组中的相同元素
- c# - 最大值不适用于 Razor 中的 EditorFor 字段
- javascript - 无法在 Firestore 子集合中加载文档
- android - 如何在 Android 样式中更改字体类型、字体大小和粗体文本 (PopUpMenu)
- javascript - 带有 if 语句的 chart.js 标签
- angular - 如何在 Angular 表单中禁用按钮
- javascript - 默认情况下,必须在页面加载时选择 html 单选按钮