MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Математика\Mapping Toolbox

В оглавление \ К предыдущему разделу \ К следующему разделу

Система интерактивного поиска городов мира

В этом примере рассмотрено построение карты мира с наиболее крупными городами, береговой линией и континентами. Для этого используется модифицированная азимутальная проекция Briesemeister. Интерактивная карта построена таким образом, что при передвижении указателя мышки по карте, автоматически высвечивается ближайший город, его название и координаты.

Содержание:

Шаг 1:Установка осевых линий карты.

Сформируем осевые линии карты.

figure; axesm bries
text(1.2, -1.8, 'Briesemeister projection', 'FontSize', 8)
framem('FLineWidth',1)

Формирование осевых линий карты

Считаем и визуализируем данные.

load topo
geoshow(topo, topolegend, 'DisplayType', 'texturemap')

Считывание и визуализация данных

Шаг 2: Улучшение отображения топографических особенностей местности.

Сформируем соответствующую палитру для отображения возвышенностей.

demcmap(topo)

Формирование соответствующей палитры для отображения возвышенностей

Сделаем карту более светлой.

brighten(.5)

Осветление карты

Шаг 3: Добавление береговой линии.

Считаем глобальные координаты береговой линии.

load coast

Выведем координаты береговой линии.

[rlat, rlon] = reducem(lat, long, 0.25);

Отобразим береговую линию коричневым цветом.

geoshow(rlat, rlon, 'Color', [.6 .5 .2], 'LineWidth', 1.5)

Отображение береговой линии

Шаг 4: Нанесение на карту месторасположения больших городов с помощью красных маркеров.

Считаем файл, содержащий названия городов мира и их координаты в виде долготы и ширины.

cities = shaperead('worldcities', 'UseGeoCoords', true);

Для получения точек долготы и ширины используется функция extractfield. Далее эти точки наносятся на карту.

lats = extractfield(cities,'Lat');
lons = extractfield(cities,'Lon');
geoshow(lats, lons,...
        'DisplayType', 'point',...
        'Marker', 'o',...
        'MarkerEdgeColor', 'r',...
        'MarkerFaceColor', 'r',...
        'MarkerSize', 3)
text(-2.8,-1.8,'Major World Cities', 'FontSize',8)

Наносим точки на карту

Шаг 5: Выбор городов.

Используя сформированную ранее карту, существует возможность одним кликом мышки выбрать город с отображением в верхнем левом углу его названия и координат:

h1 = text(-2.8, 1.7, 'Click on a dot for its city name');
h2 = text(-2.8, 1.5, 'Press ENTER to stop');

Выбор города

Существует еще один способ определения координат городов мира, а также расстояния между ними.

while true
    [selected_lat,selected_lon] = inputm(1);
    if isempty(selected_lat)
        break % User typed ENTER
    end
    d = distance(lats, lons, selected_lat, selected_lon);
    k = find(d == min(d(:)));
    geoshow(cities(k).Lat, cities(k).Lon, ...
            'DisplayType', 'point', ...
            'Marker', 'o', ...
            'MarkerEdgeColor', 'k', ...
            'MarkerFaceColor', 'y', ...
            'MarkerSize', 3)
    delete(h1,h2)
    h1 = text(-2.8, 1.7, cities(k(1)).Name);
    h2 = text(-2.8, 1.5, ...
           num2str([cities(k).Lat, cities(k).Lon],'%10.2f'));
end
disp('End of input.')

Другой способ определения координат городов


В оглавление \ К предыдущему разделу \ К следующему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика