Более

Добавление объектов в векторный слой с помощью флажка


Я пытаюсь добавить объекты к векторному слою с помощью флажка. var featureOverlay = new.ol.FeatureOverlay;

$ ("input: checkbox"). each (function () {var $ this = $ (this); if ($ this.is (": checked")) {featureOverlay.addFeature (feature);} else {featureOverlay. removeFeature (особенность);}}); var polyCoords = []; var coords = "95.61,38.60 95.22,37.98 95.60,37.66 94.97,37.65" .split ("); for (var i in coords) {var c = coords [i] .split (','); polyCoords.push ( ol.proj.transform ([parseFloat (c [0]), parseFloat (c [1])], 'EPSG: 4326', 'EPSG: 3857'));} var feature = new ol.Feature ({geometry: новый ol.geom.Polygon ([polyCoords])}) var layer = new ol.layer.Vector ({source: new ol.source.Vector ({features: [feature]})}); var map = new ol. Карта ({цель: 'карта', слои: [новый ol.layer.Tile ({источник: новый ol.source.MapQuest ({слой: 'sat'})}), слой], просмотр: новый ol.View ( {center: ol.proj.transform ([95.22, 37.98], 'EPSG: 4326', 'EPSG: 3857'), масштабирование: 4})});

Прежде всего, вам нужно добавить FeatureOverlay на карту, а затем использовать событие onchange для флажка.

var featureOverlay = new ol.FeatureOverlay ({map: map}); var updateFeat = function () {var $ this = $ (это); если ($ this.is (": проверено")) {featureOverlay.addFeature (функция); } еще {featureOverlay.removeFeature (функция); }}; // each: инициализировать статус функции при открытии страницы // change: обновлять статус функции при каждом щелчке по флажку $ ("input: checkbox"). each (updateFeat) .change (updateFeat);

Вот jsfiddle