(event: MouseEvent, data?: RailwayShapeData) => void です。
event.clientX / event.clientY を map.getLatLngFromClientCoord に渡すと緯度経度が取れます。appearanceCallback を使うと路線ごとに色・太さ・可視性をカスタマイズできます。
setRailwayShapeCondition に渡した後、外部状態が変化した場合は map.forceMapUpdate() を呼んで再描画してください。condition に undefined を渡すと路線形状が非表示になります。undefined を渡すと解除できます。operationInfoItems を渡す場合は mocha /operation/train の応答 items 配列をそのまま渡してください。appearanceCallback と operationInfoItems/accentKeyMapper を同時に設定した場合、appearanceCallback が優先されます。import * as GIA from '@ntj/gaia';
// 路線形状の表示条件を設定
map.setRailwayShapeCondition(new GIA.value.RailwayShapeCondition({
zoomRange: new GIA.value.ZoomRange(10, 22),
}));
// クリックコールバック(第1引数は MouseEvent、第2引数が路線データ)
map.setRailwayShapeClickCallback((event, data) => {
if (!data) return;
console.log('クリックされた路線:', data.rellineName);
const latlng = map.getLatLngFromClientCoord(new GIA.value.Point(event.clientX, event.clientY));
console.log('クリック座標:', latlng);
});
// ホバーコールバック(マウス移動中に連続発火)
map.setRailwayShapeHoverCallback((event, data) => {
if (data) console.log('ホバー中:', data.rellineName);
});
// マウスエンター(路線への進入)
map.setRailwayShapeMouseEnterCallback((event, data) => {
if (data) console.log('エンター:', data.rellineName);
});
// マウスリーブ(路線からの離脱)
map.setRailwayShapeMouseLeaveCallback((event, data) => {
if (data) console.log('リーブ:', data.rellineName);
});
import * as GIA from '@ntj/gaia';
// mocha /operation/train から運行情報を取得
const res = await mochaClient.get('/operation/train');
const operationInfoItems = res.items;
// 運行支障のある路線を赤く強調するカスタムコールバック
const appearanceCallback: GIA.types.RailwayShapeAppearanceCallback = (data, zoomLevel) => ({
color: new GIA.value.Color(data.rellineColor),
weight: zoomLevel >= 14 ? 4 : 2,
isAccented: true,
isStriped: true,
isTopped: false,
isVisible: true,
});
map.setRailwayShapeCondition(new GIA.value.RailwayShapeCondition({
zoomRange: new GIA.value.ZoomRange(10, 22),
operationInfoItems,
appearanceCallback,
}));
// 外部状態が変わったら forceMapUpdate で再描画
// map.forceMapUpdate();
鉄道路線形状のオプションを設定する — 詳細な使用例
鉄道路線を路線カラーでベクター描画します。 mocha の
/operation/trainから取得した運行情報リストを渡すことで、 運行状況(遅延・運転見合わせなど)を路線の色に反映できます。 クリック・ホバー・マウスエンター・マウスリーブの各インタラクションに対応しています。RailwayShapeConditionコンストラクタ引数 (RailwayShapeInitOptions)zoomRangeZoomRangeoperationInfoItemsJsonObject[]/operation/trainから取得した運行情報リストaccentKeyMapperMap<string, 0|1|2|3|4|5>appearanceCallback(data, zoomLevel) => RailwayShapeAppearanceappearanceCallback戻り値 (RailwayShapeAppearance)colorColorweightnumberisAccentedbooleantrue)isStripedbooleantrue)isToppedbooleanfalse)isVisiblebooleantrue)コールバック引数 (
RailwayShapeData)companyIdstringcompanyNamestringrellineIdstringrellineNamestringrellineColorstring#RRGGBB)lineTypenumberoperationRailwayOperationData[]