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

Парковка

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

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

Демо-модель: Parking Lot Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

На данный момент с помощью этого элемента можно задать только однорядную парковку. Для задания двурядной парковки нарисуйте еще одну дорогу с прикрепленной к ней еще одной парковкой.

Чтобы промоделировать движение машины на парковку, используйте блок CarMoveTo. Чтобы промоделировать пребывание автомобиля на парковке в течение определенного времени, поместите после блока CarMoveTo блок Библиотеки Моделирования ПроцессовDelay. Поскольку обычно парковки рассчитаны на несколько автомобилей, у блока Delay нужно выбрать опцию Максимальная вместимость.

Моделирование автобусной остановки описано в пятой фазе Учебного пособия по Библиотеке дорожного движения.

Как создать парковку

  1. Перетащите элемент Парковка из секции Разметка пространства палитры Библиотека дорожного движения на графическую диаграмму.
    Парковку можно рисовать только после того, как будет нарисована дорога, к которой она должна примкнуть.
    Перетаскивая парковку по диаграмме, вы увидите, что все фигуры, кроме дорог, будут временно скрыты.
  2. Поместите курсор у дороги в том месте, куда вы хотите установить элемент. Парковка прикрепится к дороге. Передвигайте мышь, чтобы установить элемент в нужном месте (элемент адаптирует свою форму в соответствии с формой дороги, к которой его присоединяют) и отпустите кнопку мыши. Элемент будет установлен в указанном месте.
  3. Перейдите в панель Свойства, и задайте Тип парковки: Параллельная или Перпендикулярная.
  4. Измените размер парковки, перемещая квадратную метку-манипулятор на краю элемента. В случае изменения длины элемента таким путем, парковка будет автоматически изменять количество парковочных мест. Количество парковочных мест можно также изменить в свойствах элемента.
  5. Длину парковочного места можно задать, изменив значение свойства Длина парковочного места. Ширина же определяется свойством Ширина полосы дорожной сети (которое влияет на все элементы этой сети: дороги, перекрестки, и т.д.).
  6. Теперь можно указать эту парковку в качестве места назначения в свойствах блока CarMoveTo, моделирующего движение автомобилей к парковке.

Как изменить местоположение парковки

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

Свойства

Основные

Имя — Имя этой парковки. Это имя используется для идентификации элемента и доступа к нему из кода и свойств блоков Библиотеки дорожного движения.

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

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

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

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

Тип — Определяет схему расположения парковки. Доступно два варианта парковки:

Параллельная — парковочные места будут расположены параллельно дороге.
Перпендикулярная — поперечное расположение автомобилей относительно дороги.

Кол-во парковочных мест — Определяет количество парковочных мест (одно место для одной машины). Количество мест по умолчанию — 5.

Длина парковочного места — Определяет длину парковочного места. Длина парковочного места по умолчанию — 6 метров.

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

Смещение от начала дороги — Расстояние от начальной точки дороги до начальной точки парковки, в пикселях.

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

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

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

Функции

Парковочные места
Функция Описание
int nSpaces() Возвращает общее количество парковочных мест на этой парковке.
int nFree() Возвращает количество свободных парковочных мест на этой парковке.
int randomFreeSpaceIndex() Возвращает индекс случайно выбранного парковочного места.
int[] getFreeSpaceIndexes() Возвращает список индексов свободных парковочных мест (нумерация начинается с нуля).
void setNSpaces(int parkingSpacesCount) Задает количество парковочных мест на парковке, parkingSpacesCount определяет количество парковочных мест на парковке.

parkingSpacesCount — количество парковочных мест на парковке
Автомобили
Функция Описание
int nCars() Возвращает количество автомобилей, расположенных на этой парковке.
Agent getCarOnSpace(int spaceIndex) Возвращает автомобиль, расположенный на парковочном месте с заданным индексом, или null, если место свободно.

spaceIndex — индекс парковочного места
List<Agent> getCars() Возвращает список автомобилей, расположенных на этой парковке. Первый автомобиль в списке ближе всех находится к выезду из парковки (первым покинет парковку).
Тип парковки
Функция Описание
ParkingLotType getParkingType() Возвращает тип парковки. Если возвращает PARKING_LOT_PARALLEL, парковка параллельного типа, если функция возвращает PARKING_LOT_PERPENDICULAR, парковка перпендикулярного типа.
void setParkingType(ParkingLotType parkingType) Задает тип парковки: параллельная или перпендикулярная, в зависимости от значения аргумента функции.

parkingType — определяет тип парковки: передайте значение PARKING_LOT_PARALLEL, чтобы сделать парковку параллельной, или PARKING_LOT_PERPENDICULAR, чтобы сделать ее перпендикулярной.
Размеры парковочных мест
Функция Описание
double getParkingSpaceLength() Возвращает длину парковочного места в пикселях.
double getParkingSpaceLength(LengthUnits units) Возвращает длину парковочного места в указанных единицах измерения длины. К примеру, getParkingSpaceLength(METER) возвращает длину парковочного места в метрах.

units — константа единиц измерения длины
double getParkingSpaceWidth() Возвращает ширину парковочного места в пикселях.
double getParkingSpaceWidth(LengthUnits units) Возвращает ширину парковочного места в указанных единицах измерения длины. К примеру, getParkingSpaceWidth(FOOT) возвращает ширину парковочного места в футах.

units — константа единиц измерения длины
void setParkingSpaceLength(double parkingSpaceLengthInPixels) Задает длину парковочного места в пикселях.

parkingSpaceLengthInPixels — Длина парковочного места в пикселях
void setParkingSpaceLength(double parkingSpaceLength, LengthUnits units) Задает длину парковочного места в указанных единицах измерения длины.

parkingSpaceLength — длина парковочного места в указанных единицах измерения длины
units — константа единиц измерения длины
void setParkingSpaceWidth(double parkingSpaceWidthInPixels) Задает ширину парковочного места в пикселях.

parkingSpaceWidthInPixels — Ширина парковочного места в пикселях
void setParkingSpaceWidth(double parkingSpaceWidth, LengthUnits units) Задает ширину парковочного места в указанных единицах измерения длины.

parkingSpaceWidth — Ширина парковочного места в указанных единицах измерения длины
units — константа единиц измерения длины
Видимость
Функция Описание
void setVisible(boolean v) Задает видимость парковки.

v — видимость парковки. Если true — парковка видна, если false — нет.
boolean isVisible() Проверяет, видна ли парковка. Если true, парковка видна, если false — нет.
Местоположение
Функция Описание
double getOffset() Возвращает расстояние (в пикселях) от начала дороги до начала парковки.
double getOffset(LengthUnits units) Возвращает расстояние (в указанных единицах измерения длины) от начала дороги до начала парковки.

units — константа единиц измерения длины
boolean isOnForwardSide() Возвращает true, если парковка находится на полосе основного направления, false, если установлена у полосы встречного направления.
Road getRoad() Возвращает дорогу, у которой установлена парковка.
RoadNetwork getRoadNetwork() Возвращает дорожную сеть, в которой находится парковка.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором расположена данная парковка.
Удаление
Функция Описание
void remove() Удаляет парковку из презентации. Если парковка не является частью презентации, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают.
Как мы можем улучшить эту статью?