从嵌套数组添加谷歌地图标记
Adding google maps marker from nested array
我使用以下代码成功地将标记添加到地图中:
var film = [
[ "12 Years a Slave",-90.0715323,29.9510658,"2013"],
[ "12 Years a Slave",-90.7197143,30.0110809,"2013"]];
for (i = 0; i < film.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(film[i][2], film[i][1]),
});
我已将数组更改为嵌套格式,因为我希望一次只能打开一部电影的标记,而不是总是一次打开所有标记。
var film = [["12 Years a Slave","2013",[[-90.3517469,29.9429828],[-90.1525373,29.9502543]]],
["The Life of Emile Zola","1937",[[-117.7603323,33.5141933],[-118.3387185,34.1486546]]]];
如何一次打开所有标记,或只打开一部电影?我是否需要在此循环中使用第二种类型的 for 循环?
是的,您需要一秒钟的 for 循环来遍历每部电影的位置(因为现在一部电影有超过 1 个位置)。
根据上面的代码,这应该可以解决问题:
// Go through each film
for (i = 0; i < film.length; i++) {
// Display the film marker.
displayFilm(film[i])
}
/**
* Function to display a single film.
*
* @param filmData array of film data structured as (name, year, list of positions)
*/
function displayFilm(filmData) {
var positions = filmData[2];
// Go through all positions of a film
for (j = 0; j < positions.length; j++) {
// Show marker
marker = new google.maps.Marker({
position: new google.maps.LatLng(positions[j][1], positions[j][0])
});
}
}
要显示单部影片,请使用displayFilm
功能。若要显示所有这些,请使用第一个 for 循环,该循环为每部电影调用函数。
相关文章:
- 如何更改角度谷歌地图上的集群图标
- 谷歌地图API-显示具有不同图标的标记
- 谷歌地图-更改图层图标大小
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 将图标作为参数传递不会;t工作-谷歌地图
- 谷歌地图隐藏手图标
- 从谷歌地图信息窗口中删除关闭图标
- 在javascript中设置谷歌地图标记图标属性
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 我如何才能在某些条件下更改c#中谷歌地图标记的图标
- 使用HTML元素代替gmap3的地图标记图标
- 使用jQuery下拉菜单更改谷歌地图图标
- 使用SVG文件动态修改谷歌地图图标
- 在Javascript中使用相对路径设置谷歌地图图标
- 使谷歌地图图标图像更小
- 自定义谷歌地图图标如果值>=1
- 谷歌地图图标赢得't显示
- 将自定义参数添加到谷歌地图图标中
- 使用精灵自定义谷歌地图图标
- 谷歌地图图标颜色