gpt4 book ai didi

javascript - 谷歌地图 API : undefined marker title

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:06:07 25 4
gpt4 key购买 nike

我正在制作一张 map ,用户可以在其中点击 unpon,生成新的标记。对于每个标记,侧边栏中应显示一些信息:纬度、经度和标题。标题是通过反向地理编码生成的。我创建了一个标记数组,一切似乎都正常,但数组中第一个标记的标题始终是“未定义”。坐标没有问题:只是第一个元素的标题!标题定期显示在信息窗口中......但它在数组的第一个元素中是“未定义的”。这是我的代码:

<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>

我哪里错了?

最佳答案

我找到了解决方案!

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() 函数中调用了地理编码器。在第二个代码块中,我从 addMarker() 函数调用了地理编码器。哦,我在 addMarker() 函数内的制造商声明中设置了标记的标题。我不确定原因,但现在效果很好!

关于javascript - 谷歌地图 API : undefined marker title,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com