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);
                });

        }