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