0
我有这样的地图:如何在google javascript maps api v3中更改标记位置?
.... class Maps ....
Maps.prototype.initialize = function (x, y) {
var latitude = x;
var longitude = y;
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(latitude, longitude),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map,
title: 'Click to zoom'
});
};
Maps.prototype.changePosition = function (x, y) {
var latitude = x;
var longitude = y;
var map = new google.maps.LatLng(latitude, longitude);
marker.setPosition(map);
}
....
则:
var maps = new Maps();
var marker = maps.initialize(x, y);
window.setTimeout(function() {
maps.changePosition(x, y));
}, 3000);
的initialize
方法的工作原理,并呈现地图和标记
但第二个不工作,没有按” t知道什么是
关于这个问题的任何想法?
我需要从'initialize'返回'maps'?但我在'changePosition'方法中再次定义它 – Patrioticcow
是的,所有你在函数中定义的都是“私有”变量,因为你使用了var-keyword。这些变量在函数外部是不可见的,但setTimeout-callback在函数之外运行(在全局范围内) –
我看到了,'marker'在'changePosition'方法中未定义, – Patrioticcow