Javascript 谷歌地图中的标记
我目前正在加载一个带有以下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
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
的更好方法,例如在模块模式中。