ГИС Карта

Фигура ГИС Карта, которую вы можете найти в палитре Разметка пространства, позволяет вам отображать и управлять ГИС (Географическая Информационная Система) в ваших моделях. Фигура ГИС Карта поддерживает два типа карт:

С помощью фигуры ГИС Карта Вы можете отображать любой из этих типов карт, а также оба типа сразу как наложенные друг на друга слои. Также вы можете добавлять на карту специальные элементы разметки: точки, маршруты и регионы.  

Карта ГИС в AnyLogic поддерживает только географическую систему координат в равноугольной цилиндрической проекции Меркатора.

При наличии активного доступа к сети Интернет на вашем компьютере, тайловый слой карты загрузится автоматически, как только вы добавите фигуру ГИС Карта на диаграмму типа агента, и вы сможете сразу же начать ей пользоваться.

Вы можете добавить только одну фигуру ГИС Карта на диаграмму агента. Когда вы добавляете карту на диаграмму агента, вы задаете тип пространства для всех агентов, которые будут жить в этой среде (на диаграмме этого агента), как пространство ГИС

Чтобы добавить карту ГИС

  1. Перетащите элемент ГИС Карта  из секции ГИС палитры Разметка пространства на графическую диаграмму. 

  2. Вы можете отредактировать сначала саму фигуру: одним из частых решений в моделях с картами ГИС является карта, которая заполняет все окно модели, при этом запрещается перетаскивание для самого окна презентации.
  3. Далее вам может понадобиться редактировать карту внутри фигуры: перемещаться по ней или изменять ее масштаб, чтобы выбрать ту местность, которую вы хотите использовать в модели.
  4. Также вы можете использовать поиск по карте, чтобы добавить найденные места в модель.
  5. При необходимости добавьте объекты разметки ГИС пространства с помощью панели Поиск ГИС элементов или перетащите их из палитры Разметка пространства.
  6. Вы можете расположить агентов в пространстве с помощью элементов разметки ГИС или программным методом. 
  7. Маршруты на ГИС карте загружаются автоматически с помощью поддерживаемых поставщиков маршрутов. Но вы также можете построить маршруты из файла или добавить их вручную.

Свойства

Основные

Имя – Имя карты. Имя используется для идентификации и обращения к карте из кода.

Исключить – Если опция выбрана, то карта будет исключена из модели.

Отображается на верхнем уровне – Если опция выбрана, то карта будет видна на презентации типа агента, в который будет вложен данный агент.

Блокировать – Если опция выбрана, то фигура будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока вы не снимете с нее блокировку.  

Видимость – Если опция выбрана, то фигура будет отображаться на презентации во время выполнения модели.

Тайлы

Отображать тайлы – Эта опция включена по умолчанию. Снимите флажок, если не хотите отображать тайлы.

Поставщик тайлов – Здесь вы можете выбрать поставщика тайлов из предоставляемого списка поставщиков: AnyLogic OSM (OpenStreetMap), OSM classicOSM german, OSM Humanitarian или LandSat. Как только вы выберете поставщика, карта автоматически обновится и отобразит новый слой тайлов.

Маршруты

Маршруты – Здесь вы можете выбрать опцию, согласно которой будут задаваться маршруты в карте ГИС. Вы можете выбрать одного из предоставляемых поставщиков под опцией Загружаются с сервера OSM. В ином случае, вы можете использовать опцию Считываются из файла PBF, чтобы создать маршруты из своего файла. Если вы выберете опцию Строятся по прямой, то маршруты будут, соответственно, задаваться прямыми линиями.

Сервер маршрутов – [Опция доступна, если Маршруты: Загружаются с сервера OSM] ГИС Карта поддерживает три сервера маршрутов: AnyLogic (рекомендуется), YOURS и BRouter.

Выбирается маршрут – [Опция доступна, если Маршруты: Загружаются с сервера OSM: YOURS или Считываются из файла PBF] Выберите, хотите ли вы получить Быстрейший или Кратчайший маршрут.

Сеть дорог – [Опция доступна, если Маршруты: Загружаются с сервера OSM] Выберите предпочитаемую сеть для маршрута: Автомобильную, Велосипедную или Пешеходную.

Алгоритм построения маршрутов  – [Опция доступна, если Маршруты: Считываются из файла PBF] Выберите желаемый алгоритм для построения маршрутов: A*, bidirectional A*, Dijkstra, Dijkstra bidirectional, Dijkstra native bidirectional.

