我正在为我的应用程序使用谷歌地图 API 3。
所以我想做的是下一步。加载页面时,我将获得以下格式的位置数组:
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
首先,我想为每个位置添加标记
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
标记上的图片:
var image = new google.maps.MarkerImage("images/truck3.png",
new google.maps.Size(32.0, 37.0),
new google.maps.Point(0, 0),
new google.maps.Point(16.0, 18.0)
);
var shadow = new google.maps.MarkerImage("images/shadow-truck3.png",
new google.maps.Size(51.0, 37.0),
new google.maps.Point(0, 0),
new google.maps.Point(16.0, 18.0)
);
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map,
icon: image,
shadow: shadow,
title: 'Click to zoom'
});
这应该缩放在屏幕中心初始化的所有标记,但在开始时只有一次,稍后中心不使用,因为用户可能会钓鱼以查看地图上的其他内容。
我希望标记一直在移动,所以也许我需要添加一些事件处理程序来一直获取新位置?
然后是当您单击标记时的部分,您已缩放并且标记仍在移动(获取新位置)但现在我需要使用我将在 php 数组中发送的那个 ID,以便我可以使用该参数调用一些 php 函数.
之后,当用户单击侧面的按钮时,我希望能够在我的请求开始时出现,这意味着在屏幕中央加载了标记。
点击部分:
google.maps.event.addListener(marker, 'click', function() {
map.setZoom(13);
map.setCenter(marker.getPosition());
google.maps.event.addListener(map, 'center_changed', function() {
// 1 seconds after the center of the map has changed, pan back to the
// marker.
window.setTimeout(function() {
map.panTo(marker.getPosition());
}, 1000);
});
});
}
所以基本上我告诉了你我想要实现的一切,我相信你们中的很多人都做了同样的事情。这些是来自很多来源的代码的一部分,我需要让它们一起工作并添加一些我上面写的更小的新功能。
谢谢