NextGIS WMS & Openlayers

Вопросы по программному обеспечению NextGIS: Web, Mobile, QGIS, Manager и многочисленным модулям
Ответить
Serp
Участник
Сообщения: 94
Зарегистрирован: 05 июл 2010, 07:58
Репутация: 0

NextGIS WMS & Openlayers

Сообщение Serp » 19 апр 2018, 06:37

Здравствуйте.
Проблема такая: Сделали NextGIS WMS-сервис на внутреннем сервере. Дали все права без паролей. Хотим открыть с помощью Openlayers – розовые тайлы.
Забили пару других адресов (ОСГЕО, ВСЕГЕИ) – от них всё читается. Меняем адрес на наш – не пашет. Проверили АркГИС-ом – сервис работает. Запрос на Capabilities тоже говорит, что всё шевелится.
В чём может быть проблема?
Жизнь - это эксперимент, поставленный на себе.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: NextGIS WMS & Openlayers

Сообщение Denis Rykov » 19 апр 2018, 08:48

Если не сложно - сделайте пример, например, на jsfiddle или codepen. Ну или хотя бы просто код приложите.
Spatial is now, more than ever, just another column- The Geometry Column.

Serp
Участник
Сообщения: 94
Зарегистрирован: 05 июл 2010, 07:58
Репутация: 0

Re: NextGIS WMS & Openlayers

Сообщение Serp » 19 апр 2018, 11:22

Если имеется ввиду код html-страницы, то вот он:

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>      
  <head>     
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
  <title>PSV OpenLayers + WMS Example</title>
  <link href="theme/default/style.css" rel="stylesheet" type="text/css" />
  <link href="css/Main.css" rel="stylesheet" type="text/css" />
  <script src="js/OpenLayers.js"></script>
    <script type="text/javascript">
        var lon = 76.5;   //  center
        var lat = 54;   // center            
        var zoom = 5;   //scale        
        var map, layer; 

       var esv_wms_url = "http://192.168.1.63:6543/api/resource/35/wms?";
        
        function init(){
        var options = {
                            minResolution: "auto",
                            maxResolution: "auto",
                            maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
           // maxExtent: new OpenLayers.Bounds(60,48,80,132),
             //     projection:"EPSG: 3857",   //   4326",
            units: 'm',
            numZoomLevels: 20
               
        };
              var  raster_ovrl_opt = {
              opacity: 0.7,           
              visibility: false,
              isBaseLayer: false,
              metadata: 'RASTER_OVERLAY'
          };

     map = new OpenLayers.Map("map", options ); 

         layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                   "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic', isBaseLayer: true} );
            map.addLayer(layer);
            
         layer  =  new OpenLayers.Layer.WMS( "VSEGEI OneGeology WMS",
                    "http://wms.vsegei.ru/VSEGEI_Bedrock_geology/wms?",
                     {layers: 'RU_1M_BLS_N4344'} ,raster_ovrl_opt, {wrapDateLine: true} );
            map.addLayer(layer);

         layer  = new OpenLayers.Layer.WMS( "setka_1000_WMS",
             esv_wms_url, {layers: 'setka_1000_000'},{visibility: false,isBaseLayer: false} );
      
      map.addLayer(layer);
    
      map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);

        
      map.addControl(new OpenLayers.Control.PanZoomBar());
      map.addControl(new OpenLayers.Control.LayerSwitcher());   
      map.addControl(new OpenLayers.Control.MousePosition());

     } // end init
        
        
    </script>
  </head>
  <body onload="init()">
    <h1 id="title">OpenLayers + WMS Example</h1>
    <p id="shortdesc">
        OpenLayers + WMS Example.
    </p>
    <div id="map" ></div>
<!--    <div id="layerswitcher" class="olControlLayerSwitcher"></div> -->
  </body>
</html>
Жизнь - это эксперимент, поставленный на себе.

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: NextGIS WMS & Openlayers

Сообщение freeExec » 19 апр 2018, 11:28

Вряд ли это причина проблемы, но всё же у вас Земля в пару соток 360м х 180м

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

new OpenLayers.Bounds(-180, -90, 180, 90),
units: 'm',

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: NextGIS WMS & Openlayers

Сообщение Denis Rykov » 19 апр 2018, 12:53

Это принципиально - использовать устаревшую и неподдерживаемую более версию OpenLayers?
Spatial is now, more than ever, just another column- The Geometry Column.

Serp
Участник
Сообщения: 94
Зарегистрирован: 05 июл 2010, 07:58
Репутация: 0

Re: NextGIS WMS & Openlayers

Сообщение Serp » 19 апр 2018, 13:01

Нет, конечно. Еще один человек с этим разбирается, у него последняя, но с таким же результатом.
Но, если нужно, обновлю.
Жизнь - это эксперимент, поставленный на себе.

Serp
Участник
Сообщения: 94
Зарегистрирован: 05 июл 2010, 07:58
Репутация: 0

Re: NextGIS WMS & Openlayers

Сообщение Serp » 20 апр 2018, 12:46

В общем, обновился. Сделал аналогичный пример. Результат такой же: другие WMS открываются, а наш - нет. Html c OpenLayers дает ошибку:"Failed to load resource: the server responded with a status of 500 (Internal Server Error)". При этом АркГИС (10,5) все-таки грузит с нашего сервиса все слои, кроме тех, у которых нет разрешений.
Неудобно, что в новом OL нет розовых тайлов - сразу непонятно - долго грузится или не грузит вообще.

<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
width: 100%;
}
</style>
<script src="https://openlayers.org/en/v4.6.5/build/ol.js" type="text/javascript"></script>
</head>
<body>
<h2>Single Image WMS example</h2>
<div id="map" class="map"></div>
<script type="text/javascript">
var layers = [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Image({
source: new ol.source.ImageWMS({
url: 'http://wms.vsegei.ru/VSEGEI_Bedrock_geology/wms',
params: {'LAYERS': 'RU_1M_BLS_N4344'},
})
}),
new ol.layer.Image({
source: new ol.source.ImageWMS({
url: 'http://192.168.1.63:6543/api/resource/35/wms',
params: {'LAYERS': 'setka_1000_000'},
serverType: 'qgis'
})
})
];
var map = new ol.Map({
layers: layers,
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([93.5, 54.5]),
zoom: 4
})
});
</script>
</body>
</html>
Жизнь - это эксперимент, поставленный на себе.

Ответить

Вернуться в «NextGIS»

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

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