Skip to content
Snippets Groups Projects
Commit f73a1e91 authored by Glenn Vorhes's avatar Glenn Vorhes
Browse files

sorted features

parent af4ac686
No related branches found
No related tags found
No related merge requests found
import Feature from 'ol/Feature';
export declare class SortedFeatures {
sortedFeatures: Feature[];
propertyName: string;
_propertyType: string;
constructor(features: Feature[], propertyName: string);
getFeature(propertyValue: string, exactMatch?: boolean, sortedFeatures?: Feature[]): Feature;
}
export default SortedFeatures;
"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 {
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;
}
}
exports.SortedFeatures = SortedFeatures;
nm.SortedFeatures = SortedFeatures;
exports.default = SortedFeatures;
//# sourceMappingURL=sortedFeatures.js.map
\ No newline at end of file
{"version":3,"file":"sortedFeatures.js","sourceRoot":"","sources":["../../src/olHelpers/sortedFeatures.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,6CAAsC;AAEtC,IAAI,EAAE,GAAG,iBAAO,CAAC,WAAW,CAAC,CAAC;AAE9B,MAAa,cAAc;IAKvB,YAAY,QAAmB,EAAE,YAAoB;QACjD,kCAAkC;QAClC,oCAAoC;QAEpC,wCAAwC;QACxC,6FAA6F;QAC7F,EAAE;QACF,4BAA4B;QAC5B,sEAAsE;QACtE,+CAA+C;QAC/C,yGAAyG;QACzG,iCAAiC;QACjC,4BAA4B;QAC5B,uBAAuB;QACvB,+CAA+C;QAC/C,gBAAgB;QAChB,sDAAsD;QACtD,sEAAsE;QACtE,sEAAsE;QACtE,+CAA+C;QAC/C,+CAA+C;QAC/C,EAAE;QACF,mCAAmC;QACnC,4BAA4B;QAC5B,uBAAuB;QACvB,gDAAgD;QAChD,gBAAgB;QAChB,YAAY;QACZ,UAAU;QACV,IAAI;IACR,CAAC;IAED,oHAAoH;IACpH,UAAU,CAAC,aAAqB,EAAE,aAAsB,KAAK,EAAE,cAA0B;QACzF,iDAAiD;QACjD,gDAAgD;QAChD,QAAQ;QACR,EAAE;QACF,EAAE;QACF,uCAAuC;QACvC,4BAA4B;QAC5B,QAAQ;QACR,EAAE;QACF,uCAAuC;QACvC,2BAA2B;QAC3B,0FAA0F;QAC1F,4CAA4C;QAC5C,uBAAuB;QACvB,oCAAoC;QACpC,gBAAgB;QAChB,mBAAmB;QACnB,wCAAwC;QACxC,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,0EAA0E;QAC1E,mGAAmG;QACnG,EAAE;QACF,uBAAuB;QACvB,yCAAyC;QACzC,wCAAwC;QACxC,+CAA+C;QAC/C,gCAAgC;QAChC,iDAAiD;QACjD,gEAAgE;QAChE,iDAAiD;QACjD,gCAAgC;QAChC,YAAY;QACZ,eAAe;QACf,yCAAyC;QACzC,wCAAwC;QACxC,iDAAiD;QACjD,gEAAgE;QAChE,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,4DAA4D;QAC5D,iDAAiD;QACjD,uEAAuE;QACvE,EAAE;QACF,2CAA2C;QAC3C,6BAA6B;QAC7B,QAAQ;QACR,EAAE;QACF,wCAAwC;QACxC,gGAAgG;QAChG,eAAe;QACf,6FAA6F;QAC7F,QAAQ;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAhGD,wCAgGC;AAED,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;AACnC,kBAAe,cAAc,CAAC","sourcesContent":["/**\r\n * Created by gavorhes on 12/23/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport Feature from 'ol/Feature';\r\nlet nm = provide('olHelpers');\r\n\r\nexport class SortedFeatures {\r\n sortedFeatures: Feature[];\r\n propertyName: string;\r\n _propertyType: string;\r\n\r\n constructor(features: Feature[], propertyName: string) {\r\n // this.sortedFeatures = features;\r\n // this.propertyName = propertyName;\r\n\r\n // if (this.sortedFeatures.length > 0) {\r\n // this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];\r\n //\r\n // // let __this = this;\r\n // this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{\r\n // if (this._propertyType == 'number'){\r\n // let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];\r\n // if (aMinusB == 0){\r\n // return 0;\r\n // } else {\r\n // return aMinusB > 0 ? 1 : -1;\r\n // }\r\n // } else if (this._propertyType == 'string'){\r\n // let propA = a.getProperties()[this.propertyName] || '';\r\n // let propB = b.getProperties()[this.propertyName] || '';\r\n // propA = propA.toString().trim();\r\n // propB = propB.toString().trim();\r\n //\r\n // if (propA == propB){\r\n // return 0;\r\n // } else {\r\n // return propA > propB ? 1 : 0;\r\n // }\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n // getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature {\r\n getFeature(propertyValue: string, exactMatch: boolean = false, sortedFeatures? :Feature[]): Feature {\r\n // if (typeof sortedFeatures == 'undefined'){\r\n // sortedFeatures = this.sortedFeatures;\r\n // }\r\n //\r\n //\r\n // if (sortedFeatures.length == 0){\r\n // return undefined;\r\n // }\r\n //\r\n // if (sortedFeatures.length == 1){\r\n // if (exactMatch){\r\n // if (sortedFeatures[0].getProperties()[this.propertyName] == propertyValue){\r\n // return sortedFeatures[0];\r\n // } else {\r\n // return undefined;\r\n // }\r\n // } else {\r\n // return sortedFeatures[0];\r\n // }\r\n // }\r\n //\r\n // let lowProp = sortedFeatures[0].getProperties()[this.propertyName];\r\n // let highProp = sortedFeatures[sortedFeatures.length - 1].getProperties()[this.propertyName];\r\n //\r\n // if (exactMatch){\r\n // if (lowProp == propertyValue){\r\n // return sortedFeatures[0];\r\n // } else if (propertyValue < lowProp){\r\n // return undefined;\r\n // } else if (highProp == propertyValue){\r\n // return sortedFeatures[sortedFeatures.length - 1];\r\n // } else if (propertyValue > highProp){\r\n // return undefined;\r\n // }\r\n // } else {\r\n // if (propertyValue <= lowProp){\r\n // return sortedFeatures[0];\r\n // } else if (propertyValue >= highProp){\r\n // return sortedFeatures[sortedFeatures.length - 1];\r\n // }\r\n // }\r\n //\r\n // let midIndex = Math.floor(sortedFeatures.length / 2);\r\n // let midFeature = sortedFeatures[midIndex];\r\n // let midProperty = midFeature.getProperties()[this.propertyName];\r\n //\r\n // if (midProperty === propertyValue){\r\n // return midFeature;\r\n // }\r\n //\r\n // if (propertyValue < midProperty){\r\n // return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(0, midIndex));\r\n // } else {\r\n // return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(midIndex));\r\n // }\r\n return null;\r\n }\r\n}\r\n\r\nnm.SortedFeatures = SortedFeatures;\r\nexport default SortedFeatures;\r\n\r\n"]}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment