Дорожная сеть

Дорожная сеть образуется при соединении следующих элементов разметки пространства Библиотеки дорожного движения

 Дорога

 Перекресток

 Стоп-линия

 Автобусная остановка

 Парковка

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

Как изменить параметры дорожной сети

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

Свойства

Основные

Имя – Имя дорожной сети.

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

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

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

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

Движение – Определяет сторону дороги, которой должен придерживаться транспорт при двустороннем движении. Есть два варианта:

    Правостороннее - транспорт должен придерживаться правой стороны дороги
    Левостороннее - транспорт должен придерживаться левой стороны дороги

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

Внешний вид

Цвет дороги – Здесь можно задать цвет дороги.

Стиль разделителя полос – Здесь можно задать стиль линии разделителя полос, выбрав один из вариантов из раскрывающегося списка (одинарная, одинарная прерывистая, двойная, двойная прерывистая).

Цвет разделителя полос – Здесь можно задать цвет разделителя полос.

Стиль разделителя направлений – Здесь можно задать стиль разделителя направлений, выбрав один из вариантов из раскрывающегося списка (одинарная, одинарная прерывистая, двойная, двойная прерывистая).

Цвет разделителя направлений – Здесь можно задать цвет разделителя направлений.

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

Отображать в – Здесь вы можете выбрать, хотите ли вы, чтобы элемент отображался В 2D и в 3D анимации или Только 2D или Только 3D

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

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

Анимация стоп-линий и соединителей полос – Если опция выбрана, анимация соединителей полос на перекрестках и стоп-линий отображается в 2D анимации во время выполнения модели. Цвет каждой стоп-линии и соединителя полос, которые контролирует светофор, будет соответствовать текущему сигналу светофора (красному, желтому или зеленому). 

В модели может быть несколько независимых (не соединенных друг с другом) дорожных сетей. При движении (моделируемом блоком CarMoveTo) автомобиль может перемещаться только к месту назначения, принадлажещему той же дорожной сети, в которой он находится. Автомобиль может сменить дорожную сеть (например, для моделирования части движения автомобиля на более высоком уровне абстракции, а не на детальном, физическом уровне) с помощью пары блоков CarExit и CarEnter.

AnyLogic не поддерживает динамическое создание и добавление в дорожную сеть каких-то новых элементов уже по ходу выполнения модели. Разрешается лишь создание всей дорожной сети с помощью соответствующих Java функций перед запуском модели. При запуске модели сеть будет создана и начнет функционировать, после чего добавить в нее какие-то новые элементы будет уже невозможно.

Функции

Ширина дорожной полосы

double getLaneWidth() - Возвращает ширину полосы в пикселях.

double getLaneWidth(LengthUnits units) - Возвращает ширину полосы в указанных единицах измерения длины.
Параметр: units - константа единицы измерения длины

void etersetLaneWidth(double laneWidthInPixels) - Задает ширину полосы.

Параметр: laneWidthInPixels - ширина полосы в пикселях

void setLaneWidth(double laneWidth, LengthUnits units) - Задает ширину полосы в указанных единицах измерения длины.
Параметры:
laneWidth - ширина полосы в указанных единицах измерения длины
units - константа единицы измерения длины
Цвет дороги

void setRoadBackgroundColor(Color roadBackgroundColor) - Задает цвет дорожного покрытия.

Параметр: roadBackgroundColor - новый цвет, если null, цвет дорожного покрытия не отрисовывается
void setRoadBackgroundColor(Paint roadBackgroundColor) - Задает цвет (или текстуру) дорожного покрытия.
Параметр: roadBackgroundColor - новая текстура, если null, цвет дорожного покрытия не отрисовывается

Color getRoadBackgroundColor() - Возвращает цвет дорожного покрытия, или null, если у дорожного покрытия нет цвета или есть текстура (в этом случае следует использовать getFillTexture()).

Texture getRoadBackgroundTexture() - Возвращает текстуру дорожного покрытия, если она есть.

Элементы сети

List<Road> getRoads() - Возвращает все дороги этой дорожной сети.

List<TrafficLight> getTrafficLights() - Возвращает все светофоры, принадлежащие этой дорожной сети.

List<StopLine> getStopLines() - Возвращает все стоп-линии, принадлежащие этой дорожной сети.

List<ParkingLot> getParkingLots() - Возвращает все парковки, принадлежащие этой дорожной сети.

List<BusStop> getBusStops() - Возвращает все автобусные остановки, принадлежащие этой дорожной сети.

List<Intersection> getIntersection() - Возвращает все перекрестки, принадлежащие этой дорожной сети.

Направление движения
RoadDrivingDirection getDrivingDirection() -  Возвращает направление движения  (ROAD_RIGHT_HAND; или ROAD_LEFT_HAND).

