У меня есть это приложение с картой Kendo, и каждый раз, когда я использую увеличение или уменьшение масштаба, я теряю выбранные цвета.Как я могу предотвратить это?Есть ли свойство, которое я могу использовать, чтобы сделать его постоянным после выбора?Вот мой код карты:
var selectedCountries = [];
var hitLocation = '';
function createMap() {
$("#map").kendoMap({
controls: {
navigator: false
},
center: [45.268107, 17.744821],
zoom: 3,
minZoom:2,
markerClick: onClick,
layers: [{
type: "shape",
dataSource: {
type: "geojson",
transport: {
read: "../Scripts/countries.geo.json"
}
},
style: {
fill: {
color: "#0091DA",
opacity: 0.2
},
stroke: {
width: 2,
color: "#FFF"
}
}
}
],
shapeCreated: onShapeCreated,
markers: mrks // markers data on the js file
});
}
А вот как я выбираю фигуры, попадающие в маркер:
var shapesById = {};
function onReset() {
shapesById = {};
}
function onShapeCreated(e) {
var id = e.shape.dataItem.id;
shapesById[id] = shapesById[id] || [];
shapesById[id].push(e.shape);
}
function onClick(e) {
var location = e.marker.tooltip.marker.options.tooltip.content;
$.each(data, function (index, value) {
if (location == value.countryName) {
var id = value.shapeCode;
var shapes = shapesById[id];
var shape = shapes.dataItem;
shapes[0].options.fill.set("color", "orange");
shapes[0].options.set("fill.opacity", 1);
}
});
if ($('#country-list span:contains("' + location + '")').length) {
// console.log("country exist on the list");
} else {
$('#country-list').append("<a href='#'><span class='badge badge-primary'>" + location + " <i class='fa fa-times-circle'></i></span></a>");
selectedCountries.push(location);
hitLocation = location;
console.log("selected countries:", selectedCountries);
}
}
Каждый раз, когда я увеличиваю или уменьшаю выбранный цвет, исчезает моя задницазначение массива сохраняется.