Javascript 谷歌地图API:未定义的标记标题

Javascript 谷歌地图API:未定义的标记标题,javascript,jquery,api,google-maps,Javascript,Jquery,Api,Google Maps,我正在制作一张地图,用户可以点击取消锁定,生成新的标记。对于每个标记,边栏中应该显示一些信息:纬度、经度和标题。 标题由反向地理编码生成。我创建了一个标记数组,看起来一切正常,但是数组中第一个标记的标题总是“未定义”。 coords没有问题:只是第一个元素的标题! 标题定期显示在信息窗口中。。。但是它在数组的第一个元素中是“未定义的”。 这是我的密码: <script> var map; var markers = []; var rome = new google.maps.Lat

我正在制作一张地图,用户可以点击取消锁定,生成新的标记。对于每个标记,边栏中应该显示一些信息:纬度、经度和标题。 标题由反向地理编码生成。我创建了一个标记数组,看起来一切正常,但是数组中第一个标记的标题总是“未定义”。 coords没有问题:只是第一个元素的标题! 标题定期显示在信息窗口中。。。但是它在数组的第一个元素中是“未定义的”。 这是我的密码:

<script>
var map;
var markers = [];
var rome = new google.maps.LatLng(41.9012, 12.4751);
var infowindow;
var geocoder;

function loadMap(){
var myOptions = {
    zoom: 15,
    center: rome,
    mapTypeId: google.maps.MapTypeId.SATELLITE
};
map = new google.maps.Map( document.getElementById('canvas'), myOptions );
google.maps.event.addListener(map, 'click', function(evt){
    addMarker( evt.latLng );
});
}

function addMarker( location ){
var marker = new google.maps.Marker({
    position: location,
    map: map
});
marker.setMap( map );
openInfoWindow( marker );

markers.push( marker );
updateList( marker );
}

function openInfoWindow( marker ){
geocoder = new google.maps.Geocoder();
geocoder.geocode({'location': marker.getPosition()}, function(results, status){
    if (status == google.maps.GeocoderStatus.OK) {
        address = results[0].formatted_address;
    }else{
        address("Address not found");
    }
    var infowindow = new google.maps.InfoWindow({
        content: address
    });
    infowindow.open(map, marker);
    marker.setTitle(address);
    console.log(address);
}); 
}

function updateList( marker ){
    var lat, lng, title;
    if( markers.length > 0 ){
    $('#sidebar').html('<ul></ul>');

    for( var i = 0; i < markers.length; i++ ){
        lat = markers[i].getPosition().lat();
        lng = markers[i].getPosition().lng();
        title = markers[i].getTitle();
        var html = '<li>Lat: ' + lat + '<br />Lng: ' + lng + '<br />' + title + '</li>';

        $(html).prependTo('#sidebar ul');

    }//end for
    }//end if
}

$(document).ready( loadMap );
</script>

var映射;
var标记=[];
var rome=new google.maps.LatLng(41.9012,12.4751);
var信息窗口;
var地理编码器;
函数loadMap(){
变量myOptions={
缩放:15,
中心:罗马,
mapTypeId:google.maps.mapTypeId.SATELLITE
};
map=new google.maps.map(document.getElementById('canvas'),myOptions);
google.maps.event.addListener(映射,'click',函数(evt){
添加标记(evt.latLng);
});
}
功能添加标记(位置){
var marker=new google.maps.marker({
位置:位置,,
地图:地图
});
marker.setMap(map);
openInfoWindow(标记器);
标记器。推(标记器);
更新列表(标记);
}
函数openInfoWindow(标记器){
geocoder=新的google.maps.geocoder();
geocoder.geocode({'location':marker.getPosition()},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
地址=结果[0]。格式化的\u地址;
}否则{
地址(“未找到地址”);
}
var infowindow=new google.maps.infowindow({
内容:地址
});
信息窗口。打开(地图、标记);
marker.setTitle(地址);
控制台日志(地址);
}); 
}
函数更新列表(标记){
var lat,液化天然气,标题;
如果(markers.length>0){
$('#侧边栏').html('
    '); 对于(var i=0;iLng:'+Lng+'
    '+title+''; $(html).prependTo(“#侧边栏ul”); }//结束 }//如果结束 } $(文档).ready(加载图);

    我哪里做错了?

    我找到了解决办法

    function addMarker( location ){
    geocoder = new google.maps.Geocoder();
    geocoder.geocode({'location': location}, function(results, status){
        if (status == google.maps.GeocoderStatus.OK) {
            address = results[0].formatted_address;
        }else{
            address("Address not found");
        }
        var marker = new google.maps.Marker({
            position: location,
            title: address,
            map: map
        });
        google.maps.event.addListener(marker, 'click', function(){
            openInfoWindow(marker);
        });
        marker.setMap( map );
        openInfoWindow(marker);
    
        markers.push(marker);
    
        updateList( markers );
    
    }); 
    }
    function openInfoWindow( marker ){
    var title = marker.getTitle();
    if(infowindow){
        infowindow.close();
    }
    infowindow = new google.maps.InfoWindow({
            content: title
        });
        infowindow.open(map, marker);
    }
    
    在第一段代码中,我从openInfoWindow()函数中调用了geocoder。在第二段代码中,我从addMarker()函数调用了geocoder。 哦,我在maker声明中设置了标记的标题,在addMarker()函数中。 我不确定原因,但现在效果很好

    (var i=1;i帮助