OpenLayers и WFS (GeoServer)
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: OpenLayers и WFS (GeoServer)
Приведенный код это все содержимое ответа прокси? Ниже в сообщениях об ошибках мелькают какие то координаты и FeatureCollection.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 26
- Зарегистрирован: 26 июл 2010, 17:45
- Репутация: 0
Re: OpenLayers и WFS (GeoServer)
Нашел, в первой ошибке firebug выделена синим цветом строка
а у меня в коде было написано (см. версию wfs)
исправил на 1.0.0 и заработало, появился слой wfs
я конечно все равно не понял почему не работало с этой версией, у вас то работает....
может быть у меня где то какая то несовместимость
Код: Выделить всё
<ows:ExceptionReport version="1.0.0"
Код: Выделить всё
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
});
я конечно все равно не понял почему не работало с этой версией, у вас то работает....
может быть у меня где то какая то несовместимость
-
- Интересующийся
- Сообщения: 26
- Зарегистрирован: 26 июл 2010, 17:45
- Репутация: 0
Re: OpenLayers и WFS (GeoServer)
Еще вопрос возник: добавлял на карту разные слои и вот что выдал 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)
в прокси скрипте добавлены сайты :
как добавить сайт правильно
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
- Репутация: 9
Re: OpenLayers и WFS (GeoServer)
Нужно ip или dns-имя. Например так:
У вас должно работать, ошибок не вижу.
Код: Выделить всё
allowedHosts = ['localhost','localhost:8080','www.openlayers.org','demo.opengeo.org']
лангольеры под окном жрали время ом-ном-ном
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: OpenLayers и WFS (GeoServer)
По разговору в ирке о работе с WFS без прокси.
Свежий трэд в списке рассылки - WFS without proxy.
Свежий трэд в списке рассылки - WFS without proxy.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 38
- Зарегистрирован: 19 май 2011, 16:27
- Репутация: 0
Re: OpenLayers и WFS (GeoServer)
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)
этот способ очень помог, но путем php proxy
proxy.php
путь к прокси
вот его исходник
п.с. для linux debian портебовалось установить пакет curl
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);
?>
Код: Выделить всё
apt-get install php5-curl
КОЖЗГСФ
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 05 дек 2013, 06:25
- Репутация: 0
Не могу разобраться с proxy
Здравствуйте! Не первый день бьюсь и пока безрезультатно. Очень прошу совета:
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 - увидел, что с прокси проблема и пока ее не решу - дальше не получится...
Буду очень признателен за совет.
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 (162.75 КБ) 18854 просмотра
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: OpenLayers и WFS (GeoServer)
Проверьте логи GeoServer-а - подозреваю, что до него запросы от вашего скрипта даже не доходят.
Spatial is now, more than ever, just another column- The Geometry Column.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость