Считайте карты WMS Используя различные системы координат

Чтобы считать карту WMS в системе координат EPSG:4326, используйте wmsread функция. EPSG:4326 основан на 1 984 Мировых Геодезических Системах (WGS84) данная величина. Все серверы в Базе данных WMS, и по-видимому все серверы WMS в целом, используют систему координат EPSG:4326. Эта система является требованием спецификации OGC® WMS.

Чтобы считать карту WMS в различной системе координат, создайте запрос URL с помощью WebMapServer и WMSMapRequest объекты и затем читают карту с помощью getMap метод. Для получения дополнительной информации о системах координат, смотрите Пространственную Ссылку.

В этом примере показано, как считать карту WMS с данными в сети Меркаторские координаты, также известные, когда WGS 84/Pseudo-Mercator координирует. Сеть Меркаторская система координат обычно используется веб-приложениями.

Найдите сеть меркаторскими координатами для области

Импортируйте изображение GeoTIFF Бостона как массив и MapCellsReference объект. Найдите спроектированную систему координат для изображения.

[A,R] = readgeoraster('boston.tif');
p_geotiff = R.ProjectedCRS;

Не спроектируйте x-и пределы y-мира и затем повторно спроектируйте их, чтобы использовать сеть Меркаторская система координат (EPSG:3857).

[latlim,lonlim] = projinv(p_geotiff,R.XWorldLimits,R.YWorldLimits);
p_webmercator = projcrs(3857);
[xlimits,ylimits] = projfwd(p_webmercator,latlim,lonlim);

Чтобы получить формирование изображений в этой системе координат, необходимо использовать WMSMapRequest и WebMapServer объекты, потому что wmsread функция только считывает данные в системе координат WGS84 (EPSG:4326).

Считайте и отобразите карту для области

Национальная Карта USGS обеспечивает ортоформирование изображений и карты топографии для различных областей Соединенных Штатов. USGS NAIP Плюс сервер обеспечивает данные и в координатах WGS84 и в сети Меркаторские координаты.

Ищите Базу данных WMS USGS NAIP Плюс сервер и выберите слой Digital Ortho-Quadrangle.

doqLayer = wmsfind('usgsnaipplus','SearchField','serverurl');
doqLayer = wmsupdate(refine(doqLayer,'image'));
doqLayer = refine(doqLayer,'USGSNaip','SearchField','abstract');

Создайте WebMapServer и WMSMapRequest объекты.

server = WebMapServer(doqLayer.ServerURL);
request = WMSMapRequest(doqLayer,server);

Измените запрос карты путем установки свойств WMSMapRequest объект. В данном примере задайте высоту изображения и ширину для объема выборки 5 метров. Установите пределы карты, чтобы покрыть ту же область как файл GeoTIFF.

metersPerSample = 5;
h = round(diff(ylimits)/metersPerSample);
w = round(diff(xlimits)/metersPerSample);

ylimits = [ylimits(1), ylimits(1) + h*metersPerSample];
xlimits = [xlimits(1), xlimits(1) + w*metersPerSample];

request.CoordRefSysCode = 'EPSG:3857';
request.ImageHeight = h;
request.ImageWidth  = w;
request.XLim = xlimits;
request.YLim = ylimits;

Считайте карту ортоформирования изображений в сети Меркаторские координаты.

A_webmercator = getMap(server,request.RequestURL);
R_webmercator = request.RasterReference;

Отобразите ортоформирование изображений на карте.

figure
mapshow(A_webmercator,R_webmercator)
axis tight
title({'USGS Digital Ortho-Quadrangle - Boston', 'Web Mercator'})

Считайте Бостонские названия места из файла форм. Непроект и перепроект названия места так, чтобы они были в сети Меркаторские координаты. Отобразите названия места на карте.

S = shaperead('boston_placenames.shp');
x_names = [S.X] * unitsratio('sf','meter');
y_names = [S.Y] * unitsratio('sf','meter');
names = {S.NAME};

[lat_placenames,lon_placenames] = projinv(p_geotiff, ...
                                          x_names,y_names);
[x_webmercator,y_webmercator] = projfwd(p_webmercator, ...
                                        lat_placenames,lon_placenames);

text(x_webmercator,y_webmercator,names, ...
    'BackgroundColor',[0.9 0.9 0],'FontSize',6,'Clipping','on')

Сравните карту, которую вы читаете от сервера до изображения GeoTIFF.

figure
mapshow('boston.tif')
axis tight
title({'boston.tif', p_geotiff.Name})
text(x_names,y_names,names, ...
    'BackgroundColor',[0.9 0.9 0],'FontSize',6,'Clipping','on')

Можно также сравнить карты при помощи географических осей и спутниковой основной карты. Когда вы строите на географических осях, на координаты ссылаются к системе координат WGS84.

figure
geolimits(latlim,lonlim)
geobasemap('satellite')
text(lat_placenames,lon_placenames,names, ...
    'BackgroundColor',[0.9 0.9 0],'FontSize',6)
title({'Satellite Basemap','WGS84'})

Смотрите также

Функции

Объекты

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте