MapServer WMS в Leaflet

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
fynjy888
Интересующийся
Сообщения: 35
Зарегистрирован: 06 июл 2015, 23:01
Репутация: 2

MapServer WMS в Leaflet

Сообщение fynjy888 » 29 апр 2016, 01:39

Доброго времени суток. Бьюсь со странной проблемой, скорее всего решение очевидное, но я никак не могу найти:

MapServer настроил на WMS, (сразу оговорюсь ОС windows 10), "проверку" проходит:

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

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities 
выдаёт mapserv.exe (не XML, но я так понимаю это нормально), открыв блокнотом ошибок нет:
Спойлер

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

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"
 [
 <!ELEMENT VendorSpecificCapabilities EMPTY>
 ]>  <!-- end of DOCTYPE declaration -->

<WMT_MS_Capabilities version="1.1.1">

<!-- MapServer version 7.0.1 (MS4W 3.1.3) OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->

<Service>
  <Name>OGC:WMS</Name>
  <Title>GIS-LAB Demo</Title>
  <Abstract>This is the WMS demo from GIS-Lab</Abstract>
  <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/>
  <ContactInformation>
  </ContactInformation>
</Service>

<Capability>
  <Request>
    <GetCapabilities>
      <Format>application/vnd.ogc.wms_xml</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </GetCapabilities>
    <GetMap>
      <Format>image/png</Format>
      <Format>image/jpeg</Format>
      <Format>image/png; mode=8bit</Format>
      <Format>application/x-pdf</Format>
      <Format>image/svg+xml</Format>
      <Format>image/tiff</Format>
      <Format>application/vnd.google-earth.kml+xml</Format>
      <Format>application/vnd.google-earth.kmz</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </GetMap>
    <GetFeatureInfo>
      <Format>text/plain</Format>
      <Format>application/vnd.ogc.gml</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </GetFeatureInfo>
    <DescribeLayer>
      <Format>text/xml</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </DescribeLayer>
    <GetLegendGraphic>
      <Format>image/png</Format>
      <Format>image/jpeg</Format>
      <Format>image/png; mode=8bit</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </GetLegendGraphic>
    <GetStyles>
      <Format>text/xml</Format>
      <DCPType>
        <HTTP>
          <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Get>
          <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"/></Post>
        </HTTP>
      </DCPType>
    </GetStyles>
  </Request>
  <Exception>
    <Format>application/vnd.ogc.se_xml</Format>
    <Format>application/vnd.ogc.se_inimage</Format>
    <Format>application/vnd.ogc.se_blank</Format>
  </Exception>
  <VendorSpecificCapabilities />
  <UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1" RemoteWFS="0"/>
  <Layer>
    <Name>WMS</Name>
    <Title>GIS-LAB Demo</Title>
    <Abstract>This is the WMS demo from GIS-Lab</Abstract>
    <SRS>EPSG:4326</SRS>
    <LatLonBoundingBox minx="-11.705" miny="1468.97" maxx="363.771" maxy="1968.27" />
    <Layer queryable="0" opaque="0" cascaded="0">
        <Name>veget</Name>
        <Title>Countries 1</Title>
        <Abstract>Countries 1 test</Abstract>
        <SRS>EPSG:4326</SRS>
        <LatLonBoundingBox minx="37.2273" miny="1515.79" maxx="245.538" maxy="1874.86" />
        <BoundingBox SRS="EPSG:4326"
                    minx="37.2273" miny="1515.79" maxx="245.538" maxy="1874.86" />
        <Style>
          <Name>default</Name>
          <Title>default</Title>
          <LegendURL width="84" height="43">
             <Format>image/png</Format>
             <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=veget&format=image/png&STYLE=default"/>
          </LegendURL>
        </Style>
    </Layer>
    <Layer queryable="0" opaque="0" cascaded="0">
        <Name>mappers</Name>
        <Title>Countries 2</Title>
        <Abstract>Countries 2 test</Abstract>
        <SRS>EPSG:4326</SRS>
        <LatLonBoundingBox minx="-11.7368" miny="1469" maxx="363.739" maxy="1968.3" />
        <BoundingBox SRS="EPSG:4326"
                    minx="-11.7368" miny="1469" maxx="363.739" maxy="1968.3" />
    </Layer>
  </Layer>
</Capability>
</WMT_MS_Capabilities>
QGIS при добавлении WMS слоя по ссылке

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

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&
слои находит:

Изображение
Изображение

В Leaflet ничего не отображает ни при помощи стандартных инструментов:
Спойлер

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

var wmsLayer = L.tileLayer.wms('http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&', {
    layers: 'veget,mappers'
}).addTo(map);		
	

Ни при помощи плагина leaflet.wms.js:
Спойлер

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

var map = L.map('map', {
minZoom: 1,
maxZoom: 5
}).setView([1468.9700,-11.7050], 1); 
map.setMaxBounds(new L.LatLngBounds([1468.9700,-11.7050], [1968.2705,363.7705]));
 		
var source = L.WMS.source("http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&", {
    'transparent': true,
	'tiled': true
});
source.getLayer("veget").addTo(map);
source.getLayer("mappers").addTo(map);
Вопрос: как отобразить WMS в Leaflet, возможно я даю неверную ссылку :?:

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

Re: MapServer WMS в Leaflet

Сообщение Denis Rykov » 29 апр 2016, 03:17

1. В каких единицах измерения вы задаёте начальный охват карты?
2. В какой проекции запрашивает данные Leaflet? Для ответа на это вопрос откройте консоль браузера и посмотрите какие REQUEST=GetMap запросы отправляет на сервер клиент.
Spatial is now, more than ever, just another column- The Geometry Column.

fynjy888
Интересующийся
Сообщения: 35
Зарегистрирован: 06 июл 2015, 23:01
Репутация: 2

Re: MapServer WMS в Leaflet

Сообщение fynjy888 » 29 апр 2016, 08:19

Да, проблема действительно в проекциях.Как посмотреть REQUEST=GetMap я не понял, но подозреваю, что Leaflet запрашивает данные в проекции EPSG:3857 (которая стоит там по стандарту).

Проблема в том, что изначально у меня условная местная план схема, то есть это плоская местная городская система координат. Я поэтому и не задумывался над координатами и задавал просто EPSG:4326 и

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

"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
В общем это вопрос в отдельную ветку. Спасибо Денис

Ответить

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

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

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