Javascript 谷歌地图中的标记

Javascript 谷歌地图中的标记,javascript,google-maps,Javascript,Google Maps,我目前正在加载一个带有以下javascript的映射 google.load("maps", "2.x"); // Call this function when the page has been loaded function initialize() { var map = new google.maps.Map2(document.getElementById("map")); map.setCenter(new google.maps.LatLng(52

我目前正在加载一个带有以下javascript的映射

  google.load("maps", "2.x");

  // Call this function when the page has been loaded
  function initialize() {

    var map = new google.maps.Map2(document.getElementById("map"));
    map.setCenter(new google.maps.LatLng(52,-3), 13);

    var point = new google.maps.LatLng(52,-3);
    var marker = new google.maps.Marker(point, {draggable: true});


    map.addOverlay(marker);

    google.maps.Event.addListener(marker, "dragend", function(latlng) {
    marker.openInfoWindowHtml("Dragged to <br>" + latlng);
    });    
  }

google.setOnLoadCallback(initialize);
google.load(“maps”,“2.x”);
//加载页面后调用此函数
函数初始化(){
var map=new google.maps.Map2(document.getElementById(“map”);
地图设置中心(新的google.maps.LatLng(52,-3),13);
var point=new google.maps.LatLng(52,-3);
var marker=new google.maps.marker(点,{draggable:true});
添加覆盖图(标记);
google.maps.Event.addListener(标记“dragend”,函数(latlng){
marker.openInfoWindowHtml(“拖到
”+latlng); }); } setOnLoadCallback(初始化);

稍后,我想向地图添加其他标记,在用户输入(lat,lon)对后,如何访问我在函数
initialize
中创建的
map
变量?

从未使用过谷歌地图,但尝试全局创建它,并在每次使用它时将其传递到initialize中

google.load("maps", "2.x");

var map = new google.maps.Map2(document.getElementById("map"));

function initialize(map,lat,lon) {

    map.setCenter(new google.maps.LatLng(lat,lon), 13);

    var point = new google.maps.LatLng(lat,lon);
    var marker = new google.maps.Marker(point, {draggable: true});


    map.addOverlay(marker);

    google.maps.Event.addListener(marker, "dragend", function(latlng) {
    marker.openInfoWindowHtml("Dragged to <br>" + latlng);
    });

    return map
}

google.setOnLoadCallback(initialize(map,lat,lon));
google.load(“maps”,“2.x”);
var map=new google.maps.Map2(document.getElementById(“map”);
函数初始化(映射、横向、纵向){
地图设置中心(新的google.maps.LatLng(lat,lon),13);
var point=new google.maps.LatLng(lat,lon);
var marker=new google.maps.marker(点,{draggable:true});
添加覆盖图(标记);
google.maps.Event.addListener(标记“dragend”,函数(latlng){
marker.openInfoWindowHtml(“拖到
”+latlng); }); 返回图 } setOnLoadCallback(初始化(map,lat,lon));
只需在initialize函数之外初始化map变量:

google.load("maps", "2.x");

var map;

// Call this function when the page has been loaded
function initialize() {

  map = new google.maps.Map2(document.getElementById("map"));
  map.setCenter(new google.maps.LatLng(52,-3), 13);

  var point = new google.maps.LatLng(52,-3);
  var marker = new google.maps.Marker(point, {draggable: true});

  map.addOverlay(marker);

  google.maps.Event.addListener(marker, "dragend", function(latlng) {
    marker.openInfoWindowHtml("Dragged to <br>" + latlng);
  });    
}

google.setOnLoadCallback(initialize);

//Now you can access the map variable anywhere in your code.
google.load(“maps”,“2.x”);
var映射;
//加载页面后调用此函数
函数初始化(){
map=新的google.maps.Map2(document.getElementById(“map”);
地图设置中心(新的google.maps.LatLng(52,-3),13);
var point=new google.maps.LatLng(52,-3);
var marker=new google.maps.marker(点,{draggable:true});
添加覆盖图(标记);
google.maps.Event.addListener(标记“dragend”,函数(latlng){
marker.openInfoWindowHtml(“拖到
”+latlng); }); } setOnLoadCallback(初始化); //现在,您可以在代码中的任何位置访问map变量。
上述方法可能不会第一次奏效,但希望您能理解。这是正确的想法,但在加载页面之前,您无法实际实例化map对象-您需要在initialize函数中执行此操作。尽管使用了全局变量,但这是封装
map
的更好方法,例如在模块模式中。