Вы дополняете google.maps.OverlayView объектом, который переопределяет onAdd (), draw () и onRemove ()
В onAdd вы, вероятно, захотите установить ссылку на панель в Google.Map.MapPanes для размещения вашей разметки.Тогда вам придется обрабатывать события панорамирования и масштабирования.Вы делаете это так:
CustomOverlayView.prototype.initPanes = function() {
var panes = this.getPanes(); //object of type google.maps.MapPanes
this.drawPane = jQuery(panes.floatPane); //we will initialize our stuff in this div element
this.drawPane.attr("id", "map-draw-pane"); //conceivable to want to reference this, usefull for debugging
this.drawPane.css("background-color", "transparent"); //DONT COVER THE GOOGLE COPYRIGHT
};
Чтобы ваш холст был полезен для рисования, вам нужен способ конвертировать ваши объекты google.maps.LatLng в объекты Point с переменными x и y.Ответ в google.maps.MapCanvasProjection, который имеет различные методы, которые вычисляют объекты местоположения, закодированные как объекты google.maps.LatLng, в полезные пиксельные координаты (и обратно).
var projection = this.getProjection();//google.maps.MapCanvasProjection
var drawingLocationPoint = projection.fromLatLngToContainerPixel(markerData.location);
Некоторые подробности того, как поместитьхолст в гугл картах тут: http://www.samedwards.net