MS+OL: Проблемы с картой в локальной СК
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
MS+OL: Проблемы с картой в локальной СК
А в чем косяк может быть: на карте в левом нижнем углу (я так понимаю - 0;0) жирная точка и карту не возможно перетянуть. Такое может быть из-за незамкнутых контуров?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
подробнее, пожалуйста, условия, код, тип данных
если вы берете слой из MS как WMS, то это растр, какие еще незамкнутые контура?
если вы берете слой из MS как WMS, то это растр, какие еще незамкнутые контура?
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
Данные беру из OpenGIS (dxf->esri->opengis). Далее создаю слой WMS и его отображаю OpenLayers'ом.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
Ага, карту нельзя сдвинуть дальше точки (0;0).
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
http://i42.tinypic.com/1217n0h.png (fullscreen)
картинку получается двигать только вправо или вверх. а влево и вниз никак.
openlayers (index.html)
Код: Выделить всё
<html>
<head>
<title>OpenLayers Example</title>
<script src="OpenLayers.js"></script>
<script defer="defer" type="text/javascript">
function init() {
var map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS("house",
"http://10.10.10.120/cgi-bin/mapserv?map=/ms4w/apps/gtn/web.map&",
{layers: 'house', format: 'png', transparent: 'off' },
{ projection:"EPSG:4326", units: 'm', singleTile: true}
);
map.addLayer(wms);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.Permalink());
map.addControl(new OpenLayers.Control.Permalink('permalink'));
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.OverviewMap());
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}
</script>
</head>
<body onload="init();">
<div style="width:100%; height:100%" id="map"></div>
</body>
map.zoomToMaxExtent();
</html>
Код: Выделить всё
MAP
NAME "WMS"
STATUS ON
IMAGETYPE PNG
EXTENT 0.00 0.00 360.00 360.00
SIZE 640 480
WEB
#TEMPLATE "/ms4w/apps/gtn/templates/template.html"
TEMPLATE "template.html"
IMAGEPATH "/ms4w/tmp/ms_tmp/"
IMAGEURL "/ms4w/tmp/ms_tmp/"
METADATA
wms_title "GTN map"
wms_abstract "This is the GTN demo from GIS-Lab"
wms_onlineresource "http://localhost/cgi-bin/mapserv?map=/ms4w/apps/gtn/web.map&"
wms_srs "EPSG:4326"
wms_getfeatureinfo "http://localhost/cgi-bin/mapserv?map=/ms4w/apps/gtn/web.map&"
wms_featureinfoformat "text/plain"
END
END
PROJECTION
#"init=epsg:4326"
"proj=latlong"
"ellps=WGS84"
"datum=WGS84"
END
LAYER
NAME "house"
CONNECTIONTYPE postgis
CONNECTION "user=xxx password=xxx dbname=gis host=10.10.10.120"
DATA "the_geom from house using unique gid unique srid 4326"
STATUS ON
TYPE LINE
CLASS
COLOR 200 120 123
EXPRESSION ([mark]>0)
END
CLASS
COLOR 0 100 200
EXPRESSION ([mark]=0)
END
END
END
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
первое что бросается в глаза
это нереальный охват для заявленной СК, вы уверены, что он соответствует вашим данным?EXTENT 0.00 0.00 360.00 360.00
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
А даже если написать 0.00 0.00 10.00 10.00 результат вывода не изменяется, что удивительно
UPD: попрбовал ввести точные координаты своего города - все равно не помогло. Может быть нужно конвертировать в какую-то локальную систему координат, а не EPSG:4326?
UPD: попрбовал ввести точные координаты своего города - все равно не помогло. Может быть нужно конвертировать в какую-то локальную систему координат, а не EPSG:4326?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
наверное потому что это тоже неправильный охватn0ip писал(а):А даже если написать 0.00 0.00 10.00 10.00 результат вывода не изменяется, что удивительно
знаете ли вы правильный? в какой системе координат исходные данные адресуемые в map-файле реально?
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
во-первых, хочу поблагодарить sim за помощь
мм... довольно сложный вопрос, т.к. вопросами веб-картографии я начал заниматься относительно недавно.
расскажу что я делал поэтапно:
- Взял карту в формате DXF, нарисованную в компасе или автокаде.
- Сконвертировал ее при помощи программы DXF2SHAPEFILE. Получил на выходе шейпы в ESRI-формате.
- Запустил консольную утилиту shp2pgsql с параметром -s 4326. <- видимо, отсюда у моей ошибки и растут ноги. в идеале, конечно, было бы выбрать какую-нибудь систему координат локальную, что ли... Т.к. есть ощущение, что моя карта натягивается на всю планету и когда я ее двигаю - то она просто выходит за "рамки". Посмотрел OpenLayers.js, нашел параметр который отвечает за проверку валидности координат (isValidLonLat), после комментирования карта начинает двигаться, но если увеличивать - то поведение непредсказуемое.
Мап-файл составлял сам, собственно, его исходник приведен выше.
Еще раз спасибо за помощь
мм... довольно сложный вопрос, т.к. вопросами веб-картографии я начал заниматься относительно недавно.
расскажу что я делал поэтапно:
- Взял карту в формате DXF, нарисованную в компасе или автокаде.
- Сконвертировал ее при помощи программы DXF2SHAPEFILE. Получил на выходе шейпы в ESRI-формате.
- Запустил консольную утилиту shp2pgsql с параметром -s 4326. <- видимо, отсюда у моей ошибки и растут ноги. в идеале, конечно, было бы выбрать какую-нибудь систему координат локальную, что ли... Т.к. есть ощущение, что моя карта натягивается на всю планету и когда я ее двигаю - то она просто выходит за "рамки". Посмотрел OpenLayers.js, нашел параметр который отвечает за проверку валидности координат (isValidLonLat), после комментирования карта начинает двигаться, но если увеличивать - то поведение непредсказуемое.
Мап-файл составлял сам, собственно, его исходник приведен выше.
Еще раз спасибо за помощь
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: MapServer+OpenLayers. Так и должно быть или моя ошибка?
пожалуйста, только я не понял, решилась ли проблема. Если еще нет, то для начала нужно попробовать SRID = -1 вместо 4326.
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MS+OL: Проблемы с картой в локальной СК
*не, не заработало...
мне что-то подсказывает, что проблема в openlayers.
epsg -1 можно указать при занесении в базу данных
и в SQL-запросе. в остальных случаях орет, что такой системы координат не знает.
мне что-то подсказывает, что проблема в openlayers.
epsg -1 можно указать при занесении в базу данных
и в SQL-запросе. в остальных случаях орет, что такой системы координат не знает.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MS+OL: Проблемы с картой в локальной СК
Что-то мне подумалось - а может быть карта после конвертации остается в локальной системе координат?.. Я же нигде не указываю зону куда ее привязать.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MS+OL: Проблемы с картой в локальной СК
1. Итак, опытным путем выяснил, что сервер выдает полностью карту с параметрами
по запросу:
http://10.10.10.120/mapserv?map=web.map ... e&mode=map
2. как выполнить пересчет широты/долготы в формат, который понимает openlayers (какие-то ужасные здоровые цифры)
Код: Выделить всё
EXTENT 10 -5 550 600
http://10.10.10.120/mapserv?map=web.map ... e&mode=map
2. как выполнить пересчет широты/долготы в формат, который понимает openlayers (какие-то ужасные здоровые цифры)
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: MS+OL: Проблемы с картой в локальной СК
вы можете приложить один из слоев с которым можно было бы поэкспериментировать? любой, лучше если будет представлять охват территории целиком, какую-нибудь общую границу например, гляну, самому интересно
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 13 ноя 2008, 18:55
- Репутация: 0
Re: MS+OL: Проблемы с картой в локальной СК
с координатами - на сладкое оставлю (: пока пусть с такими огромными работает, бог с ним.
как разберусь - обязательно напишу в чем косяк был. вдруг кто еще столкнется.
сейчас интересует как можно сделать - http://mercantouralpimarittime.com/
т.е. к примеру подсветить дом на моей карте. в сторону GML копать надо?
как разберусь - обязательно напишу в чем косяк был. вдруг кто еще столкнется.
сейчас интересует как можно сделать - http://mercantouralpimarittime.com/
т.е. к примеру подсветить дом на моей карте. в сторону GML копать надо?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей