53 Commits

Author SHA1 Message Date
Oscar Lorentzon
de9ec99079 Report image loading progress.
Push node cache asset stream updates to image loading status.
Do not subscribe directly because the load
status stream will be completed when node asset stream is
completed. Use next instead.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
c5c250f196 Caching spatial edges depend on sequence. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
7dab69d6d7 Separate spatial node caching from edge caching.
Require fill node to be defined when making node full.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
29d30d05fd Cache sequence edges separately from sequence. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
6efe2f69eb Rename graph methods for clarity. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
1cd650ada5 Subscribe to node cache first for performance.
Ensure that the node assets are requested before the sequence and
spatial resources by subscribing to node first.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
bc320e3294 Wrap and expose all node properties. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
0977532ae6 Cache spatial nodes for requested key.
Fill all nodes required for spatial edge calculation
when node is requested.
Use bounding box based on threshold to retrieve
spatial nodes from node index.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
f514c8cac9 Fetch core tiles required for spatial edge calculation. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
313aaefeb2 Track cached nodes.
Initialize caching of node from graph.
Use cache class to ensure that not every created
node has observables created.
Add dispose method to be able to uncache and clear node.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
5f4b55fd57 Cache node assets before returning from graph service. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
c0f1a0b57c Fetch sequence for requested node.
Initialize sequence request in parallell to node return.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
2627926b07 Fetch node properties when requested.
Add node to graph when retrived.
Wrap core properties in public getters.
Add specific API calls for node retrieval.
API response interfaces.
2016-10-14 14:24:12 +02:00
Oscar Lorentzon
9f4787e7ac Add empty caching methods for node and graph. 2016-10-14 14:24:12 +02:00
Oscar Lorentzon
ffc4182bb6 Remove unused node uncaching code. 2016-08-24 08:44:03 -04:00
Oscar Lorentzon
77239f6bf3 Restructure node class.
Make fields private. Provide getters only.
Add methods with clear names for setting properties.
Make internally used graph methods private.
2016-08-24 08:36:00 -04:00
Oscar Lorentzon
f5f98c70e1 Migrate to RxJS 5 beta.
Fixes #116
Fixes #117

Migrate src and spec.
Handle change operator specs.
Install es6-shim typings for RxJS promise support.
Remove RxJS browser file.
Import only needed classes and functions from RxJS to enable
smaller builds.
2016-07-14 13:20:17 -04:00
Oscar Lorentzon
b41d39ad53 Migrate to typings 1.0.
Fixes #135
2016-06-07 14:53:35 +02:00
Oscar Lorentzon
85fce67515 Correct direction parameter type in graph service. 2016-04-21 10:48:10 +02:00
Oscar Lorentzon
8fee10d6d0 Do not cache all eight neighbouring tiles.
The worthy/unworthy logic handles the tile caching so
that all tiles are fetched that are required for edge
calculation.
Improve performance by not caching all eight
neighbouring tiles.
2016-03-31 13:27:07 +02:00
Oscar Lorentzon
f98175028e Retreive key instead of node for next node.
When a node is outside all retrieved tiles the result when
requesting it from the graph is null. This can happen for
sequence edges because they are not spatially related.
When retrieving the key for a sequence edge with a node
that does not exist in the graph a tiles fetch will be
triggered that will result in the node being added to
the graph.
2016-03-31 13:10:32 +02:00
Johan Gyllenspetz
fef3e62cbf Create apiV3 and make VectorTiles return MapillaryObjects 2016-03-01 16:16:33 -08:00
Johan Gyllenspetz
decea2dcf9 Rename GoogleTilesService to VectorTilesService 2016-03-01 12:43:59 -08:00
Johan Gyllenspetz
7af75b8fec Start with getting objects from Google Tile 2016-02-29 21:15:38 -08:00
Oscar Lorentzon
8066b9c52a Use Typings instead of TSD.
Remove deprecated TSD dependency.
Use Typings to install type definitions.
Install rx typings from npm package.
2016-02-29 16:58:56 +01:00
Johan Gyllenspetz
7fe77acb9f Handle errors in image pipelines 2016-02-08 13:51:18 -08:00
Johan Gyllenspetz
084f34ac21 Add worthy logic 2016-02-02 22:42:04 -08:00
Oscar Lorentzon
d0fd5a0413 Return observable to avoid null subscriptions.
Fixes #48

An observable flatMap / selectMany should not return null,
instead it should return an observable with the next
emitted item set to null. Then it is possible to
subscribe. Subscription must handle the possibility of
the next value being null.
2016-02-02 10:15:20 +01:00
Johan Gyllenspetz
9e6e872e75 Add status for actual Image and Mesh loading 2016-01-20 14:03:38 +01:00
Johan Gyllenspetz
83be315025 Make cachedNode a hot observable to disable several loads of meshes and images 2016-01-18 17:47:45 -08:00
Johan Gyllenspetz
d14d6c1006 Codingstandard action adding _x for private, x$ for stream 2016-01-17 18:02:27 -08:00
Johan Gyllenspetz
92d2163818 Add LoadingService indicating for system when load happens 2016-01-14 21:51:38 -08:00
Johan Gyllenspetz
4f2b48b17f Move APIv2 to navigator and add experimental moveCloseTo
* Add search/im/close2 to API
* Move APIv2 initialization to Navigator and push it down
* Add experimental moveCloseTo
2016-01-05 16:49:45 -08:00
Johan Gyllenspetz
8d0b401685 Make sure there is a shutdown of the sequence after the first node is received from GraphService 2016-01-04 22:32:56 -08:00
Johan Gyllenspetz
54ed7063e6 Cache edges through a bot not inside the GraphService 2016-01-04 15:12:01 -08:00
Johan Gyllenspetz
eb6664e4d3 Rename MyGraph to Graph 2016-01-04 14:25:55 -08:00
Johan Gyllenspetz
29fc4cdc37 Remove pristine hack in GraphService 2016-01-04 14:16:46 -08:00
Johan Gyllenspetz
9a50542e5f For speed and demo purposes add temp caching of all edges 2015-12-29 11:09:15 -08:00
Johan Gyllenspetz
e7ab40c8e2 Prepare for cache eveiction of nodes 2015-12-29 10:54:47 -08:00
Johan Gyllenspetz
d43c650292 Seperate MyGraph from GraphService 2015-12-29 10:02:34 -08:00
Johan Gyllenspetz
8e1fe9ba62 Cached edges on node while using experimental GraphService 2015-12-28 22:51:12 -08:00
Johan Gyllenspetz
d1c750f41a Simplify both TilesService and GraphService by using distinct instead of a cache 2015-12-28 13:28:53 -08:00
Oscar Lorentzon
3dc69ef9d9 Compute translation in graph method.
Compute translation from reference lat lon
using rotation.
2015-12-23 23:17:10 +01:00
Oscar Lorentzon
e4d4486cbf Reference is lat, lon and alt. 2015-12-23 22:20:18 +01:00
Oscar Lorentzon
b8edbe8597 Add reference lat lon on graph. 2015-12-23 21:30:49 +01:00
Oscar Lorentzon
6f9644e776 Calculate step edges in graph.
Because translation is at the origin for all
nodes no edges will be returned currently.
2015-12-23 21:23:03 +01:00
Oscar Lorentzon
6b8e26f7fc Retreive edges on current node and graph change.
Map out edges to include edge data in graph.
2015-12-23 20:06:08 +01:00
Johan Gyllenspetz
5a18d1245b Add experimental StateService based on RxJS 2015-12-21 18:44:17 -08:00
Johan Gyllenspetz
aaaca33d0d Better and more correct tiling cache for experimental TilesService 2015-12-19 16:53:22 -08:00
Johan Gyllenspetz
f26d6f2813 Add naive caching for experimental GraphService 2015-12-18 23:14:25 -08:00