Насколько я знаю, у класса карты нет свойства MapCanvasProjection. Это не в спецификации, если они недавно добавили один.
Есть обходной путь, который вы можете сделать, создав фиктивный OverlayView, у которого будет проекция:
/**@private
* In V3 it is quite hard to gain access to Projection and Panes.
* This is a helper class
* @param {google.maps.Map} map
*/
function ProjectionHelperOverlay(map) {
google.maps.OverlayView.call(this);
this.setMap(map);
}
ProjectionHelperOverlay.prototype = new google.maps.OverlayView();
ProjectionHelperOverlay.prototype.draw = function () {
if (!this.ready) {
this.ready = true;
google.maps.event.trigger(this, 'ready');
}
};
Который был взят из этого открытого исходного кода . Вы можете использовать это так:
var proj = new ProjectionHelperOverlay(map);
proj.getProjection().fromContainerPixelToLatLng(new LatLng(x,y));