OpenLayer

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
EXA
Новоприбывший
Сообщения: 2
Зарегистрирован: 03 май 2010, 09:02
Репутация: 0

OpenLayer

Сообщение EXA »

День добрый.
Сижу разбираюсь по немногу со всем этим. Есть сгенеренные tiles mapnik'ом, с 1 масштаба по 17, карта из postgres, ставил postgis. Решил для начала изучения понемногу пробовать разное, сейчас застрял на таком, решил сделать максимальный и минимальный возможный масштаб увеличения карты, пробовал играться с параметрами numZoomLevels, minZoomLevel, maxZoomLevel, но не смог установить минимальный размер, в мапе и указывал numZoomLevels: null, и потом максимальный и минимальный задавал, но ни чего не получалось, если на максимальный реагировал ползунок и возможность увеличения, то минимум ни как не цеплялся, и задавать все три параметра не помогало, потом прочитал, что для OSM не будет действовать minZoomLevel, для другого типа слоёв.
Начал дальше пытаться понять и тут встал тупик, ни как не могу понять, что это maxExtent, я подумал, это будут координаты которые указывают, что именно что показывать на экране, так сказать видимый участок карты. Причём много примеров, где числа порядка -20000, а где -180, -90, 180, 90, ещё кажись и обычны координаты 40.23 имеются. Я у себя задал координатами и использовал транспарент, думаю так надо, видать к чему нужно преобразует.
Опять же не понял как считаются числа для minResolution, maxResolution, Resolutionи что это значит, я так думал, это и есть масштабы максимальный и минимальный. В общем преследую цель. установить макс и мин увеличения карты. А так же не пытаться подгружать не существующих тайлов, т.е. жёстко указать квадрат карты.

ebanix.isa-geek.com/map2.html

Код: Выделить всё

<html>
  <head>
    <title>OpenLayers Demo</title>
    <style type="text/css">
      html, body, #basicMap {
          width: 100%;
          height: 100%;
          margin: 0;
      }
    </style>
    <script src="OpenLayers.js"></script>
    <script>
      function init() {

        var controls = [new OpenLayers.Control.ArgParser(),
        new OpenLayers.Control.Navigation(),
        new OpenLayers.Control.PanZoomBar(),
        new OpenLayers.Control.MouseDefaults(),
        new OpenLayers.Control.LayerSwitcher(),
        new OpenLayers.Control.Permalink(),
        new OpenLayers.Control.Permalink('permalink'),
        new OpenLayers.Control.MousePosition(),
        new OpenLayers.Control.OverviewMap(),
        new OpenLayers.Control.KeyboardDefaults()];

        var bounds = new OpenLayers.Bounds(73, 49, 73.9, 50.8).transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
        );
        var mapArgs = {
            maxExtent: bounds,
//                               maxResolution: 156542.0339,
//          numZoomLevels: null,
        numZoomLevels: 17,
//      minResolution: 13,
            units: 'm',
            displayProjection:  new OpenLayers.Projection('EPSG:4326'),
            controls: controls,
            projection: 'EPSG:900913',
        };
        map = new OpenLayers.Map("basicMap", mapArgs);
        var mapnik = new OpenLayers.Layer.OSM("New Layer", "http://ebanix.isa-geek.com/tiles/${z}/${x}/${y}.png" );
        map.addLayer(mapnik);
        var arg_pairs = new OpenLayers.Util.getParameters();
        if (!arg_pairs.lat) {
        map.setCenter(new OpenLayers.LonLat(73.2,49.9) // Center of the map 13.41,52.52
          .transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
          ), 10// Zoom level
        );
        };
      }
    </script>
  </head>
  <body onload="init();">
    <div id="basicMap"></div>
  </body>
</html>
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей