Function setRoadRegulationCondition

  • 大型車規制の表示条件を設定する — 詳細な使用例

    車高・車幅・総重量などの車両条件を指定して、規制対象となる道路を地図上に描画します。 アイコン画像は規制種別(CLOSED / NO_ENTRY / HEIGHT など)ごとに指定します。 クリック・マルチクリックリスナーで規制データを取得できます。

    Returns void

    Warning

    • icon は必須プロパティです。省略するとコンストラクタがエラーになります。
    • anytimetrue にすると時間外の規制も常時表示されます(デフォルト: false)。
    • クリックリスナーは setRoadRegulationClickListener / setRoadRegulationMultiClickListener のどちらか一方のみ有効です。
    • clearRoadRegulationCondition で非表示に戻せます。

    Example: バス向けの規制条件を設定し、クリック時に詳細を表示する

    import * as GIA from '@ntj/gaia';

    const IMAGE_SIZE = 28;
    const iconInfo = new GIA.value.RoadRegulationIconInfo({
    icon: 'path/to/regulation-default.png',
    size: new GIA.value.Size(IMAGE_SIZE, IMAGE_SIZE),
    });
    const iconInfoTime = new GIA.value.RoadRegulationIconInfo({
    icon: 'path/to/regulation-time.png',
    size: new GIA.value.Size(IMAGE_SIZE, IMAGE_SIZE),
    });
    const iconInfoNotBaseDate = new GIA.value.RoadRegulationIconInfo({
    icon: 'path/to/regulation-not-base-date.png',
    size: new GIA.value.Size(IMAGE_SIZE, IMAGE_SIZE),
    });

    // 入力値が空ならデフォルト値を使う
    const baseDateObject = new Date();
    const carTypeObject = 8;
    const heightObject = 2.8;
    const widthObject = 1.8;
    const weightObject = 9;
    const lengthObject = 8;
    const maxLoadObject = 3.5;
    const hasDangerousGoodsObject = false;
    const anytime = false;

    map.setRoadRegulationCondition(new GIA.value.RoadRegulationCondition({
    baseDate: baseDateObject,
    anytime,
    carType: carTypeObject,
    length: lengthObject,
    width: widthObject,
    height: heightObject,
    weight: weightObject,
    maxLoad: maxLoadObject,
    hasDangerousGoods: hasDangerousGoodsObject,
    icon: {
    CLOSED: {
    info: iconInfo,
    infoTime: iconInfoTime,
    infoNotBaseDate: iconInfoNotBaseDate,
    },
    NO_ENTRY: { info: iconInfo },
    HEIGHT: { info: iconInfo },
    WIDTH: { info: iconInfo },
    WEIGHT: { info: iconInfo },
    DANGEROUS_OBJECTS: { info: iconInfo },
    },
    }));

    // 単体クリックリスナー
    map.setRoadRegulationClickListener((data) => {
    let msg = '';
    if (data.carType) msg += `車種コード: ${data.carType}\n`;
    if (data.regName) msg += `規制種別: ${data.regName}\n`;
    if (data.width) msg += `車幅制限値(m): ${data.width}\n`;
    if (data.height) msg += `車高制限値(m): ${data.height}\n`;
    if (data.weight) msg += `車重制限値(t): ${data.weight}\n`;
    if (data.length) msg += `車長制限値(m): ${data.length}\n`;
    if (data.maxLoad) msg += `最大積載量(t): ${data.maxLoad}\n`;
    if (data.daysOfWeeks) msg += `曜日: ${data.daysOfWeeks}\n`;
    if (data.startDay && data.endDay) msg += `期間: ${data.startDay} - ${data.endDay}\n`;
    if (data.startTime && data.endTime) msg += `規制時間: ${data.startTime} - ${data.endTime}\n`;
    alert(msg);
    });

    // 複数重なった場合のマルチクリックリスナー
    map.setRoadRegulationMultiClickListener((dataList) => {
    dataList.forEach((data) => console.log(data.regName));
    });

    See