-
Glenn Vorhes authoredGlenn Vorhes authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
sortedFeatures.js 4.27 KiB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Created by gavorhes on 12/23/2015.
*/
const provide_1 = require("../util/provide");
let nm = provide_1.default('olHelpers');
class SortedFeatures {
// sortedFeatures: Feature[];
// propertyName: string;
// _propertyType: string;
constructor(features, propertyName) {
// this.sortedFeatures = features;
// this.propertyName = propertyName;
// if (this.sortedFeatures.length > 0) {
// this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];
//
// // let __this = this;
// this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{
// if (this._propertyType == 'number'){
// let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];
// if (aMinusB == 0){
// return 0;
// } else {
// return aMinusB > 0 ? 1 : -1;
// }
// } else if (this._propertyType == 'string'){
// let propA = a.getProperties()[this.propertyName] || '';
// let propB = b.getProperties()[this.propertyName] || '';
// propA = propA.toString().trim();
// propB = propB.toString().trim();
//
// if (propA == propB){
// return 0;
// } else {
// return propA > propB ? 1 : 0;
// }
// }
// });
// }
}
// getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature {
getFeature(propertyValue, exactMatch = false, sortedFeatures) {
// if (typeof sortedFeatures == 'undefined'){
// sortedFeatures = this.sortedFeatures;
// }
//
//
// if (sortedFeatures.length == 0){
// return undefined;
// }
//
// if (sortedFeatures.length == 1){
// if (exactMatch){
// if (sortedFeatures[0].getProperties()[this.propertyName] == propertyValue){
// return sortedFeatures[0];
// } else {
// return undefined;
// }
// } else {
// return sortedFeatures[0];
// }
// }
//
// let lowProp = sortedFeatures[0].getProperties()[this.propertyName];
// let highProp = sortedFeatures[sortedFeatures.length - 1].getProperties()[this.propertyName];
//
// if (exactMatch){
// if (lowProp == propertyValue){
// return sortedFeatures[0];
// } else if (propertyValue < lowProp){
// return undefined;
// } else if (highProp == propertyValue){
// return sortedFeatures[sortedFeatures.length - 1];
// } else if (propertyValue > highProp){
// return undefined;
// }
// } else {
// if (propertyValue <= lowProp){
// return sortedFeatures[0];
// } else if (propertyValue >= highProp){
// return sortedFeatures[sortedFeatures.length - 1];
// }
// }
//
// let midIndex = Math.floor(sortedFeatures.length / 2);
// let midFeature = sortedFeatures[midIndex];
// let midProperty = midFeature.getProperties()[this.propertyName];
//
// if (midProperty === propertyValue){
// return midFeature;
// }
//
// if (propertyValue < midProperty){
// return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(0, midIndex));
// } else {
// return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(midIndex));
// }
return null;
}
}
nm.SortedFeatures = SortedFeatures;
exports.default = SortedFeatures;
//# sourceMappingURL=sortedFeatures.js.map