Загрузите граф маршрутов – [Опция доступна, если Маршруты: Считываются из файла PBF] Щелкните эту кнопку, чтобы открыть окно мастера создания графа маршрутов. Вы можете создать новый граф или загрузить существующий из папки на своем компьютере. Поддерживаются такие типы файлов, как .pbf и .osm. Этот процесс может занять какое-то время в зависимости от размера файла. Вы можете в таком случае выбрать опцию Выполнять в фоновом режиме в диалоговом окне создания графа маршрутов.

Если маршрут не найден – Здесь вы можете выбрать, что должно происходить в случае, если маршрут не может быть построен, например, если требуемый маршрут не был найден в базе онлайн-поставщика или в файле, который вы используете, что построить граф маршрутов. Выберите опцию Строить маршрут по прямой, если хотите, чтобы модель продолжала работать в таком случае, или выберите вариант Отображать сообщение об ошибке, если хотите получать уведомление, когда маршрут не был найден.

Поиск

Здесь можно задать область, в которой при запуске модели будет производится поиск заданных местоположений объектов. По умолчанию поиск производится в области, видимой на ГИС карте при запуске модели. 

Зафиксировать границы поиска - Позволяет зафиксировать координаты текущей видимой области ГИС карты и проводить поиск местоположений в этих границах. Модель при этом можно запускать с любой другой видимой областью. Если местоположение не найдено в заданных границах поиска, будет взято ближайшее к этим границам местоположение с таким же именем.
Если зафиксировать границы поиска, появятся координаты, определяющие зафиксированную область поиска двумя точками (в местах пересечения широты и долготы) в ее в нижнем левом и верхнем правом углу:

Нижняя (широта, в градусах) -  Широта нижней левой точки области поиска, измеряется в градусах.
Левая (долгота, в градусах) - Долгота нижней левой точки области поиска, измеряется в градусах.
Верхняя (широта, в градусах) - Широта, верхней правой точки области поиска, измеряется в градусах.
Правая (долготав градусах) - Долгота, верхней правой точки области поиска, измеряется в градусах.

Не использовать фиксированные границы поиска - Удаляет координаты, определяющие область поиска местоположений, позволяя таким образом проводить поиск в области, видимой на ГИС карте при запуске модели.

Шейп-файлы
Здесь вы можете указать шейп файлы, которые будет отображать ГИС карта. Используйте расположенную справа кнопку , чтобы добавить шейп-файлы. Появится диалоговое окно, в котором вы сможете указать шейп-файл. 
Набор свойств этого шейп-файла будет доступен в секции свойств Шейп-файлы:

Отображается - Используя этот флажок, можно показывать/прятать данные шейп-файла на ГИС карте.

Шейп-файл, Dbf - Поля только для чтения, отображают имена шейп-файлов. 

Номер столбца с именем - Здесь вы можете указать имя столбца шейп-файла, который содержит имена элементов. Необходимо обязательно найти имя этого столбца в шейп-файле и указать его в этом поле, если вы хотите Преобразовать ГИС шейп-файлы в ж/д фигуры разметки пространства или в дорожную сеть. В этом случае, у элементов разметки пространства, созданных конвертацией, будут осмысленные имена (а не случайно заданные, к примеру, road145, road146).

Цвет линии по умолчанию, Цвет заливки по умолчанию - Здесь вы можете настроить цвет линий и цвет заливки шейп-файла.
Чтобы удалить файл, выберите его секцию и щелкните по кнопке .

Центр и масштаб

Также вы можете передвигаться по карте и изменять ее масштаб в режиме редактирования карты.

