我的HTML代码是这样的:
<a href="#" class="button" data-latLng="53#separator#-1.33#separator#Address 1">Button 1</a>
<a href="#" class="button" data-latLng="-34.397#separator#150.644#separator#Address 2">Button 2</a>
<div id="map-canvas"></div>
我的Javascript代码是这样的:
$(document).on("click", ".button", function(e) {
e.preventDefault();
var latLng = $(this).attr("data-latLng");
initialize(latLng);
function initialize(latLng) {
console.log(latLng);
latLng = latLng.split("#separator#");
address = latLng[2];
console.log(address);
var map;
var myCenter=new google.maps.LatLng(latLng[0],latLng[1]);
var marker=new google.maps.Marker({
position:myCenter
});
var mapProp = {
center: myCenter,
zoom: 14,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
map=new google.maps.Map(document.getElementById("map-canvas"),mapProp);
marker.setMap(map);
...
};
...
});
演示是这样的:https://jsfiddle.net/oscar11/b0ahcLxw/
我想在标记谷歌地图中显示地址,但我仍然感到困惑。 因此,当单击按钮时,地图会自动在标记上显示地址。
解决我问题的任何解决方案?
非常感谢
答案 0 :(得分:3)
您没有声明infowindow
和contentString
变量。
因此,您需要声明infowindow
变量,如bellow
var infowindow = new google.maps.InfoWindow();
并宣布contentString
var contentString ="Your Content String";
修改强>
// Add this line
var contentString ="Your Content String";
google.maps.event.addListener(marker, 'click', function() {
// Add this line
var infowindow = new google.maps.InfoWindow();
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
JsFiddle Example
自动显示信息窗JsFiddle Demo
答案 1 :(得分:0)
添加此行并代替hellooo设置您的内容。
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow();
infowindow.setContent("hellooo");
infowindow.open(map, marker);
});
否则你可以在这里找到JsFiddle
要从lat获取地址,您可以使用反向地理编码 你可以在这里用代码找到这个例子 Reverse Geocoding