OpenLayers и WFS (GeoServer)

Решенные задачи, первая запись - описание решения.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: OpenLayers и WFS (GeoServer)

Сообщение Mavka » 12 ноя 2010, 14:57

Приведенный код это все содержимое ответа прокси? Ниже в сообщениях об ошибках мелькают какие то координаты и FeatureCollection.
лангольеры под окном жрали время ом-ном-ном

eternal
Интересующийся
Сообщения: 26
Зарегистрирован: 26 июл 2010, 17:45
Репутация: 0

Re: OpenLayers и WFS (GeoServer)

Сообщение eternal » 13 ноя 2010, 17:28

Нашел, в первой ошибке firebug выделена синим цветом строка

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

<ows:ExceptionReport version="1.0.0"
а у меня в коде было написано (см. версию wfs)

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

	var wfs = new OpenLayers.Layer.Vector('Слой WFS', {
        strategies: [new OpenLayers.Strategy.Fixed({preload: true})],
        protocol: new OpenLayers.Protocol.WFS({
            version: '1.1.0',
            url: 'http://localhost:8080/geoserver/wfs',
            featureType: 'belgorod-bound',
            featureNS: 'http://my.ru',
            srsName: 'EPSG:4326'
        }),
        visibility: true
    });
исправил на 1.0.0 и заработало, появился слой wfs
я конечно все равно не понял почему не работало с этой версией, у вас то работает....
может быть у меня где то какая то несовместимость :D

eternal
Интересующийся
Сообщения: 26
Зарегистрирован: 26 июл 2010, 17:45
Репутация: 0

Re: OpenLayers и WFS (GeoServer)

Сообщение eternal » 22 ноя 2010, 18:35

Еще вопрос возник: добавлял на карту разные слои и вот что выдал firebug
POST http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Fdemo.opengeo.org%2Fgeoserver%2Fwfs
502 Bad Gateway 229ms

This proxy does not allow you to access that location (demo.opengeo.org)

в прокси скрипте добавлены сайты :

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

allowedHosts = ['localhost','localhost:8080','www.openlayers.org','http://demo.opengeo.org/geoserver/wfs',
'www.opengeo.org','demo.opengeo.org','www.opengis.net','demo.opengeo','www.demo.opengeo.org']
как добавить сайт правильно

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: OpenLayers и WFS (GeoServer)

Сообщение Mavka » 22 ноя 2010, 22:18

Нужно ip или dns-имя. Например так:

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

allowedHosts = ['localhost','localhost:8080','www.openlayers.org','demo.opengeo.org'] 
У вас должно работать, ошибок не вижу.
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: OpenLayers и WFS (GeoServer)

Сообщение Mavka » 02 дек 2010, 10:04

По разговору в ирке о работе с WFS без прокси.
Свежий трэд в списке рассылки - WFS without proxy.
лангольеры под окном жрали время ом-ном-ном

valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

Re: OpenLayers и WFS (GeoServer)

Сообщение valeria » 06 июн 2011, 13:42

URL - http://localhost:8080/geoserver/wfs-это url у меня не работает,скажу сразу про порты прописываю свои, версия геосервера 2.1-RC5,первая загрузачная страница http://localhost:9090/geoserver/web/, подскажите что я недопонимаю,как добавлять wfc ,и как к нему прикрутить openlayers?

Аватара пользователя
qnx
Участник
Сообщения: 61
Зарегистрирован: 13 апр 2012, 12:10
Репутация: 0
Откуда: город-герой Киев

Re: OpenLayers и WFS (GeoServer)

Сообщение qnx » 30 апр 2012, 11:47

этот способ очень помог, но путем php proxy
proxy.php

путь к прокси

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

OpenLayers.ProxyHost = "/py/proxy.php?url=";
вот его исходник

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

<?php
// PHP Proxy
// Responds to both HTTP GET and POST requests
//
// Author: Abdul Qabiz
// March 31st, 2006
//

// Get the url of to be proxied
// Is it a POST or a GET?
$url = ($_POST['url']) ? $_POST['url'] : $_GET['url'];
$headers = ($_POST['headers']) ? $_POST['headers'] : $_GET['headers'];
$mimeType =($_POST['mimeType']) ? $_POST['mimeType'] : $_GET['mimeType'];


//Start the Curl session
$session = curl_init($url);

// If it's a POST, put the POST data in the body
if ($_POST['url']) {
   $postvars = '';
   while ($element = current($_POST)) {
      $postvars .= key($_POST).'='.$element.'&';
      next($_POST);
   }
   curl_setopt ($session, CURLOPT_POST, true);
   curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
}

// Don't return HTTP headers. Do return the contents of the call
curl_setopt($session, CURLOPT_HEADER, ($headers == "true") ? true : false);

curl_setopt($session, CURLOPT_FOLLOWLOCATION, true); 
//curl_setopt($ch, CURLOPT_TIMEOUT, 4); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// Make the call
$response = curl_exec($session);

if ($mimeType != "")
{
   // The web service returns XML. Set the Content-Type appropriately
   header("Content-Type: ".$mimeType);
}

echo $response;

curl_close($session);

?>
п.с. для linux debian портебовалось установить пакет curl

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

apt-get install php5-curl
КОЖЗГСФ

bav55
Новоприбывший
Сообщения: 8
Зарегистрирован: 05 дек 2013, 06:25
Репутация: 0

Не могу разобраться с proxy

Сообщение bav55 » 02 сен 2014, 12:48

Здравствуйте! Не первый день бьюсь и пока безрезультатно. Очень прошу совета:
1. Есть сайт, в котором есть приватная часть (работает через ssl)
2. С одной из таких страниц необходимо работать с картой. Картсервер работает на geoserver и расположен на другом хосте.
3. Сайт крутится на nginx, и я никак не могу найти, как запускать из-под него штатный скрипт proxy.cgi от OpenLayers, поэтому танцую от proxy.php (тут выше о нем упоминали)
4. Никак не работает перенаправление на порт 8080. если я указываю, например: http:site.com/proxy.php?url=www.ya.ru - отображается яндекс, все хорошо. Но если я укажу: http://site.com/proxy.php?url=http://ge ... server/wfs то все висит и обрубается по таймауту.
5. Если просто в браузере пишу: http://geo.tbki.ru:8080/geoserver/wfs - получаю ответ от geoserver-а.
6. Если пробую подключить нужные мне слои через wfs в QGIS - подключаются. (wms тоже работает, но для него прокси не нужен, как я понял)
7. Если же пробую один из слоев подключить через wfs из OpenLayers - внешне ничего не видно (слой подключается, но он пустой) и в логах получаю ошибку (см. приложенный файл)
8. Уже кое-что постепенно получается с OpenLayers (через wms спокойно таскаю внешние данные и свои), но как дошел до wfs - увидел, что с прокси проблема и пока ее не решу - дальше не получится...

Буду очень признателен за совет.
Вложения
screenshot-01.JPG
screenshot-01.JPG (162.75 КБ) 3963 просмотра

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

Re: OpenLayers и WFS (GeoServer)

Сообщение Denis Rykov » 02 сен 2014, 19:42

Проверьте логи GeoServer-а - подозреваю, что до него запросы от вашего скрипта даже не доходят.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Рецепты»