Парковка


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

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

Демо модель: Parking Lot

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

Чтобы промоделировать движение машины на парковку, используйте блок 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) - Возвращает ширину парковочного места в указанных единицах измерения длины. К прbмеру, 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() - Возвращает дорожную сеть, в которой находится парковка.

См. также

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

 Элементы разметки Библиотеки дорожного движения

 Блоки Библиотеки дорожного движения