プラグインを使用せずにこれを行う方法は、Google の OverlayView() メソッドのサブクラスを作成することです。
https://developers.google.com/maps/documentation/javascript/reference?hl=en#OverlayView
カスタム関数を作成してマップに適用します。
function Label() {
this.setMap(g.map);
};
サブクラスのプロトタイプを作成し、HTML ノードを追加します。
Label.prototype = new google.maps.OverlayView; //subclassing google's overlayView
Label.prototype.onAdd = function() {
this.MySpecialDiv = document.createElement('div');
this.MySpecialDiv.className = 'MyLabel';
this.getPanes().overlayImage.appendChild(this.MySpecialDiv); //attach it to overlay panes so it behaves like markers
}
API ドキュメントに記載されているように、remove 関数と draw 関数も実装する必要があります。実装しないと機能しません。
Label.prototype.onRemove = function() {
... // remove your stuff and its events if any
}
Label.prototype.draw = function() {
var position = this.getProjection().fromLatLngToDivPixel(this.get('position')); // translate map latLng coords into DOM px coords for css positioning
var pos = this.get('position');
$('.myLabel')
.css({
'top' : position.y + 'px',
'left' : position.x + 'px'
})
;
}
それが要点です。特定の実装でさらに作業を行う必要があります。