icon は必須プロパティです。省略するとコンストラクタがエラーになります。anytime を true にすると時間外の規制も常時表示されます(デフォルト: false)。setRoadRegulationClickListener / setRoadRegulationMultiClickListener
のどちらか一方のみ有効です。clearRoadRegulationCondition で非表示に戻せます。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));
});
大型車規制の表示条件を設定する — 詳細な使用例
車高・車幅・総重量などの車両条件を指定して、規制対象となる道路を地図上に描画します。 アイコン画像は規制種別(
CLOSED/NO_ENTRY/HEIGHTなど)ごとに指定します。 クリック・マルチクリックリスナーで規制データを取得できます。