Дорожная сеть создается даже при добавлении в графический редактор одной одиночной дороги. Это вызвано тем, что такие свойства дороги, как ширина полосы, выбор правостороннего или левостороннего движения, цвет дороги и т.д., в случае обширной дорожной сети, состоящей из множества дорог, будет неудобно многократно задавать в свойствах каждой отдельной дороги этой сети. Вместо этого в AnyLogic можно единожды задать эти параметры в свойствах дорожной сети, образованной этими дорогами. Давайте опишем, как это можно сделать:
Как изменить параметры дорожной сети
Имя – Имя дорожной сети.
Исключить – Если опция выбрана, то дорожная сеть будет исключена из модели.
Отображается на верхнем агенте – Если опция выбрана, то сеть будет видна на презентации типа агента, в который будет вложен данный агент.
Блокировать – Если опция выбрана, то сеть будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать сеть дорог в графическом редакторе до тех пор, пока вы не снимете с нее блокировку.
Видимость – Если опция выбрана, то сеть будет отображаться на презентации во время выполнения модели.
Уровень – Уровень, на котором расположена эта сеть.
Движение – Определяет сторону дороги, которой должен придерживаться транспорт при двустороннем движении. Есть два варианта:
Правостороннее - транспорт должен придерживаться правой стороны дорогиШирина полосы – Определяет ширину полос дорог сети в единицах измерения, которые можно выбрать из раскрывающегося списка справа от этого поля. Ширина полосы по умолчанию составляет 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 - ширина полосы в пикселях
Параметры:
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() - Возвращает все перекрестки, принадлежащие этой дорожной сети.
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() -
Возвращает текстуру разделителя направлений, если она есть.
setDirectionsDelimitingLineStyle(RoadLineStyle directionsDelimitingLineStyle) - Задает стиль разделителя направлений.
Параметр: directionsDelimitingLineStyle - стиль линии, одно из следующих значений:
RoadLineStyle.ROAD_LINE_SINGLE (одинарная)
RoadLineStyle.ROAD_LINE_SINGLE_DASHED (одинарная прерывистая)
RoadLineStyle.ROAD_LINE_DOUBLE (двойная)
RoadLineStyle.ROAD_LINE_DOUBLE_DASHED (двойная прерывистая)
Параметр: 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() -
Возвращает стиль разделителя полос, одно из следующих значений: