EPSG:4326 в EPSG:3857

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

EPSG:4326 в EPSG:3857

Сообщение kosyag »

Исходные: Geoserver + OpenLayers
Проблема: Беру WMS-слой из геосервера в СК 3857. Подгружаю KML слой. Делаю преобразование координат для KML слоя:

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

		preFeatureInsert = function(feature) {
				var src = new OpenLayers.Projection('EPSG:4326');
				var dest = new OpenLayers.Projection('EPSG:3857');
				feature.geometry.transform(src, dest); 
			};

			graphic = new OpenLayers.Layer.GML("KML", 
					"testkml/test6.kml", {preFeatureInsert:preFeatureInsert,
					format: OpenLayers.Format.KML,
					displayProjection: new OpenLayers.Projection("EPSG:3857"),
					formatOptions: {
						extractStyles: true,
						extractAttributes: true,
				}});
В результате в европейской части РФ всё ОК, в в восточной сибири получается смещение слоя KML на север километров на 20. Пробовал использовать Proj4js напрямую. Пробовал задавать WMS слой в СК 41001 и 900913. Результат одинаков.
В чём может быть проблема?
Последний раз редактировалось kosyag 29 мар 2010, 11:07, всего редактировалось 1 раз.
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: EPSG:4326 в EPSG:3857

Сообщение Дмитрий Барышников »

А если сделать наоборот? По моему преобразование из Spherical Mercator в WGS84 есть, а наоборот - нет
kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

Re: EPSG:4326 в EPSG:3857

Сообщение kosyag »

Попробовал. В геосервере в настройках слоя оставил нативную СК EPSG:3857, declared - EPSG:4326. Выбрал "Reproject Native to declared". В результате Lat/Lon Bounding Box у меня пересчитался в МЕТРЫ! :) "Нич-чего не понимаю." (с)
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей