谷歌地图-添加新的标记,而无需每次初始化地图

Google maps- Add new markers without initializing map each time

本文关键字:地图 初始化 添加 谷歌地图      更新时间:2023-09-26

这就是我想要做的:我要求用户在输入框中键入纬度+经度,我想在地图上显示该位置的标记,而不必每次都初始化地图。

我已经初始化了一个地图如下:

<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!"
      });
}

我在jsfiddle=>中尝试过您的代码http://jsfiddle.net/HaDbR/一切似乎都如预期的那样工作(我降低了一点缩放因子,只是为了看到插入的标记):我在表格中插入了一些坐标(靠近地图中心坐标),标记显示正确。

唯一真正的区别是map变量的可见性,以便应用于按钮的click处理程序可以看到它,以及.on()方法而不是.live()

我插入了googlemap API脚本,调用回调函数createMap(),在该函数中,我初始化了映射,并关联了处理程序,因此通过关闭,它可以访问您的映射