Страница 1 из 2
GEOSERVER не показывает SHP
Добавлено: 06 ноя 2009, 22:09
Hellcat
Помогите пожалуйста со следующей проблемой.
Есть набор слоев в формате SHP сделанный из примера ГИС Панорама (Подольск). Есть GeoServer 2.0.0.
Без проблем загружаются SHP содержащие полигоны. Отображаются тоже правильно. Слои содержащие линии (авто дороги) показываются как одна короткая линия в странном месте экрана. Скачал фриварный вьювер SHP посмотрел на этот файлик - все нормально показывает дороги. В Гео сервере менял настройки слоя EPSG:4326 (в других слоях это работает) + настройки публикации (стили слоя) poly, line, points и т.д. при любом раскладе показывает одну маленькую линию вместо разветвленной сети. В случае полигона закрашивает чуть чуть серым.
Подскажите где еще что можно подкрутить попробовать?
PS Скаченная USA карта дорог из линий показывается на ура.
PPS Уверен что проблема плевая, но блин весь вечер пятницы убил на это и не решил. Обидно.
Заранее благодарен.
Re: GEOSERVER не показывает SHP
Добавлено: 07 ноя 2009, 03:01
Максим Дубинин
А какая исходная система координат данных?
Re: GEOSERVER не показывает SHP
Добавлено: 07 ноя 2009, 11:48
Mavka
Может экстент неправильный?
Re: GEOSERVER не показывает SHP
Добавлено: 08 ноя 2009, 17:08
Hellcat
я так полагаю что исходная система WGS 84 потому что остальные SHP из этого комплекта отображаются корректно.
Re: GEOSERVER не показывает SHP
Добавлено: 08 ноя 2009, 17:11
Hellcat
Mavka писал(а):Может экстент неправильный?
Хм.... может быть. Проблема в том что я не знаю что это и где смотреть. Подскажите пожалуйста.
Re: GEOSERVER не показывает SHP
Добавлено: 09 ноя 2009, 08:53
churilova
В геосервере экстент можно посмотреть при редактировании типа объектов, если у вас русская версия, то это называется "Охват" (там 4 числа: Минимальная долгота, Минимальная широта, Максимальная долгота и Максимальная широта).
Первоначальный экстент задается при формировании карты, например так:
Код: Выделить всё
var bounds = new OpenLayers.Bounds(21898.8486328125, 38743.3703125, 56326.2490234375, 66046.6765625);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: "auto",
projection: "EPSG:4326",
units: 'm'
};
map = new OpenLayers.Map('map', options);
Посмотреть текущий экстент можно с помощью функции getExtent (map.getExtent();).
Re: GEOSERVER не показывает SHP
Добавлено: 09 ноя 2009, 09:30
Hellcat
churilova писал(а):В геосервере экстент
.....
Посмотреть текущий экстент можно с помощью функции getExtent (map.getExtent();).
У меня английский ГЕО Сервер. Похоже что Bounds выставлены правильно. Границы точно такие же как и в SHP с полигонами который отображается корректно. Значения крайних точек автоматически считались из файла с данными при добавлении этого слоя.
min x:37,489
min y:55,321
max x:38,004
max y:55,679
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 11:52
Hellcat
Может быть еще у кого-то есть варианты?
Cамостоятельно я так и не победил эту проблему.
Кто-нибудь может попробовать у себя поcмотреть этот несчастный SHP? Может все-таки проблема в файле?
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 12:00
Mavka
Если пару мегабайт, то давай я посмотрю на своем GeoServer'е.
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 13:22
Hellcat
Mavka писал(а):Если пару мегабайт, то давай я посмотрю на своем GeoServer'е.
Отправил архив письмом. Стукнись в аську 71404394 если вопросы будут или не получишь.
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 13:49
Mavka
GDAL/OGR ошибок не показывает, но после ogr2ogr файлы стали читаться GeoServer'ом
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 15:16
Hellcat
Mavka писал(а):GDAL/OGR ошибок не показывает, но после ogr2ogr файлы стали читаться GeoServer'ом
Cпасибо огромное за помощь!!!
Скиньте пожалуйста строчку конвертации для ogr2ogr после которой заработало. Спасибо.
Re: GEOSERVER не показывает SHP
Добавлено: 10 ноя 2009, 16:52
Mavka
Hellcat
Я отправлял вам личное сообщение:
ogr2ogr output.shp PODOLSK_LIN_layer5.shp
Re: GEOSERVER не показывает SHP
Добавлено: 18 ноя 2009, 16:50
fati
Ребята, помогите пожалуйста, я новичек, пробую загрузить карту использую Геосервер 1.7.3, но она не отображается, хотя при перемещении курсора загрузка картинки идет, но не видно ни карты ни навигационной панели.
Код: Выделить всё
<head>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="OpenLayers.js"></script>
<script type="text/javascript">
var lon = 5;
var lat = 40;
var zoom = 5;
var map, layer;
function init(){
map = new OpenLayers.Map( 'map' );
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://10.1.1.251:8080/geoserver/wms", {layers: 'topp:states'} );
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.addControl( new OpenLayers.Control.LayerSwitcher() );
}
</script>
</head>
<body onload="init()">
<h1 id="title">WMS test</h1>
<div id="tags">
</div>
<p id="shortdesc">
Shows the basic use of openlayers using a WMS layer
</p>
<div id="map" class="smallmap"></div>
<div id="docs">First Example </div>
</body>
</html>
а еще, когда я из превью открываю карту и подгружаю к ней карту OpenStreetMap, то OSM -видна,а мой слой нет, как это исправить?
Re: GEOSERVER не показывает SHP
Добавлено: 18 ноя 2009, 17:32
Mavka
1. Что такое "превью"? Если это которое в GeoServer > Demo > Map Preview, то как к нему вы загружаете OSM?
2. Попробуйте при создании карты явно указать проекцию:
Код: Выделить всё
map = new OpenLayers.Map('map', {
units: 'dd',
projection: new OpenLayers.Projection('EPSG:4326'),
maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90)
}
3. Что говорит Firebug из Firefox? Посмотрите что падает в "Консоль" и что запрашивается в разделе "Сеть".
P.S. Посмотрел ваш предыдущий топик. Если в Map Preview карта отображается правильно, то посмотрите код той страницы и скопируйте функцию init() до строки "// wire up the option button". Удалите блок с pureCoverage. Все, теперь должно работать. Дальше уже экспериментируйте. (У меня есть некоторые сомнения, в старых версиях GeoServer код был слабочитаемым. В 1.7.3 уже исправляли или нет...)