AnyLogic
Развернуть
Размер шрифта

ГИС Маршрут

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

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

Чтобы добавить существующий маршрут

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

  3. Переместитесь по карте туда, где маршрут заканчивается, щелкните в эту точку правой кнопкой мыши и выберите Маршрут сюда .
  4. Специальные обозначения появятся в этих точках на карте и начнется построение маршрута:

  5. Вы увидите, как ГИС Маршрут появится на карте.

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

  9. После того, как маршрут был создан, вы можете отредактировать его точки. Также вы можете закрепить его на карте с помощью свойства маршрута Заблокировать местоположение.

Чтобы нарисовать маршрут

  1. Дважды щелкните мышью объект ГИС Маршрут в секции ГИС палитры Разметка пространства.
  2. Значок элемента поменяется на . Это означает, что вы перешли в режим рисования и теперь можете рисовать маршрут точка за точкой на карте ГИС.
  3. Щелкните по карте ГИС в том месте, куда вы хотите поместить первую точку маршрута.
  4. Последовательно добавляйте другие точки маршрута щелчками мыши.

  5. Завершите рисование двойным щелчком.

  6. Вы можете редактировать маршрут после того, как закончите его рисовать.

Свойства

Основные

Имя — Имя маршрута ГИС. Имя используется для идентификации и обращения к маршруту из кода.

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

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

Заблокировать местоположение — Если опция выбрана, то объект будет закреплен на карте. Вы сможете выделить его, чтобы посмотреть его свойства, но не сможете перемещать его по карте.

Двунаправленный — Здесь вы можете задать движение по маршруту в обоих направлениях.

Внешний вид

Цвет линии — Статическое значение или динамическое выражение, задающее цвет линии маршрута. Щелкните мышью внутри элемента управления и выберите нужный цвет из списка наиболее часто используемых цветов или же выберите любой другой цвет с помощью диалога Цвета. Если вы не хотите, чтобы линия была видна, выберите Нет цвета.

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

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

Редактирование маршрута

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

Чтобы передвинуть точку изгиба маршрута

  1. Выделите маршрут на карте щелчком мыши.
  2. Перетащите точку с помощью мыши.

Чтобы добавить новую точку изгиба

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

Чтобы удалить точку изгиба

  1. Выделите маршрут на карте щелчком мыши.
  2. Сделайте двойной щелчок мышью по той точке, которую вы хотите удалить.

Функции

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

Основные функции
Функция Описание
double length() Возвращает длину маршрута ГИС в метрах. Можно использовать, например, для расчета желаемой скорости.
double length(LengthUnits units) Возвращает длину маршрута ГИС в указанных единицах измерения. Можно использовать, например, для расчета желаемой скорости.
boolean isBidirectional() Возвращает значение свойства bidirectional, определяющего, является маршрут однонаправленным или двунаправленным. У маршрутов, созданных с помощью графического редактора, значение свойства по умолчанию равно true. У маршрутов, созданных с помощью кода, значение свойства равно указанному при создании. Чтобы узнать больше, проверьте описание функции, использованной для создания маршрута.
Функция возвращает true для двунаправленных маршрутов и false для маршрутов, позволяющих движение только от точки начала до точки окончания.
void setBidirectional(boolean bidirectional) Задает значение свойства bidirectional. У маршрутов, созданных с помощью графического редактора, значение свойства по умолчанию равно true. У маршрутов, созданных с помощью кода, значение свойства равно указанному при создании. Чтобы узнать больше, проверьте описание функции, использованной для создания маршрута.

bidirectional - укажите true, чтобы сделать маршрут двунаправленным, или false, чтобы по маршруту можно было двигаться только от точки начала до точки окончания.
void setOwner(ShapeGISMap map) Задает, к какой карте ГИС принадлежит этот маршрут.
void setVisible(boolean v) Задает видимость маршрута ГИС.

v - видимость. Если значение равно true, то маршрут будет отображаться, если false - то нет.
boolean isVisible() Проверяет, видим ли маршрут ГИС во время выполнения модели. Возвращает true, если элемент виден. Возвращает false, если элемент не виден.
INetwork getNetwork() Возвращает сеть, к которой принадлежит точка, или null, если такой сети нет.
boolean contains(double lat, double lon) Проверяет, относится ли к маршруту точка с заданными координатами. Функция возвращает true, если на маршруте имеется точка с указанными координатами.

lat - широта точки
lon - долгота точки
boolean contains(double lat, double lon, double distance) Проверяет, относится ли к маршруту точка с заданными координатами с допустимым отклонением. Функция возвращает true, если на допустимом расстоянии от маршрута имеется точка с указанными координатами.

lat - широта точки
lon - долгота точки
distance - допустимое расстояние отклонения от маршрута для проверяемой точки
boolean containsSq(double lat, double lon, double squareDistance) Проверяет, относится ли к маршруту точка с заданными координатами с допустимым отклонением. Функция возвращает true, если на допустимом расстоянии от маршрута имеется точка с указанными координатами.

lat - широта точки
lon - долгота точки
squareDistance - квадратичная погрешность расстояния, позволяющая определить, находится ли заданная точка в непосредственной близости от линии данного элемента разметки
Point randomPointInside(Random rng, Point out) Возвращает случайно выбранную точку на маршруте или рядом с маршрутом.
Для вызова функции используется указанный генератор случайных чисел.

rng - генератор случайных чисел
out - объект, которому будет присвоено полученное значение. Может быть равен null.
Расстояние
Функция Описание
double getNearestPoint(double lat, double lon, Point out) Возвращает объекту out ближайшую к указанным координатам точку на этом маршруте. Результат рассчитывается в виде квадратичной погрешности расстояния до точки.

lat - долгота точки
lon - широта точки
out - имя точки, которой передается результат
double getNearestPoint(Point givenPoint, Point out) Возвращает объекту out ближайшую к указанной точке точку на этом маршруте. Результат рассчитывается в виде квадратичной погрешности расстояния до точки.

givenPoint - имя точки, до которой рассчитывается расстояние
out - имя точки, которой передается результат
Position getPositionAtOffset(double offset, Position out) Возвращает позицию на маршруте, находящуюся на заданном расстоянии offset от стартовой точки. Функция возвращает объект Position, содержащий координаты точки, находящейся на заданном расстоянии от начала маршрута, и ориентацию этой точки относительно маршрута в пространстве.

offset - неотрицательное расстояние. Должно быть меньше или равно длине маршрута.
out - имя объекта, которому будет присвоено получившееся значение. Может быть равно null.
Position getPositionAtOffset(double offset, LengthUnits units, Position out) Возвращает позицию на маршруте, находящуюся на заданном расстоянии offset от стартовой точки. Функция возвращает объект Position, содержащий координаты точки, находящейся на заданном расстоянии от начала маршрута, и ориентацию этой точки относительно маршрута в пространстве.

offset - неотрицательное расстояние. Должно быть меньше или равно длине маршрута.
units - единицы измерения расстояния. out - имя объекта, которому будет присвоено получившееся значение. Может быть равно null.
Начальная и конечная точки
Функция Описание
GISNode getSource() Возвращает локацию исходного узла маршрута.
GISNode getTarget() Возвращает локацию целевого узла маршрута.
Point getStartPoint() Возвращает объект Point, содержащий координаты стартовой точки.
Point getStartPoint(Point out) Возвращает объект Point, содержащий координаты стартовой точки.

out - объект, которому будет присвоен результат вызова функции. Может быть равен null.
Point getEndPoint() Возвращает объект Point, содержащий координаты конечной точки.
Point getEndPoint(Point out) Возвращает объект Point, содержащий координаты конечной точки.

out - объект, которому будет присвоен результат вызова функции. Может быть равен null.
GISNode getOtherNode(GISNode n) Если в параметре передан исходный узел маршрута, возвращает целевой узел. Если передан целевой, возвращает исходный. Обратите внимание, что функция не проверяет, является ли переданный узел целевым или исходным.

n - узел, в котором находится начальная или конечная точка маршрута.
Возвращает узел, находящийся на другом конце маршрута.
Position getStartPosition(Position position) Возвращает объект Position, содержащий координаты стартовой позиции маршрута.
Position getEndPosition(Position position) Возвращает объект Position, содержащий координаты конечной позиции маршрута.
Сегменты маршрута
Функция Описание
int getSegmentCount() Возвращает количество сегментов.
GISMarkupSegment getSegment(int index) Возвращает сегмент по его индексу (index).

index - индекс сегмента. Должен находиться в диапазоне [0 .. IPath.getSegmentCount() - 1].
Внешний вид
Функция Описание
Color getLineColor() Возвращает цвет заливки элемента. Если у элемента нет заливки или в качестве заливки используется текстура, возвращает null. Для определения текстуры используйте функцию getFillTexture().
void setLineColor(Paint lineColor) Задает цвет или текстуру контуру элемента.

lineColor - новый цвет контура элемента. Передайте null в значении параметра, чтобы убрать контур фигуры.
LineStyle getLineStyle() Возвращает стиль контура элемента.

Допустимые значения:
LINE_STYLE_SOLID - сплошная линия
LINE_STYLE_DOTTED - точечная линия
LINE_STYLE_DASHED - пунктирная линия
void setLineStyle(LineStyle lineStyle) Задает стиль контура элемента.

lineStyle - новый стиль контура элемента

Допустимые значения:
LINE_STYLE_SOLID - сплошная линия
LINE_STYLE_DOTTED - точечная линия
LINE_STYLE_DASHED - пунктирная линия
double getLineWidth() Возвращает ширину контура элемента.
void setLineWidth(double width) Задает ширину контура элемента. Передайте 0, чтобы задать минимальную ширину.

width - новая ширина контура элемента.
Texture getLineTexture() Возвращает текстуру контура элемента, если в качестве контура используется текстура.
Удаление
Функция Описание
void remove() Удаляет маршрут ГИС из презентации. Если маршрут ГИС не является частью презентации модели, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают.
Как мы можем улучшить эту статью?