Автономное картографирование с пользовательским изображением: как центрировать изображение и заставить его заполнять экран

Я хочу сделать приложение, в котором вы можете панорамировать и масштабировать изображение в полноэкранном режиме. Маркеры будут раскрывать информацию об этой части изображения. Это очень похоже на карту. Поэтому я начал экспериментировать с автономным отображением 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(); в конце вашей функции инициализации.

person user1702401    schedule 22.02.2013
comment
Это действительно заботится о том, чтобы показать всю карту. Это также создает пустое пространство вокруг него, чтобы заполнить экран. Поэтому я добавил map.zoomTo(2), чтобы убедиться, что он заполнил экран. - person Ropefly; 27.02.2013