Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中显示多个标记-谷歌地图API_Javascript_Google Maps Api 3 - Fatal编程技术网

Javascript 在数组中显示多个标记-谷歌地图API

Javascript 在数组中显示多个标记-谷歌地图API,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我如何清理这些代码,以便代码更好地处理多个列表?我见过一些从数组中提取标记信息的代码示例,但我似乎无法让它工作 标记需要具有“icon:”、“url:”和“title:”属性。“icon:”这样我就可以更改每个标记的外观,“url:”指向每个标记的专用页面,“title”只是在悬停时添加标记名称 我还需要脚本中的数组,因为我不是从数据库或类似的地方收集它 我对javascript和GoogleMapsAPI非常熟悉,任何帮助都将不胜感激 function createMap(lat, lng,

我如何清理这些代码,以便代码更好地处理多个列表?我见过一些从数组中提取标记信息的代码示例,但我似乎无法让它工作

标记需要具有“icon:”、“url:”和“title:”属性。“icon:”这样我就可以更改每个标记的外观,“url:”指向每个标记的专用页面,“title”只是在悬停时添加标记名称

我还需要脚本中的数组,因为我不是从数据库或类似的地方收集它

我对javascript和GoogleMapsAPI非常熟悉,任何帮助都将不胜感激

function createMap(lat, lng, zoomVal) {
 var mapOptions = { center: new google.maps.LatLng(lat, lng),    
 zoom: zoomVal,   
 scrollwheel: false,  
 mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);


var myLatlnglow = new google.maps.LatLng(23.654332,-79.387867);

var markerlow1 = new google.maps.Marker({
    position: myLatlnglow,
    icon: 'images/map-dot.png',
    map: map,
    url: '#',
    title: 'Name'
});
google.maps.event.addListener(markerlow1, 'click', function() {
window.location.href = markerlow1.url;
});


var myLatlnglow = new google.maps.LatLng(23.688458,-79.300619);

var markerlow = new google.maps.Marker({
    position: myLatlnglow,
    icon: 'images/map-dot.png',
    map: map,
    url: '#',
    title: 'Name'
});
google.maps.event.addListener(markerlow, 'click', function() {
window.location.href = markerlow.url;
});


}

var map;
function initialize() { 
 createMap(23.668493, -29.410812,12);
  if(navigator.geolocation) {  
  success = function(position) {    
 createMap(position.coords.latitude, position.coords.longitude,13);  
};   
error = function() {
 createMap(23.648493, -29.410812,12); 
}    
 navigator.geolocation.getCurrentPosition(success, error);  
} 
}

如果我是你的话,为了可读性,我会制作一个对象的对象。如果必须提高效率,并且希望节省空间和键入,请使用数组替换对象,并按索引(0,1,2…)对数据进行寻址

这是

它还可以帮助以后保存对已创建标记的引用,我使用的是全局对象
标记和相同的ID

var map;
var markers = {};
如果以后需要更改标记属性,可以通过
标记
访问该属性

   markers['bing'].setTitle("new title");

有许多方法可以创建和组织标记。要获得量身定制的答案,请解释您的数据是如何组织的,以及您希望如何操作它们。输入数据是如何格式化的?您打算直接在JavaScript中输入标记数据还是从外部源(如数据库或JSON源)获取标记数据?@MaryAnne感谢您的回答,不确定我是否正确编辑了我的问题,但我想直接在JavaScript中输入标记数据。我知道为了优化,我应该使用某种表或数据库,但我对数据库缺乏经验。
   markers['bing'].setTitle("new title");