So far, no use has been made of the third piece of data in the coordinates list, which is the depth of the quake. This data will be presented in the form of a sorted list of the current features when the user presses the Sort button. Let's have a look at the following code snippet:
void sortFeatures(Event evt) { featPlotter.sortFeatures(); DivElement out = querySelector('#depthDetail'); out.nodes.clear(); featPlotter.geoFeatures.forEach((feature) { LIElement detail = new LIElement(); detail.innerHtml = "${feature[5]}km - ${feature[3]}"; out.nodes.add(detail); }); }
The list of features is sorted in the method sortFeatures
, and as Dart knows nothing of the meaning of the contents of the list, we provide a comparator function that decides which feature is deeper by comparing the depth measurement held at index 5
of the list:
List sortFeatures(){ geoFeatures.sort( (a,b) => a[5] - b[5] ); return geoFeatures; }
The comparator receives...