Страница 1 из 2
как подключить WFS в Leaflet
Добавлено: 07 июл 2016, 16:43
gornak
Помогите разобраться!
опубликовал WFS сервис на Nextgis.com и на QGISCloud
не могу подключить в leaflet (использую плагин
https://github.com/Flexberry/Leaflet-WFST)
по-видимому ругается параметр typeNS:
насколько понимаю данные сервисы не создают NameSpace (проверяю ?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities)
пример кода:
Код: Выделить всё
var boundaries = new L.WFS({
url: 'http://mygis.nextgis.com/api/resource/6/wfs',
typeNS: '',
typeName: 'kvly',
crs: L.CRS.EPSG3857,
geometryField: 'geom',
style: {
color: 'blue',
weight: 2
}
}).addTo(map);
ошибок не выдает, просто не подключает данные
Re: как подключить WFS в Leaflet
Добавлено: 08 июл 2016, 07:41
Denis Rykov
А я думаю, что проблема тут вовсе не в typeNS, а банально CORS.
Re: как подключить WFS в Leaflet
Добавлено: 08 июл 2016, 19:30
gornak
Denis Rykov писал(а):а банально CORS
то есть CRS?
QGISCloud раздает в 4326, проблема та же
и получается с NEXTGIS.com вообще не подключить?
Re: как подключить WFS в Leaflet
Добавлено: 08 июл 2016, 21:16
Denis Rykov
Нет, именно
CORS. Пока да, WFS сервисы с nextgis.com не подключить в своё веб приложение (можно конечно, если вы сможете развернуть прокси на том же домене, что и ваша leaflet карта), думаем что можно сделать.
Re: как подключить WFS в Leaflet
Добавлено: 11 июл 2016, 09:46
gornak
Denis Rykov писал(а): WFS сервисы с nextgis.com не подключить в своё веб приложение
в то же время WMS подключается без проблем,в чем разница?
Denis Rykov писал(а):думаем что можно сделать
следует ждать обновления сервиса?будет ли публиковаться новость о появлении данной возможности?
Re: как подключить WFS в Leaflet
Добавлено: 11 июл 2016, 11:46
Denis Rykov
gornak писал(а):в то же время WMS подключается без проблем,в чем разница?
Разница в том, что в одном случае используется AJAX, в другом - нет.
gornak писал(а):следует ждать обновления сервиса?будет ли публиковаться новость о появлении данной возможности?
Конечно стоит, мы обязательно об этом сообщим.
Re: как подключить WFS в Leaflet
Добавлено: 20 июл 2016, 08:23
gornak
Denis Rykov писал(а):Пока да, WFS сервисы с nextgis.com не подключить в своё веб приложение
Может кто знает, на каких облачных сервисах можно разместить данные таким образом, чтобы их можно было редактировать по WFS-T через leaflet расположенный на другом домене? Или может в облаке предоставляется дисковое пространство, на котором можно разместить html страницу, чтобы обойти COSR?
Re: как подключить WFS в Leaflet
Добавлено: 27 июл 2016, 11:46
SergeyRyzhkov
Попробуйте Перед вашим урлом к сервису приписать прокси, например
http://crossorigin.me
Например
http://crossorigin.me/http://[ваш урл]
Re: как подключить WFS в Leaflet
Добавлено: 19 сен 2016, 11:38
gornak
SergeyRyzhkov писал(а):Попробуйте Перед вашим урлом к сервису приписать прокси, например
Попробовал не смотря на
Denis Rykov писал(а):Пока да, WFS сервисы с nextgis.com не подключить в своё веб приложение
, результат следующий:
для WMS работает,
а для WFS ошибка см. картинку

- ошибка1.png (118.34 КБ) 13456 просмотров
посмотрел POST запрос:
Код: Выделить всё
<wfs:DescribeFeatureType xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0"><TypeName
>:kvly</TypeName></wfs:DescribeFeatureType>
,отправил через RESTClient:
если обращаться напрямую на nextgis то
приходит нормальный ответ, если через прокси, то такой же как и на картинке
при этом, если запускать собственно скрипт с прямым адресом(страница и все скрипты на локальном компьютере) то ошибка следующая(CORS)

- ошибка2.png (126.12 КБ) 13456 просмотров
Помогите разобраться, почему на локальном компе в qgis и через RESTClient сервис доступен, а через leaflet и прокси нет причем в случае прокси вроде как CORS не ругается. Есть ли еще идеи как решить проблему подключения слоя?
Re: как подключить WFS в Leaflet
Добавлено: 19 сен 2016, 12:51
Denis Rykov
Re: как подключить WFS в Leaflet
Добавлено: 19 сен 2016, 13:44
Denis Rykov
В качестве временного решения можно попробовать следующие плагины:
https://addons.mozilla.org/ru/firefox/a ... verywhere/ (Firefox)
https://chrome.google.com/webstore/deta ... ihlkkiljbi (Chrome)
И ещё, на время тестирования лучше уменьшить максимальное количество отдаваемых фич для слоя.
Re: как подключить WFS в Leaflet
Добавлено: 20 сен 2016, 10:28
gornak
Спасибо,за совет!
Насчет прокси понял, что он не поддерживает POST запросы.
Попробовал плагины,результат следующий:
в консоль приходит ответ с координатами, но слой
не отрисовывается может из-за того, что пришлось внести изменения в код плагина WFST - убрать двоеточие(хотя для DescribeFeatureType работает с двоеточием) , разделяющее NameSpase(которого по сути нет??) и Name, написал разработчикам, вот страница проблемы
https://github.com/Flexberry/Leaflet-WFST/issues/25 , там приложены скрины и код.
Но я все равно не понимаю, почему ни
QGIS ни RestClient ни обычному GET-CORS не мешает ???Ведь все запускается с одного и того же локального хоста...или дело в XHR ?
Re: как подключить WFS в Leaflet
Добавлено: 20 сен 2016, 11:26
Denis Rykov
Насчёт namespace, он есть, так что код можно было для этого не трогать:
Я проверил - координаты и у меня приходят, но слой на карте не отрисовывается, хотя никаких ошибок в консоли нет. Посмотрю код.
Что касается CORS, то он имеет смысл только в контексте браузера, QGIS и прочие плагины к нему никакого отношения не имеют.
Re: как подключить WFS в Leaflet
Добавлено: 20 сен 2016, 11:58
kuzkok
Объекты не парсятся потому что плагин писался под WFS версии 1.1.0, в частности там есть жестко зашитые namespace'ы xml:
Код: Выделить всё
L.XmlUtil = {
// comes from OL
namespaces: {
xlink: "http://www.w3.org/1999/xlink",
xmlns: "http://www.w3.org/2000/xmlns/",
xsd: "http://www.w3.org/2001/XMLSchema",
xsi: "http://www.w3.org/2001/XMLSchema-instance",
wfs: "http://www.opengis.net/wfs",
gml: "http://www.opengis.net/gml",
а сервер nextgis работает в версии WFS 2.0.0, даже если и затребована другая версия.
Для того чтобы заработало в частном случае можно подправить значения для полей wfs и gml:
Код: Выделить всё
wfs: "http://www.opengis.net/wfs/2.0",
gml: "http://www.opengis.net/gml/3.2",
[/s]
хотя нет не поможет, ещё в нескольких местах есть жёстко забитые строки под стандарт 1.1.0
Re: как подключить WFS в Leaflet
Добавлено: 20 сен 2016, 13:54
Denis Rykov
NextGIS умеет WFS 1.0 и 2.0, с 1.0 этот плагин тоже не работает?
[ Сообщение с мобильного устройства ]