Страница 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 КБ) 13870 просмотров
 
посмотрел 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 КБ) 13870 просмотров
 
Помогите разобраться, почему на локальном компе в 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 этот плагин тоже не работает?
[ Сообщение с мобильного устройства ]