Javascript 在信息窗口中显示谷歌地图标记的纬度和经度
如何使用我的(可移动)标记的纬度和经度动态更新我的谷歌地图信息窗口中的URL?我可以在单击的位置显示一个信息窗口,并且我可以成功返回带有Javascript 在信息窗口中显示谷歌地图标记的纬度和经度,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,如何使用我的(可移动)标记的纬度和经度动态更新我的谷歌地图信息窗口中的URL?我可以在单击的位置显示一个信息窗口,并且我可以成功返回带有event.latLng.lat()和event.latLng.lng()的lat和lng,但是如果我尝试使用它们定义变量,然后在信息窗口中使用这些变量,我会得到未捕获的引用错误:lat未定义错误 var newpostmarker; var newpost = new google.maps.InfoWindow({ content: '<a h
event.latLng.lat()
和event.latLng.lng()
的lat和lng,但是如果我尝试使用它们定义变量,然后在信息窗口中使用这些变量,我会得到未捕获的引用错误:lat未定义
错误
var newpostmarker;
var newpost = new google.maps.InfoWindow({
content: '<a href="/posts/add?lat=' + lat + '&lng=' + lng + '">Add New</a>'
});
function placeNewPostMarker(location) {
if (newpostmarker) {
newpostmarker.setPosition(location);
} else {
newpostmarker = new google.maps.Marker({
position: location,
map: map_canvas,
});
}
newpostmarker.setVisible(false);
}
google.maps.event.addListener(map_canvas, 'click', function (event) {
var lat = event.latLng.lat();
var lng = event.latLng.lng();
alert("Lat=" + lat + "; Lng=" + lng);
placeNewPostMarker(event.latLng);
newpost.open(map_canvas, newpostmarker);
});
var新邮戳;
var newpost=new google.maps.InfoWindow({
内容:“”
});
功能地点新邮戳(位置){
if(新邮戳){
新邮戳。设置位置(位置);
}否则{
newpostmarker=new google.maps.Marker({
位置:位置,,
地图:地图画布,
});
}
newpostmarker.setVisible(false);
}
google.maps.event.addListener(映射画布,'click',函数(事件){
var lat=event.latLng.lat();
var lng=event.latLng.lng();
警报(“Lat=“+Lat+”;Lng=“+Lng”);
placeNewPostMarker(event.latLng);
打开(地图画布,新邮戳);
});
初始化信息窗口时,变量未知。在单击-listener中设置信息窗口的内容属性
//infowindow without properties
var newpost = new google.maps.InfoWindow();
google.maps.event.addListener(map_canvas, 'click', function(event) {
var lat = event.latLng.lat();
var lng = event.latLng.lng();
alert("Lat=" + lat + "; Lng=" + lng);
placeNewPostMarker(event.latLng);
newpost.setContent('<a href="/posts/add?lat=' + lat + '&lng=' + lng + '">Add New</a>');
newpost.open(map_canvas,newpostmarker);
});
//不带属性的信息窗口
var newpost=newgoogle.maps.InfoWindow();
google.maps.event.addListener(映射画布,'click',函数(事件){
var lat=event.latLng.lat();
var lng=event.latLng.lng();
警报(“Lat=“+Lat+”;Lng=“+Lng”);
placeNewPostMarker(event.latLng);
newpost.setContent(“”);
打开(地图画布,新邮戳);
});
初始化信息窗口时,变量未知。在单击-listener中设置信息窗口的内容属性
//infowindow without properties
var newpost = new google.maps.InfoWindow();
google.maps.event.addListener(map_canvas, 'click', function(event) {
var lat = event.latLng.lat();
var lng = event.latLng.lng();
alert("Lat=" + lat + "; Lng=" + lng);
placeNewPostMarker(event.latLng);
newpost.setContent('<a href="/posts/add?lat=' + lat + '&lng=' + lng + '">Add New</a>');
newpost.open(map_canvas,newpostmarker);
});
//不带属性的信息窗口
var newpost=newgoogle.maps.InfoWindow();
google.maps.event.addListener(映射画布,'click',函数(事件){
var lat=event.latLng.lat();
var lng=event.latLng.lng();
警报(“Lat=“+Lat+”;Lng=“+Lng”);
placeNewPostMarker(event.latLng);
newpost.setContent(“”);
打开(地图画布,新邮戳);
});
必须使变量lat/lng为全局变量。目前,它们是事件侦听器中的本地变量。您必须将变量设置为lat/lng全局变量。目前,它们是本地的事件侦听器。Molle博士在我能够回答之前回答,这是一个包含大部分代码的工作JSFIDLE:Molle博士在我能够回答之前回答,这是一个包含大部分代码的工作JSFIDLE: