kvbradanalysis's People
kvbradanalysis's Issues
Neuer Service PUT
Es soll ein Service implementiert werden, der es erlaubt die Analyse anzustarten. Dafür soll der Service kvbradrouting abgefragt werden und die Ergebnisse in die Tabelle ROUTINGANALYSE eingefügt werden:
/**
* curl -X PUT http://<server>/kvbradanalysis/service/put
*/
@PUT
@Path("/put")
public void putRoutingAnalyse() {
// do it
}
Umbau der Schnittstelle geojson
Zur Zeit wird der GeoJson über die Schnittstelle
/kvbradanalysis/service/geojson
aufgerufen. Dies soll geändert werden. Analog soll zu anderen Schnittstellen Implementierungen soll das geojson durch Übergabe des Parameter '?geojson' abgerufen. Da der Service zur Zeit nur GeoJson antworten kann wird auch ohne Übergabe des Parameter geojson zurückgeliefert. Als Pfadangabe soll das Schlüsselwort 'tracks' verwendet werden:
/kvbradanalysis/service/tracks?geojson
Farbgebung des GeoJson dynamisch machen
Zur Zeit wird die Farbgebung der LINESTRINGs, die der geoJson - Service liefert, in kvbrad/app.js festgelegt. Dies soll so geändert werden, dass die Schwellwerte durch den kvbradanalysis - Service festgelegt werden.
Verarbeitung des minCount
Zur Zeit wird der minCount, ein Schwellwert, der bestimmt, ab welcher Benutzungshäufigkeit ein Track angezeigt wird, durch das Mittel der abgespeicherten Tracks bestimmt. Dieser soll zusätzlich von aussen gesetzt werden können.
Schnittstelle tracks: Schwellwerte durch Übergabeparameter
Es soll eine Schnittstelle eingerichtet werden, die es ermöglicht, die Schwellwerte durch Übergabeparameter zu definieren. Dies erfolgt durch eine Liste an index-Werten. Ein Indexwert kann zwischen 0 und 1 betragen. Es sollen höchstens 10 Schwellwerte unterstützt werden. Dabei gilt für die Schwellwerte jeweils die Bedingung, dass die Zahl für 'kleiner als' steht: '0.25' => index < 0.25. Bei Übergabe der Schwellwerte werden sie nach Größe sortiert.
Beispiel für die Schwellwerte '0.25,0.5,0.75':
/kvbradanalysis/service/tracks/0.25,0.5,0.75?geojson
Beispiel für die Schwellwerte '0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9':
/kvbradanalysis/service/tracks/0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9?geojson
Erstellen der LINESTRING Layer anpassen
Zur Zeit wird jeder Substring als eigener LINESTRING im geojson ausgeliefert. Dies hat zur Folge, dass sehr viele Objekte gerendert werden müssen, mit der Folge, dass die Darstellung der analysierten Strecken sehr langsam ist.
Es soll geprüft werden, ob und mit welchen Mitteln es möglich ist, eine bessere Performance zu ermöglichen.
Neuer Service geojson
Es soll ein Service geojson implementiert werden, der die Ergebnisse der Analyse in Form eines geoJson zurückgibt. Der REST endpoint lautet auf kvbradanalysis/service/geojson
. Um den Linestring in verschiedenen Farben darstellen zu können, besteht die FeatureCollection aus Features mit MultiLineStrings. Die Farbe wird über das propertie color gesetzt. Damit ist es möglich in Leaflet über jeden Layer die entsprechende Farbe zu definieren:
geojson_layer.eachLayer(function (layer) {
if(layer.feature.properties.color== 'green') {
layer.setStyle({fillColor :'green'})
}
});
Implementierung der Schnittstelle delete
Es soll eine Schnittstelle implementiert werden, die es erlaubt historische Daten zu löschen. Durch einen Übergabeparameter kann die Anzahl der zu löschenden Einträge justiert werden. Für ein kontinuierliche Pflege des Datenbestandes, würde die Schnittstelle periodisch über eine CRON aufgerufen.
/kvbradanalysis/service/delete/{days}
Aufruf der Schnittstelle analog zur Schnittstelle put.
delete method implementieren
Es soll eine REST-Endpoint zum Löschen der bisherigen Einträge in der routing-Tabelle implementiert werden. Dadurch kann der Datenbestand zurückgesetzt werden.
/**
* curl -X DELETE http://<server>/kvbradanalysis/service/delete
*/
@DELETE
@Path("/delete")
public void deleteKvbradAnalysis() {
// do it
}
Anzahl der Farben verringern
Zur Zeit wird unterstellt, dass insgesamt 5 Farben zur Darstellung verwendet werden. Dies ist nicht unbedingt notwendig. Es reicht aus die Nutzung mit drei Farben darzustellen:
- #d7191c (rot)
- #fdae61 (gelb)
- #a6d96a (grün)
Rot werden alle stark benutzten Strecken gekennzeichnet, gelb alle Strecken, die weniger häufig benutzt werden und grün alle anderen Strecken.
Schreibe Werte in analysisresult
Die Analyse der Daten sieht zwei Schritte vor:
- schreibe die Routing Fragmente in die Tabelle
analysis
- aggregiere die Routing Fragmente in die Tabelle
analysisresult
Der erste Schritt kann inkrementell erfolgen. Für den zweiten ist es notwendig zunächst die bisherigen Werte zu löschen und dann die neuen Werte einzufügen. Hierfür muss zwischen 1. und 2. Schritt noch ein Löschschritt für die Tabelle analysisresult
hinzugefügt werden.
Performance mit turf.js verbessern
Zur Zeit werden die angezeigten Strecken per GeoJson FeatureCollection (LineString) übertragen. Vermutlich führt dies zu erheblicher Last im Client. Mit Hilfe der JavaScript Bibliothek turf.js; combine kann eine FeatureCollection in ein MultiLineString Feature geändert werden. Dies sollte die Performance verbessern.
Hierfür müssen die unterschiedlichen Farben von unterschiedlichen Endpoints ausgeliefert werden.
- /kvbradanalysis/service/geojson/d7191c
- /kvbradanalysis/service/geojson/fdae61
- /kvbradanalysis/service/geojson/a6d96a
Dabei steht die kryptische Zeichenkette am Ende für den Farbwert, der angezeigt werden soll.
Schnittstelle `/data/{bike}` implementieren
Die Schnittstelle /data/{bike}
liefert alle Informationen zu einem Fahrrad zurück. Das Format ist json. Es ist damit die Grundlage, um GeoJson mit MultilineStrings zurückzuliefern
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.