这就是我想要做的:我要求用户在输入框中输入纬度+经度,我想在地图上显示该位置的标记,而不必每次都初始化地图。
我已按如下方式初始化地图:
<script type="text/javascript">
jQuery(document).ready(function() {
var myOptions = {
center: new google.maps.LatLng(34.053228, -118.259583),
zoom: 12,
zoomControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
});
</script>
<div style='height: 400px;'>
<div id="map_canvas" style="width:100%; float: left; height:100%"></div>
</div>
直到现在还没有爵士乐,这是定义地图的常规方式。现在,我有一个输入框,我要求用户输入一个地址:
<input type="text" size=30 name="lat" id="lat">
<input type="text" size=30 name="lon" id="lon">
<button type="button" id="address_submit">Search</button>
我想显示该地址的标记。我定义了一个函数,如下所示,但我没有得到如何显示获取地图对象:
$("#address_submit").live("click", function() {
lat = $("#lat").val();
lon = $("#lon").val();
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lon),
map: map, //HOW DO I GET THIS MAP OBJECT??
title:"Hello World!"
});
}
答案 0 :(得分:1)
我在jsfiddle =&gt;中尝试过你的代码http://jsfiddle.net/HaDbR/所有似乎都按预期工作(为了看到插入的标记,我缩小了缩放系数):我在表格中插入了一些坐标(靠近地图中心坐标),标记出现了正确。
唯一真正的区别是map
变量的可见性,以便应用于按钮的click
处理程序可以看到它,而.on()
方法代替.live()
< / p>
我已插入googlemap API脚本,调用回调函数createMap()
并在该函数中初始化了地图并且我已关联处理程序,因此通过关闭它可以访问您的地图< / p>