Точка панорамирования на карте Google до определенной позиции пикселя на экране (API v3) - PullRequest
3 голосов
/ 06 мая 2010

Когда overlay - это наложение карт Google, а offsetx, offsety - это расстояние в пикселях от центра карты, на которое я хочу панорамировать latlong, работает следующее:

var projection = overlay.getProjection();
var pxlocation = projection.fromLatLngToContainerPixel(latlong);
map.panTo(projection.fromContainerPixelToLatLng(new google.maps.Point(pxlocation.x+offsetx,pxlocation.y+offsety)));

Однако у меня не всегда есть оверлей на карте, и map.getProjection() возвращает projection, а не MapCanvasProjection, который не имеет необходимых мне методов.

Есть ли способ сделать это без специального наложения для него?

1 Ответ

4 голосов
/ 07 мая 2010

Так как никто не придумал лучшего способа, вот мое решение. Сделайте оверлей с единственной целью - дать мне объект MapCanvasProjection.

var helper = new google.maps.OverlayView();
helper.setMap(map);
helper.draw = function () { 
    if (!this.ready) { 
        this.ready = true; 
        google.maps.event.trigger(this, 'ready'); 
    } 
}; 
var projection = helper.getProjection();
...

Надеюсь, это кому-нибудь поможет. Лучшие предложения приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...