我的目标是最终允许用户在两个文本框中输入坐标,然后提交表单以使用新值更改谷歌地图的中心。我目前正在测试只是将一个按钮作为表单的一部分。单击按钮时,具有两个硬编码值的函数应更改地图的中心,但它不起作用。初始地图已正确创建,但单击按钮时地图的中心不会改变。这是我的javascript代码:
var map;
var center;
var mapOptions;
function reMap() {
alert("setting the center");
center = new google.maps.LatLng(41.4200, -73.9550);
map.setCenter(center);
map.setZoom(10);
}
function initialize() {
document.getElementById('location').onSubmit = reMap;
mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
这是html:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&sensor=false">
</script>
<script type="text/javascript"
src="js/mapActions.js">
</script>
</head>
<body >
<div><form id="location" action="" method="post">
<fieldset> <input type="submit" value="try" id="try"></fieldset></form></div>
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
任何关于为什么这不起作用的想法将不胜感激。请注意,如果我将输入类型更改为“按钮”并将“onClick = reMap()”添加到 html,那么它实际上可以工作,但就像我提到的那样,我需要能够使用表单,我宁愿没有函数调用在 HTML 中。任何帮助将不胜感激。