0

私は画像にopenlayersを使用していて、ズームアウトして少し横にずれると自動的に中央に配置されるようにしようとしています。次のコードがありますが、機能していません。ピンチで「zoomEnd」が呼び出されているようには見えませんが、どのイベントが発生しますか?

Openayers でリッスンできるすべてのイベントのリストはありますか? ドキュメントのどこにもそのようなものは見つかりません..

map = new OpenLayers.Map('detailsdiv', {
    projection : 'EPSG:3785',
    units : 'm',
    fractionalZoom : true,
    eventListeners: {
        "zoomend": recenterMap
    },
    maxResolution: Math.pow(2, graphic.numberOfTiers - 1),
    numZoomLevels : graphic.numberOfTiers,
    controls: [
         new OpenLayers.Control.TouchNavigation({
                dragPanOptions: {
                    enableKinetic: true
                }
         })
    ]
});

==============================

function recenterMap(){
    if (!map.centered){
        if (map.getZoom() == 0){
            map.centered = true;
            map.zoomToMaxExtent();
            map.zoomTo(0);
        } else {

        }
    }
}
4

1 に答える 1

1

私はあなたがmoveendイベントを使用する方が良いと信じています。ドラッグ、パン、またはズームが終了すると起動します...これはより良い方法です。また、イベントのリストは次のとおりです。http: //dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Map-js.html#OpenLayers.Map.events

また、recenterMap()関数でmap.setCenter()を使用することもできます。

于 2013-03-14T08:01:20.193 に答える