gpt4 book ai didi

javascript - 谷歌地图 API : pan to markers from a list.

转载 作者:数据小太阳 更新时间:2023-10-29 05:58:32 26 4
gpt4 key购买 nike

你好 :) 请耐心等待,我不是编码员,但我正在尝试边做边学。这是我目前正在处理的页面; http://www.websu.it/devnw/dev/contact.html .我目前使用 Google Maps API 设置了一张 map ,使用了以下 javascript:

    function initialize() {

var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(48.160, -6.832),
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
setMarkers(map, cities);
}


var cities = [
['Groningen', 53.216723950863425, 6.560211181640625, 4],
['San Francisco', 34.01131647557699, -118.25599389648437, 5],
['New York City', 40.7143528, -74.0059731, 3],
['Amsterdam', 52.3702157, 4.8951679, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];

function setMarkers(map, locations) {

for (var i = 0; i < locations.length; i++) {
var city = locations[i];
var myLatLng = new google.maps.LatLng(city[1], city[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: city[0],
zIndex: city[3]
});
}
}

This continues below...

然后我创建了一个列表,其中每个 li 元素在单击时都会导致 map 平移到这些标记之一。

我添加了以下代码并且运行良好。但这意味着我必须在上面的“城市”代码数组中以及下面的代码中为 var laLatLng 添加每个城市的经度/纬度。如何在下面的平移脚本中更轻松地获取纬度和经度?

      $(document).ready(function() {
initialize();

$("#contacts").on("click", "#sanfransisco", function() {
var laLatLng = new google.maps.LatLng(34.01131647557699, -118.25599389648437);
map.panTo(laLatLng);
map.setZoom(5);
});
$("#contacts").on("click", "#groningen", function() {
var laLatLng = new google.maps.LatLng(53.216723950863425, 6.560211181640625);
map.panTo(laLatLng);
map.setZoom(6);
});
$("#contacts").on("click", "#nyc", function() {
var laLatLng = new google.maps.LatLng(40.7143528, -74.0059731);
map.panTo(laLatLng);
map.setZoom(6);
});
$("#contacts").on("click", "#losangeles", function() {
var laLatLng = new google.maps.LatLng(52.3702157, 4.8951679);
map.panTo(laLatLng);
map.setZoom(6);
});
});

我希望有人能向我解释如何将变量从城市获取到可点击列表 javascript 中。非常感谢,非常感谢您的回复!

最佳答案

如果将 cities 数组转换为如下对象:

var cities = {
'Groningen': [ 53.216723950863425, 6.560211181640625, 4],
'San Francisco': [ 34.01131647557699, -118.25599389648437, 5],
'New York City': [ 40.7143528, -74.0059731, 3]

};

并为每个链接添加一个具有匹配城市名称的 data- 属性以及一个公共(public)类名称:

/* not sure what html looks like , using pseudo "tagName"*/
<tagName class="map_link" data-city="Groningen">Groningen</tagName>

您可以为整个类创建一个处理程序:

$("#contacts").on("click", ".map_link", function() {
/* "this" within handler is the actual element clciked*/

/* find correct array from "cities" object */
var data=cities[ $(this).data('city') ]; /* returns array[ 53.21, 6.56, 4]*/
var laLatLng = new google.maps.LatLng( data[0], data[1]);
map.panTo(laLatLng);
map.setZoom( data[2]);
});

关于javascript - 谷歌地图 API : pan to markers from a list.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com