setDrivingDirection(RoadDrivingDirection drivingDirection) - Задает левостороннее/правостороннее направление движения.

Параметр: drivingDirection - направление движения. Чтобы сделать движение правосторонним, передайте значение ROAD_RIGHT_HAND, чтобы сделать левосторонним - ROAD_LEFT_HAND
Видимость

void setVisible(boolean v) - Задает видимость дорожной сети.

Параметрv - видимость дорожной сети. Если true - дорожная сеть видна, если false - нет

boolean isVisible() - Проверяет, видна ли дорожная сеть. Если true - дорожная сеть видна, если false - нет.

boolean isSignalStateAnimationVisible() - Возвращает true, если выбрана опция показывать анимацию стоп-линий и соединителей полос.

public void setSignalStateAnimationVisible(boolean visible) - Задает видимость анимации. 

Параметр: visible - если (true), анимация стоп-линий и соединителей полос видна, если (false) нет
Разделитель направлений

setDirectionsDelimitingLineColor(Color directionsDelimitingLineColor) - Задает цвет разделителя направлений.

ПараметрdirectionsDelimitingLineColor - новый цвет. Если null, разделитель направлений не отрисовывается 
setDirectionsDelimitingLineColor(Paint directionsDelimitingLineColor) - Задает цвет (или текстуру) разделителя направлений.
ПараметрdirectionsDelimitingLineColor - новая текстура. Если null, разделитель направлений не отрисовывается
Color getDirectionsDelimitingLineColor() -  Возвращает цвет разделителя направлений, или null, если у разделителя полос нет цвета, но есть текстура (в этом случае следует использовать getFillTexture()).

Texture getDirectionsDelimitingLineTexture() -  Возвращает текстуру разделителя направлений, если она есть.

RoadLineStyle getDirectionsDelimitingLineStyle() - Возвращает стиль разделителя направлений, одно из следующих значений:
RoadLineStyle.ROAD_LINE_SINGLE (одинарная)
RoadLineStyle.ROAD_LINE_SINGLE_DASHED (одинарная прерывистая)
RoadLineStyle.ROAD_LINE_DOUBLE (двойная)
RoadLineStyle.ROAD_LINE_DOUBLE_DASHED (двойная прерывистая)

setDirectionsDelimitingLineStyle(RoadLineStyle directionsDelimitingLineStyle) - Задает стиль разделителя направлений.

Параметр: directionsDelimitingLineStyle - стиль линии, одно из следующих значений:
RoadLineStyle.ROAD_LINE_SINGLE (одинарная)
RoadLineStyle.ROAD_LINE_SINGLE_DASHED (одинарная прерывистая)
RoadLineStyle.ROAD_LINE_DOUBLE (двойная)
RoadLineStyle.ROAD_LINE_DOUBLE_DASHED (двойная прерывистая)
Разделитель полос
setLanesDelimitingLineColor(Color lanesDelimitingLineColor) - Задает цвет разделителя полос.
ПараметрlanesDelimitingLineColor - новый цвет. Если null, разделитель полос не отрисовывается
void setLanesDelimitingLineColor(Paint lanesDelimitingLineColor) - Задает цвет (или текстуру) разделителя полос.
ПараметрlanesDelimitingLineColor - новая текстура. Если null, разделитель полос не отрисовывается

Color getLanesDelimitingLineColor() - Возвращает цвет разделителя полос или null, если у разделителя нет цвета, но есть текстура (в этом случае стоит использовать getFillTexture()).

Texture getLanesDelimitingLineTexture() - Возвращает текстуру разделителя полос, если она есть.

void setLanesDelimitingLineStyle(RoadLineStyle lanesDelimitingLineStyle) - Задает стиль линии-разделителя полос.
Параметр: directionsDelimitingLineStyle - стиль линии, одно из следующих значений:
RoadLineStyle.ROAD_LINE_SINGLE (одинарная)
RoadLineStyle.ROAD_LINE_SINGLE_DASHED (одинарная прерывистая)
RoadLineStyle.ROAD_LINE_DOUBLE (двойная)
RoadLineStyle.ROAD_LINE_DOUBLE_DASHED (двойная прерывистая)

RoadLineStyle getLanesDelimitingLineStyle() - Возвращает стиль разделителя полос, одно из следующих значений:

RoadLineStyle.ROAD_LINE_SINGLE (одинарная)
RoadLineStyle.ROAD_LINE_SINGLE_DASHED (одинарная прерывистая)
RoadLineStyle.ROAD_LINE_DOUBLE (двойная)
RoadLineStyle.ROAD_LINE_DOUBLE_DASHED (двойная прерывистая)

См. также

 Учебное пособие по Библиотеке дорожного движения