Не отображается слой с geoserver

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
mata-hary
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 ноя 2020, 08:22
Репутация: 0
Откуда: Оренбург

Не отображается слой с geoserver

Сообщение mata-hary » 16 ноя 2020, 08:56

Добрый день! Первый раз столкнулась с задачей опубликовать карту на сайте. В связи с этим перечитала много разной информации, но так и не получилось то, что нужно.
Что хочу: загрузить карту со стилем mapbox, сверху нее положить свой векторный слой, загруженный предварительно на geoserver.
Нашла такой способ:

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

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Карта освещенности</title>

  <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.js'></script>
  <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.css' rel='stylesheet' />

  <style>
    html, body, #map {
      height: 90%;
      width: 90%;
      padding: 0;
      margin: 0;
    }
  </style>
</head>
<body>
  <div id="map" class="map"></div>
</body>

<script>
  mapboxgl.accessToken = 'токен';
  var map = new mapboxgl.Map({
      container: 'map',
      style: 'mapbox://styles/osugeo/ckhd5yihm038519qpw3asd46k',
      center: [56.1, 52.1],
      zoom: 6
  });

  map.on('load', function() {
    map.addLayer({
        "id": "light",
        "type": "fill",
        "source": {
            "type": "vector",
            "scheme": "tms",
            "tiles": ["http://127.0.0.1:8080/geoserver/gwc/service/tms/1.0.0/topp:light@EPSG%3A4326@pbf/{z}/{x}/{y}.pbf"],
            "minzoom": 0,
            "maxzoom": 14
        },
        "source-layer": "light",
        "paint": {
            "fill-opacity": 0.6,
            "fill-color": "rgb(53, 175, 109)",
            'fill-outline-color': 'white'
        }
    });
  });


  map.on('mouseleave', 'grnicy_ao_w1251_id', function () {
    map.getCanvas().style.cursor = '';
  });

  map.addControl(new mapboxgl.NavigationControl());
  map.addControl(new mapboxgl.ScaleControl());
  map.addControl(new mapboxgl.FullscreenControl());
  </script>
</html>
Но векторный слой не отображается. Что не так?

В браузере консоль выдает ошибки типа: Access to fetch at 'http://127.0.0.1:8080/geoserver/gwc/ser ... /42/43.pbf' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

mata-hary
Новоприбывший
Сообщения: 7
Зарегистрирован: 16 ноя 2020, 08:22
Репутация: 0
Откуда: Оренбург

Re: Не отображается слой с geoserver

Сообщение mata-hary » 16 ноя 2020, 19:43


lambda88
Новоприбывший
Сообщения: 6
Зарегистрирован: 31 окт 2020, 13:55
Репутация: 0
Откуда: Омск

Re: Не отображается слой с geoserver

Сообщение lambda88 » 02 мар 2021, 17:47

Добрый день! Похожая ситуация! Только выдает ошибку 404 not found! Где может быть ошибка?

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

<!DOCTYPE html -->
<html>
<head>
  <title>My first leaflet webviewer</title>
  <!--Load leaflet -->
  <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script>
  <!--Load vectorGrid plugin for Leaflet -->
  <script src="https://unpkg.com/leaflet.vectorgrid@latest/dist/Leaflet.VectorGrid.bundled.js"></script>
  <!--Load the style stylesheet of leaflet -->
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>

  <style>
  /*Set the dimensions of our map  */
    .map {
      height: 100%;
      width: 100%;
    }
  </style>

</head>
<body>
<!--Create our map object  -->
<div id="map" class="map"></div>
</body>
</html>

<script>
// Find our map id
var map = L.map('map')
// Set open openstreetmap
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);

// Set vectorTileOptions
var vectorTileOptions = {
vectorTileLayerStyles: {
'building-polygon': function(properties, zoom) {
return {
  color: 'red',
  opacity: 1,
  fillColor: 'yellow',
  fill: true,
}
},
},
interactive: true,	// Make sure that this VectorGrid fires mouse/pointer events
}

// Set the coordinate system
var projection_epsg_no = '4326';
// Set the variable for storing the workspace:layername
var campground_geoserverlayer = 'data_nl:building-polygon';
// Creating the full vectorTile url
var campingURL = '/geoserver/gwc/service/tms/1.0.0/' + campground_geoserverlayer + '@EPSG%3A' + projection_epsg_no + '@pbf/{z}/{x}/{-y}.pbf';
// Creating the Leaflet vectorGrid object
var camping_vectorgrid = L.vectorGrid.protobuf(campingURL, vectorTileOptions)

