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