Javascript 为动态内容中的多个标记添加信息
我有这样一个数组Javascript 为动态内容中的多个标记添加信息,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有这样一个数组deviceId=[005305230001jizz,085835360001NBGJZZ,085835360002NBGJZZ] 信息窗口应显示设备ID,并根据单击的标记显示。几天前我才开始研究JavaScript,我不明白函数是如何工作的,现在没有时间学习,因为我必须完成这项工作。我在这方面看到了一些实现,但我认为他们使用不同的函数添加了多个标记。我无法理解它,所以我使用了for循环 latArray和lngArray有如下内容[12.1456,12.5256,11.566]
deviceId=[005305230001jizz,085835360001NBGJZZ,085835360002NBGJZZ]
信息窗口应显示设备ID,并根据单击的标记显示。几天前我才开始研究JavaScript,我不明白函数是如何工作的,现在没有时间学习,因为我必须完成这项工作。我在这方面看到了一些实现,但我认为他们使用不同的函数添加了多个标记。我无法理解它,所以我使用了for
循环
latArray
和lngArray
有如下内容[12.1456,12.5256,11.566]
和[72.145,72.4557,75.23535]
我不知道如何为相应的标记添加信息窗口
这是地图的代码:
function initMap() {
var bounds = new google.maps.LatLngBounds();
var mapDiv = document.getElementById('map');
var map = new google.maps.Map(mapDiv);
map.setCenter(new google.maps.LatLng(latArray[0],lngArray[0]));
map.setZoom(18);
for(i=0;i<latArray.length;i++)
{
marker = new google.maps.Marker({
position: new google.maps.LatLng(latArray[i],lngArray[i]),
map: map,
title:"This is the place.",
// icon:"phone4.png"
});
//bounds.extend(marker.getPosition());
console.log(latArray);
console.log(lngArray);
}
//map.fitBounds(bounds);
var infoWindow = new google.maps.InfoWindow({
content: contentString
});
marker.addListener('click', function() {
infoWindow.open(map, marker);
});
}
看看我的map函数。它从PHP获取json对象和一些数据,并将其“转换”为数组,然后将内容添加到多个标记中(它不是实时动态的,您必须重新加载页面)。此外,它还有一个搜索框(打开特定信息窗口)。如果你不明白,别急着问:)
//检查文档是否已完全加载,查看ajax调用结果的容器
$(文档).ready(函数(){
var tablica=[];
//ajax行动要求准备一组名称、描述、坐标和段塞,以便在地图上呈现无瓦片标记
$.ajax({
url:'map/json_prepare',
数据类型:“json”,
成功:功能(响应){
var obj=JSON&&JSON.parse(响应)| |$.parseJSON(响应);
对象forEach(函数(项、索引、数组)
{
tablica.push(项目);
});
//调用渲染贴图本身的函数
var映射;
map=new google.maps.map(document.getElementById('map'){
中心:{lat:50.06561980,lng:19.946850},
缩放:12
});
////////////////////////////////////////////////////////////////////////////////////////////////////
//使用适当的信息窗口(说明和链接)从数据库循环添加标记
//添加标记引用
var标记=[];
$.each(表格、函数(键、值){
//标记
var mylatng={lat:value[1],lng:value[2]};
var marker=new google.maps.marker({
职位:myLatLng,
地图:地图,
标题:值[0],
可点击:正确,
动画:google.maps.animation.DROP,
地址:value[5]
});
//信息窗口
marker.info=new google.maps.InfoWindow({
内容:''+value[0]+'+'
'+'
'+value[3]+'
'+value[5]+'
'+'
'+'
'+
“
”
});
//eventlistener-单击后信息窗口打开
google.maps.event.addListener(标记'click',函数(){
标记信息打开(地图,标记);
});
//事件侦听器-设置dblclick缩放特定事件后
google.maps.event.addListener(标记'dblclick',function()){
map.setZoom(18);
map.setCenter(marker.getPosition());
});
标记器。推(标记器);
});
//从数据库添加标记的循环结束。
///////////////////////////////////////////////////////////////////////////////////////////////////////////
///附加事件侦听器-右键单击以返回默认缩放
google.maps.event.addListener(映射,'rightclick',函数(){
map.setZoom(12);
map.setCenter(map.getPosition());
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//将地图居中,因为所有标记都可见//
//创建空的LatLngBounds对象
var bounds=new google.maps.LatLngBounds();
var infowindow=new google.maps.infowindow();
对于(i=0;icontentString = '<div id = "content>'
+'<p style = "color:#000000">DeviceID<p>' +
'<p>'+ deviceId[i] + '<br></p>' //deviceId is the array with content
+ '</div>'
var markerArray=[];
for(i=0;i<latArray.length;i++)
{
markerArray.push("new google.maps.LatLng("+ latArray[i]+","+lngArray[i]+")");
console.log(markerArray[i]);
}
console.log(markerArray[0]);
for(i=0;i<latArray.length;i++)
{
marker = new google.maps.Marker({
position: markerArray[i],
map: map,
title:"This is the place.",
// icon:"phone4.png"
});
var infoWindow = new google.maps.InfoWindow({
content: contentString[i]
});
marker.addListener('click', function(marker,contentString) {
infoWindow.open(map, marker);
});
}