// Define the action taken once a polygon is clicked. In this case we will create a popup with the camping name
camping_vectorgrid.on('click', function(e) {
    L.popup()
      .setContent(e.layer.properties.naamnl)
      .setLatLng(e.latlng)
      .openOn(map);
  })
  .addTo(map);

// Add the vectorGrid to the map
camping_vectorgrid.addTo(map);

// Set the map view. In this case we set it to the Omsk
map.setView([54.9924400,73.3685900], 11);

</script>


Код взят из примера.

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

Re: Не отображается слой с geoserver

Сообщение freeExec » 02 мар 2021, 19:18

lambda88 писал(а):
02 мар 2021, 17:47
Где может быть ошибка?
В адресе

lambda88
Новоприбывший
Сообщения: 6
Зарегистрирован: 31 окт 2020, 13:55
Репутация: 0
Откуда: Омск

Re: Не отображается слой с geoserver

Сообщение lambda88 » 03 мар 2021, 18:04

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

var campingURL = '/geoserver/gwc/service/tms/1.0.0/' + campground_geoserverlayer + '@EPSG%3A' + projection_epsg_no + '@pbf/{z}/{x}/{-y}.pbf';
Я правильно понимаю, что в этом адресе ошибка? Не могу ее увидеть.

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

Re: Не отображается слой с geoserver

Сообщение freeExec » 03 мар 2021, 19:19

Что браузер по нему показывает?

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Не отображается слой с geoserver

Сообщение Ivor » 04 мар 2021, 04:24

lambda88, я правильно понимаю, что вы подняли на своём сайте GeoServer, и он откликается по адресу <ваш домен>/geoserver/<и так далее>?

lambda88
Новоприбывший
Сообщения: 6
Зарегистрирован: 31 окт 2020, 13:55
Репутация: 0
Откуда: Омск

Re: Не отображается слой с geoserver

Сообщение lambda88 » 04 мар 2021, 07:54

Ivor, я на ноутбуке развернул Geoserver.
freeExec, Вот что показывает браузер
main.jpg
main.jpg (208.41 КБ) 7122 просмотра

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Не отображается слой с geoserver

Сообщение Ivor » 04 мар 2021, 09:10

lambda88, ну как бы ERR_CONNECTION_REFUSED намекает, что с настройками геосервера что-то не так. Или антивирус какой-нибудь шибко умный режет. И да, %3A в адресе - это нормально?

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

Re: Не отображается слой с geoserver

Сообщение freeExec » 04 мар 2021, 09:25

lambda88 писал(а):
04 мар 2021, 07:54
Вот что показывает браузер
Я хотел узнать что по данному адресу, а не то что вы продемонстрировали. Но даже если вы хотели показать ошибки в консоле, то почему они занимают 10% от вашего изображения.

lambda88
Новоприбывший
Сообщения: 6
Зарегистрирован: 31 окт 2020, 13:55
Репутация: 0
Откуда: Омск

Re: Не отображается слой с geoserver

Сообщение lambda88 » 04 мар 2021, 16:38

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

http://192.168.0.104:8080/geoserver/gwc/service/tms/1.0.0/data_nl:building-polygon@EPSG%3A4326@pbf/11/647/1439.pbf
Если перейти по этой ссылке, то будет вот это:

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

Coverage [minx,miny,maxx,maxy] is [2849, 1633, 2915, 1683, 11], index [x,y,z] is [647, 1439, 11]

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

Re: Не отображается слой с geoserver

Сообщение freeExec » 04 мар 2021, 16:58

lambda88 писал(а):
04 мар 2021, 16:38
Если перейти по этой ссылке, то будет вот это:
А должен бинарный тайл отдавать.

lambda88
Новоприбывший
Сообщения: 6
Зарегистрирован: 31 окт 2020, 13:55
Репутация: 0
Откуда: Омск

Re: Не отображается слой с geoserver

Сообщение lambda88 » 04 мар 2021, 18:05

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

http://192.168.0.104:8080/geoserver/gwc/demo/data_nl:building-polygon?gridSet=EPSG:4326&format=application/vnd.mapbox-vector-tile
Если по этой ссылке перейти, то слой загружается.

Ответить

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

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

Сейчас этот форум просматривают: Semrush [Bot] и 6 гостей