Широта (в градусах) – Широта центральной точки проекции карты, измеряется в градусах (-90 ...

Долгота (в градусах) – Долгота центральной точки проекции карты, измеряется в градусах (-180 ...

Масштаб     1: – Масштаб проекции карты, 1:<особое значение>, например, 1:10000.

Внешний вид

Цвет границы – Цвет границы фигуры (прямоугольной рамки вокруг карты).

Цвет заливки – Цвет заливки фигуры (цвет, которым будут залиты области карты, не содержащие объектов).

Местоположение и размер

X – x-координата верхнего левого угла карты.

Y – y-координата верхнего левого угла карты.

Ширина – Ширина карты (в пикселах).

Высота – Высота карты (в пикселах).

Специфические

Действие по щелчку – Код, который будет выполняться при каждом щелчке пользователя мышью по карте во время выполнения модели.

Другой поставщик тайлов Выберите опцию, если хотите задать поставщика тайлов самостоятельно. Ниже, в поле свойства Поставщик тайлов вы найдете основу кода с комментариями, которую можете модифицировать.

Другой поставщик маршрутов – Выберите опцию, если хотите задать поставщика маршрутов самостоятельно. Ниже, в поле свойства Поставщик маршрутов вы найдете основу кода с комментариями, которую можете модифицировать.

Генерализация маршрутов/регионов использует – Здесь вы можете задать, насколько детальной должна быть анимация маршрутов и регионов после запуска модели, то есть, сколько точек будет содержать эта анимация. В зависимости от модели, которую вы разрабатываете, выберите либо опцию Текущий масштаб карты, либо опцию Абс. точность (м.) как тип генерализации.

Чтобы редактировать карту

  1. Сделайте двойной щелчок по карте, чтобы войти в режим редактирования карты, или щелкните по карте правой кнопкой мыши и выберите Редактировать карту из контекстного меню.
  2. Графический редактор за пределами карты будет затемнен. Вы можете перетаскивать карту или изменять ее масштаб, чтобы выбрать область, которую хотите использовать в модели.

  3. Щелкните затемненную область графического редактора или снова сделайте двойной щелчок по карте, чтобы выйти из режиме редактирования карты ГИС. Также вы можете сделать по карте щелчок правой кнопкой мыши и выбрать из контекстного меню Завершить редактирование.

Чтобы выбрать несколько объектов разметки на карте

  1. Удерживайте клавишу Ctrl и выбирайте щелчком мыши объекты разметки на карте один за другим. Таким же образом вы можете снять выделение с одного объекта из группы. 
  2. Также, находясь в режиме редактирования карты, вы можете удерживать клавишу Ctrl или клавишу Shift и обводить мышью с нажатой левой кнопкой область, содержащую элементы, которые вы хотите выбрать.

Когда вы находитесь в режиме редактирования карты, AnyLogic отображает текущие координаты положения курсора мыши на карте в статусной строке:

Тайлы, маршруты, поиск в ГИС карте кэшируются, когда вы запускаете модель, и если эти данные запрашиваются с сервера, то скорость выполнения модели (до того, как будет создан кэш) может зависеть от подключения к сети Интернет. 

Если вы не хотите использовать тайлы или не имеете доступа в сеть Интернет, вы можете добавить карту ГИС из файла. В таком случае вам понадобится вручную добавить файл в свойствах карты ГИС.

 Чтобы загрузить карту ГИС из шейп-файла

  1. Перейдите в раздел свойств карты Шейп-файлы.
  2. Выберите шейп-файлы карты ГИС (.shp), которые вы хотите отображать на презентации с помощью данной фигуры. Чтобы добавить новый шейп-файл, щелкните по кнопке . По щелчку откроется диалоговое окно Открыть. Выберите нужный вам шейп-файл и щелкните по кнопке Открыть. Шейп-файлы карты ГИС копируются в каталог модели и при перемещении модели они будут копироваться вместе с ней.

Функции

С помощью функций карты ГИС вы можете преобразовать координаты из широты и долготы в пиксели и тому подобное.

Центр отображаемой карты

Функция

Описание

void setCenterLatitude(double centerLatitude)

Задает широту центра отображаемой карты.

Параметр:
centerLatitude - новая щирота центра отображаемой карты, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)

void setCenterLongitude(double centerLongitude)

Задает долготу центра отображаемой карты.

Параметр:
centerLongitude - новая долгота центра отображаемой карты, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)

void setProjectionCenter
(double centerLatitude,

double centerLongitude)

Задает центр отображаемой карты.

Параметры:
centerLatitude - новая щирота центра отображаемой карты, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)
centerLongitude - новая долгота центра отображаемой карты, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)

Масштаб отображаемой карты

Функция

Описание

double getMapScale()

Возвращает масштаб отображаемой карты (соотношение между метрами на экране и метрами на поверхности Земли), например, 1/100000 означает "1 км в 1 см".

double getMinMapScale()

Возвращает минимально возможный  масштаб отображаемой карты (соотношение между метрами на экране и метрами на поверхности Земли), например, 1/100000 означает "1 км в 1 см".

double getMaxMapScale()

Возвращает максимально возможный  масштаб отображаемой карты (соотношение между метрами на экране и метрами на поверхности Земли), например, 1/100000 означает "1 км в 1 см".

void setMapScale(double mapScale)

Задает масштаб отображаемой карты.

Параметр:
mapScale - масштаб (соотношение между метрами на экране и метрами на поверхности Земли), например, 1/100000 означает "1 км в 1 см".

void pan(int toEast,
int toNorth)

Перемещает центр отображаемой карты. Параметрами задается количество приращений в получаемом отступе. Одно горизонтальное приращение равняется половине разницы в значениях долготы центра отображаемой карты и ее западного или восточного видимого края. Одно вертикальное приращение равняется половине разницы в значениях широты центра карты и ее северного или южного края.

