removeAnnotationMarkerCondition は同一インスタンスを渡す必要があります。変数として保持しておいてください。import * as GIA from '@ntj/gaia';
const iconTable = map.getIconTableImage();
const iconHeader = map.getIconTableHeader();
if (!iconTable || !iconHeader) {
throw new Error('IconTableが未ロードです');
}
// Condition を変数に保持(削除時に同一インスタンスが必要)
const condition = new GIA.value.AnnotationMarkerCondition({
distance: 32,
isHiddenByBuilding: false,
textureMapping: {
texture: iconTable,
iconHeader,
},
badge: {
fontSize: 14,
offset: new GIA.value.Point(16, 50),
},
clickListener: (_, element) => {
console.log('cluster size:', element.children.length);
console.log('代表marker名:', element.marker.name);
},
mouseEnterListener: (_, element) => {
console.log('hover marker:', element.marker.name);
},
});
const markerTokyo = new GIA.object.AnnotationMarker({
position: new GIA.value.LatLng(35.6812, 139.7671),
name: 'poi_station_pcmap',
scale: 2.0,
label: {
content: '東京駅',
},
});
const markerShinjuku = new GIA.object.AnnotationMarker({
position: new GIA.value.LatLng(35.6894, 139.6917),
name: 'poi_station_pcmap',
scale: 2.0,
label: {
content: '新宿駅',
},
});
condition.addAnnotationMarkers([markerTokyo, markerShinjuku]);
map.addAnnotationMarkerCondition(condition);
// 削除する場合は同じインスタンスを渡す
condition.removeAnnotationMarkers([markerTokyo, markerShinjuku]);
map.removeAnnotationMarkerCondition(condition);
import * as GIA from '@ntj/gaia';
const iconTable = map.getIconTableImage();
const iconHeader = map.getIconTableHeader();
if (!iconTable || !iconHeader) {
throw new Error('IconTableが未ロードです');
}
const allMarkers = generateLargeAnnotationMarkers(); // AnnotationMarker[]
const chunkSize = 999;
for (let i = 0; i < allMarkers.length; i += chunkSize) {
const chunk = allMarkers.slice(i, i + chunkSize);
const condition = new GIA.value.AnnotationMarkerCondition({
distance: 32,
textureMapping: {
texture: iconTable,
iconHeader,
},
});
condition.addAnnotationMarkers(chunk);
map.addAnnotationMarkerCondition(condition);
}
注記マーカーのコンディションを追加する — 詳細な使用例
地図タイル上に重ねてカスタム注記を描画します。 1つの
AnnotationMarkerConditionに追加できるマーカーは 最大999個 です。 複数の Condition をaddAnnotationMarkerConditionで追加することで999個以上に対応できます。 削除は Condition 単位でremoveAnnotationMarkerConditionを呼び出します。