Я разработал пользовательское наложение в v3, используя класс OverlayView.Он отлично работает во всех основных браузерах для настольных компьютеров / ноутбуков, но не работает на мобильных устройствах.
var label = new CustomLabel(
latlng,
map,
{
text: permvars[siteid],
site: siteid
}
);
...
CustomLabel.prototype = new google.maps.OverlayView();
CustomLabel.prototype.onAdd = function() {
var div = this.div = document.createElement('div');
div.className = 'markerlabel';
this.getPanes().floatPane.appendChild(div); // top level pane type
};
CustomLabel.prototype.draw = function() {
var div = this.div;
if (this.args.text != ' ') {
div.innerHTML = this.args.text;
all_custom_labels['_'+this.args.site] = this;
var point = this.getProjection().fromLatLngToDivPixel(this.latlng);
console.log('this.args.site: ['+this.args.site+'] point: ['+point+'] this.args.text: ['+this.args.text+'] this.latlng: ['+this.latlng+']');
if (point) {
div.style.left = point.x + 'px';
div.style.top = point.y + 'px';
console.log(this.args.site+' '+point.x+' '+point.y);
}
}
};
Я что-то делаю глупо?