Параметры:
toEast - количество горизонтальных приращений, которые будут добавлены к центру карты; если значение положительное, центр переносится на Восток, если отрицательное - на Запад

toNorth - количество вертикальных приращений, которые будут добавлены к центру карты; если значение положительное, центр перемещается на Север, если отрицательное - на Юг

void zoomIn()

Увеличивает масштаб отображаемой карты в два раза.

void zoomOut()

Уменьшает масштаб отображаемой карты в два раза.

Расстояния

Функция

Описание

double getDistance
(double latFrom,
double lonFrom,
double latTo,
double lonTo)

Возвращает расстояние в метрах между двумя заданными точками.

Параметры:
latFrom - широта первой точки, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)
lonFrom - долгота первой точки, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)
latTo - широта второй точки, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)
lonTo - долгота второй точки, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)

double getDistance
(GISPoint fromPoint,
GISPoint toPoint)

Возвращает расстояние в метрах между двумя заданными точками.

Параметры:
fromPoint - первая точка
toPoint - вторая точка

double getDistanceByRoute
(double latFrom,
double lonFrom,
double latTo,
double lonTo)

Вычисляет длину пути от одной точки до другой (в метрах). Для построения пути используется поставщик маршрутов.

Параметры:
latFrom - широта первой точки, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)
lonFrom - долгота первой точки, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)
latTo - широта второй точки, измеряемая в градусах (-90 ... (South) ... 0 ... (North) ... +90)
lonTo - долгота второй точки, измеряемая в градусах (-180 ... (West) ... 0 ... (East) ... +180)

double getDistance
(GISPoint fromPoint,
GISPoint toPoint)

Вычисляет длину пути от одной точки до другой (в метрах). Для построения пути используется поставщик маршрутов.

Параметры:
fromPoint - первая точка
toPoint - вторая точка

Местоположение фигуры

Функция

Описание

double getX()

Возвращает X-координату карты ГИС, а именно, X-координату ее верхнего левого угла.

double getY()

Возвращает Y-координату карты ГИС, а именно, Y-координату ее верхнего левого угла.

void setX(double x)

Задает X-координату карты ГИС.

Параметр:
x - новое значение координаты X

void setY(double y)

Задает Y-координату карты ГИС.

Параметр:
y - новое значение координаты Y

void setPos
(double x,
double y)

Задает новые координаты фигуры карты.

Параметры:
x - новое значение координаты X
y - новое значение координаты Y

Размер фигуры, масштаб

Функция

Описание

double getWidth()

Возвращает ширину фигуры.

double getHeight()

Возвращает высоту фигуры.

void setWidth(double width)

Задает новую ширину фигуры, равную параметру width.

void setHeight(double height)

Задает новую высоту фигуры, равную параметру height.

double getScaleX()

Возвращает масштаб фигуры по оси координат X.

double getScaleY()

Возвращает масштаб фигуры по оси координат Y.

void setScaleX(double sx)

Задает масштаб фигуры по оси координат X.

Параметр:
sx - новое значение масштаба по оси X *
* если параметр равен 1, то фигура сохраняет изначальный размер

void setScaleY(double sy)

Задает масштаб фигуры по оси координат Y.

Параметр:
sy - новое значение масштаба по оси Y * 

* если параметр равен 1, то фигура сохраняет изначальный размер

void setScale(double sx, double sy)

Задает масштаб фигуры по осям координат X и Y.

Параметры:
sx - новое значение масштаба по оси X 
sy - новое значение масштаба по оси Y 

* если параметр равен 1, то фигура сохраняет изначальный размер

void setScale(double s)

Задает масштаб фигуры по осям координат X и Y.

Параметр:
s - новое значение масштаба по обеим осям координат *

* если параметр равен 1, то фигура сохраняет изначальный размер

Видимость фигуры

Функция

Описание

boolean isVisible()

Проверяет видимость фигуры. Если во время запуска модели фигура отображается, возвращает true, иначе - false.

void setVisible(boolean v)

Задает видимость фигуры во время запуска модели.

Параметр:
v - видимость: если true - фигура видна во время запуска модели, если false - видимость отключена.

Работа со слоями

Функция

Описание

boolean isLayerVisible(String shapeFileName)

Проверяет, виден ли слой шейп-файла. Если слой виден, то возвращает true, если слой не виден или не найден - то false.

Параметр: shapeFileName - имя шейп-файла.

ShapeGISMap.Layer[] getLayers()

Возвращает массив слоев, используемых в этой карте ГИС.
Структура массива не должна подвергаться изменениям: только его элементы доступны для изменений.


См. также

Навигация по карте ГИС

            Справочник классов: класс ShapeGISMap