私はセシウム系のディスプレイを持っていて、地図上のアイテムの表示をコントロールしたいチェックボックス(クラス.checkbox
)があります。 :セシウムディスプレイからGeoJSONをロード&アンロード
var loadedGeometries = {};
// We want to load/unload geometries when clicking on the checkboxes
$('.checkbox').on('click', function (event) {
var geometryID = id; // some unique database ID for the object to be displayed
if ($(this).prop('checked')) {
// it's checked, load it onto the map
$.get('/geometry/' + geometryID, function (data) {
var myDataSource = Cesium.GeoJsonDataSource.load(data['points'], {
markerSize: 24,
markerColor: Cesium.Color.RED,
markerSymbol: 't'
}); // data['points'] is GeoJSON
// Add it to the viewer
viewer.dataSources.add(myDataSource);
// Remember the data source by ID so we can delete later
loadedGeometries[geometryID] = myDataSource;
}, 'json');
// SUCCESS! THIS PART WORKS!!
} else {
// unchecked, unload it from the map
viewer.dataSources.remove(loadedGeometries[geometryID], true);
delete loadedGeometries[geometryID];
// FAILURE: OBJECT STILL ON THE MAP?!
}
});
ジオメトリがロードされ、予想どおりに表示されますが、チェックボックスをオフにすると、データはマップ上に残ります。 dataSource
のremove
機能が、私が期待していることを実行しているかどうかは不明です。これはディスプレイからDataSource
を削除する正しい方法ですか?
ありがとうございました!私は一からロード/アンロードについて同意します。現時点では、基本的な機能をいくつか試しています。再度、感謝します! – fiveclubs