Javascript 谷歌地图v3数组标记
为什么我不能在Google Maps V3中显示多个标记,我得到了正确的坐标,但没有显示在地图上。控制台中也没有错误Javascript 谷歌地图v3数组标记,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,为什么我不能在Google Maps V3中显示多个标记,我得到了正确的坐标,但没有显示在地图上。控制台中也没有错误 地图项目[0]=标题 地图项目[1]=55.153766,11.909180 地图项目[2]=链接 映射项[3]=文本 如果我发出警报,它们都会正确显示。 范例 “标题”,“51.00150763193481,-2.56592849999272”,“链接”,“文本” 函数初始化(){ var map=new google.maps.map(document.getElementB
函数初始化(){
var map=new google.maps.map(document.getElementById('map'){
缩放:7,
中心:新google.maps.LatLng(55.15376611.909180),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
对于(变量x=0;x '+map_items[3]+'');
信息窗口。打开(地图、标记);
});
}
}
}
google.maps.LatLng()接受两个参数,而不是一个,因此:
var latlon = map_items[1].split(',');
var myLatlng = new google.maps.LatLng(parseFloat(latlon[0]), parseFloat(latlon[1]));
尽管事实上,最好使用对象,而不是每个项目都包含不同数据类型的数组,例如:
marker_data[0] = {
"lat": 55.153766,
"lon": 11.909180,
"title": "My Title",
"link": "http://stackoverflow.com"
}
//etc...
然后你可以这样访问它:
var myLatlng = new google.maps.LatLng(marker_data[0].lat, marker_data[0].lon);
假设
map\u项[1]
为字符串
if (temp[x][1]) {
var map_items = temp[x];
var latlng = map_items[1].split(",");
var myLatlng = new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1]));
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: map_items[0]
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div class="google_marker"><a href="' + map_items[2] + '">' + map_items[0] + '</a><br /><p>' + map_items[3] + '</p></div>');
infowindow.open(map, marker);
});
}
if(临时[x][1]){
var map_items=temp[x];
var latlng=映射项[1]。拆分(“,”);
var mylatng=new google.maps.LatLng(parseFloat(LatLng[0]),parseFloat(LatLng[1]);
var marker=new google.maps.marker({
地图:地图,
职位:myLatlng,
标题:地图项目[0]
});
google.maps.event.addListener(标记'click',函数(){
infowindow.setContent('
'+map_items[3]+'');
信息窗口。打开(地图、标记);
});
}
我认为当您单击任何标记时,只有最后一个地图项目可用。创建不同的上下文可能会解决您的问题
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: new google.maps.LatLng(55.153766, 11.909180),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
function AttachEventToMarker(marker, map_items){
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div class="google_marker"><a href="'+map_items[2]+'">'+map_items[0]+'</a><br /><p>'+map_items[3]+'</p></div>');
infowindow.open(map, marker);
});
}
for (var x = 0; x < temp.length; x++) {
if(temp[x][1]){
var map_items = temp[x];
var myLatlng = new google.maps.LatLng(map_items[1]);
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: map_items[0]
});
AttachEventToMarker(marker, map_items);
}
}
}
函数初始化(){
var map=new google.maps.map(document.getElementById('map'){
缩放:7,
中心:新google.maps.LatLng(55.15376611.909180),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
功能附件VentToMarker(标记、地图项目){
google.maps.event.addListener(标记'click',函数(){
infowindow.setContent('
'+map_items[3]+'');
信息窗口。打开(地图、标记);
});
}
对于(变量x=0;x
变量temp是在哪里创建的,您确定它包含数据吗?temp变量大约有200行长,但它是正确的,只是标记显示不起作用它起作用了,为什么?该变量中有两个坐标有两个坐标,但变量是字符串。它与“我的标题”相同,它有两个单词,但除非拆分它,否则变量仅为一个字符串。
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: new google.maps.LatLng(55.153766, 11.909180),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
function AttachEventToMarker(marker, map_items){
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div class="google_marker"><a href="'+map_items[2]+'">'+map_items[0]+'</a><br /><p>'+map_items[3]+'</p></div>');
infowindow.open(map, marker);
});
}
for (var x = 0; x < temp.length; x++) {
if(temp[x][1]){
var map_items = temp[x];
var myLatlng = new google.maps.LatLng(map_items[1]);
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: map_items[0]
});
AttachEventToMarker(marker, map_items);
}
}
}