2016-05-24 18 views
2

Я новичок в OpenLayers и буду благодарен за любую помощь, которую я могу получить. Как вы конвертируете из пиксельных координат в lat/lon? Я использую Ol3 для просмотра и рисовать функции на статическое изображение (6494 х 7687 JPG) с помощью проекции:OpenLayers 3 Преобразование пиксельных координат в Lat Long

var projection = new ol.proj.Projection({ 
    code: 'xkcd-image', 
    units: 'pixels', 
    extent: [0, 0, 6494, 7687] 
    }); 

В конце polygan дро у меня есть это, который работает отлично:

draw.on('drawend', function (event) { 
    var coord = event.feature.getGeometry().getCoordinates(); 
    console.log("YOU DREW A Polygon with coord="+coord); 
}); 

Есть ли простой способ конвертировать приведенные выше пиксельные координаты многоугольника в координаты Lat/Lon? У меня есть лат/lons из четырех углов изображения.

ответ

3

Вместо определения проекции пользовательского пикселя, настроить статический источник изображения с imageExtent набором ваших угловых координат и установите его проекцию 'EPSG:4326':

new ol.source.ImageStatic({ 
    // ... 
    imageExtent: [minLon, minLat, maxLon, maxLat], 
    projection: 'EPSG:4326' 
}) 

Если вы хотите, чтобы показать изображение без искажаются , вам необходимо настроить свой вид с помощью projection: 'EPSG:4326'. Затем вы будете работать с географическими координатами.

Нечто похожее также показано в одном из официальных примеров: http://openlayers.org/en/latest/examples/reprojection-image.html. Разница заключается в том, что здесь используется растровая репроцессия, потому что изображение и представление находятся в разных проекциях.

+0

Спасибо за быстрый ответ. Это имеет большой смысл. Мне нужно сохранить как координаты lat/lon, так и координаты пикселей. Насколько сложно было бы теперь преобразовать координаты lat/lon в координаты пикселей? Еще раз спасибо. – Morey

Смежные вопросы