【发布时间】:2014-12-01 11:33:28
【问题描述】:
我在我的一个网站上展示了一张 Google 地图。当 Google 地图中的界限发生变化时,我会进行一些计算。我计算坐标值并将它们存储在四个单独的文本框中。我能做到。
目前,我只在地图的bounds_changed 事件中这样做。我还想在以下事件中执行相同的操作:
- zoom_changed
- center_changed
- 瓷砖加载
- 空闲
- 拖动
- 拖累
- 拖动启动
如何做到这一点?我对 JavaScript 不太熟悉。我什至不知道这样的事情是否可能?我应该对源代码进行哪些更改。
我添加了一个fiddle。但它不起作用。只是为了显示代码。
我得到了this page 的帮助。
HTML 代码:
<div id="googleMap" style="width:900px;height:500px;">
</div>
<input type="text" id="north" name="north">
<input type="text" id="east" name="east">
<input type="text" id="west" name="west">
<input type="text" id="south" name="south">
JavaScript 代码:
function loadScript()
{
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
function initialize()
{
var myLatlng=new google.maps.LatLng(-25.363882, 131.044922);
var mapProp =
{
center: new google.maps.LatLng(-25.363882, 131.044922),
zoom:6,
maxZoom: 8,
minZoom:2,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var image = 'mapmarkers/you-are-here-2.png';
var marker = new google.maps.Marker
({
position: myLatlng,
map: map,
title: 'I am Here.',
icon: image,
tooltip: '<B>This is a customized tooltip</B>'
});
google.maps.event.addListener(map, 'bounds_changed', function ()
{
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var getcentre=bounds.getCenter();
var ne = map.getBounds().getNorthEast();
var sw = map.getBounds().getSouthWest();
var centre_lat=getcentre.lat();
var centre_long=getcentre.lng();
var myLatlng=new google.maps.LatLng(centre_lat,centre_long);
var mapProp =
{
center: new google.maps.LatLng(centre_lat,centre_long),
zoom:6,
maxZoom: 8,
minZoom:2,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var north2=ne.lat();
var east2=ne.lng();
var south2=sw.lat();
var west2=sw.lng();
document.getElementById("north").value = north2;
document.getElementById("east").value = east2;
document.getElementById("west").value = west2;
document.getElementById("south").value = south2;
});
}
【问题讨论】:
-
澄清一下,您想为所有事件运行相同的函数吗?
-
是的。我想为所有事件运行相同的功能??除了为每个事件单独提供代码之外,还有其他方法吗??? @约翰
-
等一下,我会发布一个想法
标签: javascript jquery google-maps dom dom-events