Офлайн картографиране с персонализирано изображение: Как да центрирате изображението и да го накарате да запълни екрана

Искам да направя приложение, където можете да панорамирате и мащабирате изображение на цял екран. Маркерите биха разкрили информация за тази част от изображението. Това много прилича на карта. Така че започнах да си играя с Phonegap и OpenLayers офлайн картографиране. Сега успешно постигнах това, но май не хващам координатната система. Когато стартирам приложението си на Android, то показва празен екран, докато не докосна контрола за мащабиране. След това изведнъж изображението се вижда и можете да го плъзнете наоколо и да го изследвате. Предполагам, че има нещо общо с координатната система.

Ето моята функция за стартиране, която всъщност има всичко, за да покаже картата и да я накара да работи: Търся начин да центрирам изображението си и да го накарам да запълни целия екран, когато стартирам това приложение.

var init = function () {
// create map
map = new OpenLayers.Map({
    div: "map",
    theme: null,

    // komt van http://trac.osgeo.org/openlayers/wiki/UsingCustomTiles
    maxExtent: new OpenLayers.Bounds(  0.0, -3433.0, 3433.0, 0.0 ),
    maxResolution: 16.000000,
    numZoomLevels: 7,
    // end

    controls: [
        new OpenLayers.Control.Attribution(),
        new OpenLayers.Control.TouchNavigation({
            dragPanOptions: {
                enableKinetic: true
            }
        }),
        new OpenLayers.Control.Zoom()
    ],
    layers: [
        new OpenLayers.Layer.TMS( "TMS Layer","",
                {  url: '', serviceVersion: '.', layername: '.', alpha: false,
                    type: 'jpg', getURL: overlay_getTileURL,
                    transitionEffect: 'resize'
                })
    ],
    center: new OpenLayers.LonLat(1000, 1000),
    zoom: 3
});
};

person Ropefly    schedule 22.02.2013    source източник


Отговори (1)


Това е много често срещан проблем - имате нужда от map.zoomToMaxExtent(); в края на вашата init функция.

person user1702401    schedule 22.02.2013
comment
Това наистина се грижи за показването на цялата карта. Той също така създава празно пространство около себе си, за да запълни екрана. Затова добавих map.zoomTo(2), за да се уверя, че запълва екрана. - person Ropefly; 27.02.2013