Javascript 显示相同位置的多个标记内容
我试图显示多个带有内容的标记。 这是我正在使用的代码-Javascript 显示相同位置的多个标记内容,javascript,google-maps,Javascript,Google Maps,我试图显示多个带有内容的标记。 这是我正在使用的代码- var latitude=[10,20,30]; var longitude=[10,20,30]; var address=["Test1","Test2","Test3"]; function initialize() { var mapObject = { mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map
var latitude=[10,20,30];
var longitude=[10,20,30];
var address=["Test1","Test2","Test3"];
function initialize() {
var mapObject = {
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("googleMap"), mapObject);
loadMarkers();
}
google.maps.event.addDomListener(window, 'load', initialize);
function loadMarkers() {
for (var i = 1; i < latitude.length; i++) {
var markerCenter = new google.maps.LatLng(latitude[i], longitude[i]);
var marker = new google.maps.Marker({
position: markerCenter,
animation: google.maps.Animation.BOUNCE
});
marker.setMap(map);
marker.info = new google.maps.InfoWindow({
content: address[i]
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function () {
marker.info.open(map, marker);
});
}
}
var纬度=[10,20,30];
变量经度=[10,20,30];
变量地址=[“Test1”、“Test2”、“Test3”];
函数初始化(){
变量映射对象={
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“谷歌地图”),mapObject);
loadMarkers();
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数loadMarkers(){
对于(变量i=1;i
问题是它总是显示地址数组的最后一个地址。
有人能帮我吗?您的代码中缺少一些内容。就像一个开始的缩放和地图的中心 但问题是: -制作一个infowindow,并反复使用它。 -我看你有记号笔;在你的代码中。那很好(也许你看过我的其他帖子)。当您拥有这个(标记对象的)数组时,您可以看到单击了哪个标记 我想这就是你想要的
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
var latitude=[10, 20, 30];
var longitude=[10, 20, 30];
var address=["Test1", "Test2", "Test3"];
var markers = []; // store the marker objects here
var infoWindow;
function initialize() {
var mapObject = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 4,
center: new google.maps.LatLng(latitude[1], longitude[1]) // let's take the middle marker as center
};
map = new google.maps.Map(document.getElementById("googleMap"), mapObject);
loadMarkers();
}
google.maps.event.addDomListener(window, 'load', initialize);
function loadMarkers() {
for (var i=0; i<=latitude.length; i++) {
var markerCenter = new google.maps.LatLng(latitude[i], longitude[i]);
var marker = new google.maps.Marker({
position: markerCenter,
// animation: google.maps.Animation.BOUNCE,
map: map // replaces marker.setMap(map);
});
markers.push(marker); // store the marker in the array
// click on the marker
google.maps.event.addListener(marker, 'click', function () {
// first we want to know which marker the client clicked on.
var i=markers.indexOf(this);
// we set the content of infoWindow, then we open it.
infoWindow.setContent(address[i])
infoWindow.open(map, markers[i]);
});
}
// make 1 infowindow. We will use it again and again
infoWindow = new google.maps.InfoWindow({
content: ''
});
}
</script>
<style>
#googleMap {
height: 400px;
}
</style>
<div id="googleMap"></div>
变量纬度=[10,20,30];
变量经度=[10,20,30];
变量地址=[“Test1”、“Test2”、“Test3”];
变量标记=[];//将标记对象存储在此处
var信息窗口;
函数初始化(){
变量映射对象={
mapTypeId:google.maps.mapTypeId.ROADMAP,
缩放:4,
中心:新的google.maps.LatLng(纬度[1],经度[1])//让我们以中间的标记为中心
};
map=new google.maps.map(document.getElementById(“谷歌地图”),mapObject);
loadMarkers();
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数loadMarkers(){
for(var i=0;在for循环中,latitude.length
似乎没有多大意义。应该类似于markers.length
…或一组lat lng位置。您在哪里定义了latitude
?您能解释一下原因吗?@timvermaelen因为从功能角度来看,loadMarkers()
需要在位置集合上循环。然后每个位置都成为地图上的一个标记。在初始化函数@putvandeThanks以获取帮助之前:)