我正在尝试转换非常有用的LabeledMarker class to Google Maps API V3。 我在我的V2地图中使用过它......但是我想在V3地图中找到类似的东西。 我阅读Mike's article关于扩展GMarker的信息。
我正在尝试使用google.maps.Marker,但我遇到了一些问题。
这是我非常简单的代码:
function LabeledMarker(opts) { // constructor
google.maps.Marker.apply(this, arguments);
}
LabeledMarker.prototype = new google.maps.Marker();
LabeledMarker.prototype.onAdd = function() {
alert('onAdd1');
google.maps.Marker.prototype.onAdd.apply(this, arguments);
alert('onAdd2');
}
LabeledMarker.prototype.draw = function() {
alert('draw1');
google.maps.Marker.prototype.draw.apply(this, arguments);
alert('draw2');
}
LabeledMarker.prototype.onRemove = function() {
alert('onRemove1');
google.maps.Marker.prototype.onRemove.apply(this, arguments);
alert('onRemove2');
}
以下是我的称呼方式:
var point = new google.maps.LatLng(37, -59);
var labeledMarker = new LabeledMarker({
map: map,
position: point,
labelText: 'Label'
});
这是一个网址:http://www.canamgroup.ws/GM.nsf/Map2?OpenPage
My Marker显示在地图上(所以我假设我的构造函数成功调用了google.maps.Marker
构造函数)但是onAdd,draw和onRemove中的警报从未被触发(所以我假设我的方法不成功调用google.maps.Marker
方法。
这是Mike在V2中的方式(除了方法名称不同)。 我试过了:
google.maps.Marker.prototype.draw.apply(this, arguments);
google.maps.Marker.prototype.draw.apply(this);
google.maps.Marker.prototype.draw.call(this);
google.maps.Marker.prototype.draw.call(this, arguments);
我刚刚开始编写OO Javascript代码,所以我可能会遗漏一些东西? 或许我必须在V3中做一些不同的事情? 有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)