Releases: iTowns/itowns
Releases · iTowns/itowns
Release v2.9.0
2.9.0 (2019-04-01)
Features
- core: add Extent.copy(extent) (786d853)
- core: add Extent.expandByValues (efeec80)
- core: add function to copy and transform Extent (a2bdabf)
- fetcher: add a multiple method to load a bunch of files (6c616d7)
- FirstPersontControl: enabled: a boolean used to enable or disable this control (cf4f495)
- parser: add a simple Shapefile parser (de42db7)
- StreetControls: enabled: a boolean used to enable or disable this control (6ee3d7f)
Performance Improvements
- converter: add extent checks in Feature2Texture (e2f0c93)
BREAKING CHANGES
Extent.crs()
andExtent._crs, Extent.west(), Extent.east(), Extent.south()
andExtent.north()
are replaced byExtent.crs
and getterExtent.west, Extent.east, Extent.south and Extent.north
.- The Function
Extent.extentParent
has renamed toExtent.tiledExtentParent
. - The Function
Extent.expandByPoint
has renamed toExtent.expandByCoordinates
. - Remove
PanoramaView
,PanoramaLayer
,StaticSource
andPanoramaTileBuilder
.
Bug Fixes
- 3dtiles: enable draco loader for b3dm (a4c442a)
- 3dtiles: fix batch table support, for null object. (a0408ad)
- chore: prepare 'Three js examples' didn't export all functions. (ce7a6d2)
- controls: check if targetOrientation is defined in travel of planarControls. (b8a1328)
- controls: fix of removeEventListener in GlobeControls.dispose. (fe7bf07)
- controls: fix ORBIT touch event making North down. (0d6ab33)
- core: event target change doesn't trigged with little change (bf2e54e)
- core: wrong default parameter in OBB.setFromExtent (d1a3bed)
- debug: add a check if folder already exists (f9d0245)
- example: fix Geoportail stream for administrative boundaries (97d5eb1)
- example: undefined value to enable realistic atmosphere (af7714f)
- examples: dilate extent to Region WMS to show entire data. (08189fc), closes #1067
- examples: refresh debug gui with correct color status. (b91b017)
- FirstPersonControls: add boolean isFirstPersonControls (a21235b)
- process: bad calling of window.setTimeout (60c61e4)
- process: pass, through the command, the parsedData attached to textures (eb8c1ba)
Code Refactoring
- convert: in convert to tile mesh separate init tile from layer (5455da8)
- core: add zoom to each extent of tile (7475a3f)
- core: compute ColorLayers sequence order only one time, in tileLayer.preUpdate (2610963)
- core: Extent to Es6 class (cf18241)
- core: remove spread syntax in Extent (e8525ae)
- layer: use layer.projection to add MaterialLayer and move colorLayersOrder in tileLayer (b89d678)
- process: add default time Stamp parameter to LayerUpdateState.canTryUpdate. (7e6f25e)
- process: extract common functions in layered material processing. (2bdc27d)
- provider: make DataSourceProvider more modulable (4152104)
- three: remove all instanceof THREE.* (bb19d1b)
examples
- stream: Add stream from Geoportail (Cassini, Etat Major and Top25) (beaeb7c)
- update examples using FileSource (b8686ff)
Tests
Chores
- add draco library in examples/libs (4ac4818)
- docs: add generation of each property type in typedef (f0b0eab)
- docs: add generation of return description for methods (997c14c)
- clean some useless things (70af947)
- remove PanoramaView, PanoramaLayer, StaticSource and PanoramaTileBuilder. (e977f30)
- update to Three r102.1 (d3ff2d3)
- examples: clean eslintrc (8e98262)
- upgrade packages after new release 2.8.0 (d22f12c)
Release v2.8.0
2.8.0 (2019-03-01)
Features
- core: support metric unit to convert Extent to Obb (8f850fc)
- 3dtiles: add 3D Tiles extension support (92f4aba)
- 3dtiles: implement 3DTILES_batch_table_hierarchy extension (0f4d3f7)
- 3dtiles: update batch table support (bc01f50)
- example: Add an example demonstrating 3D Tiles batch table hierarchy extension management (262ceae)
- parser: add a kml parser and modify gpx parser (ba4a174)
- StreetControls: add click and go, surface helpers, click and look at, tweens animations : (ca4f8d5)
- TileMesh: add a boolean to know if it's a TileMesh or not, without doing an instanceof (287b914)
BREAKING CHANGES
- parser: GpxParser doesn't return a THREE.Mesh anymore.
Code Refactoring
- core: extend Atmosphere from GeometryLayer (75206b3)
- debug: remove useless traverse nodes to select them (50565f5)
- debug: use GeometryLayer for debug Layer (02f5db4)
- examples, tests: factorize 3d tiles examples and tests common helpers (5c5749a)
Documentation
- add generation of typedefs in the documentation (3c9a438)
- 3dtiles: expose documentation of 3D Tiles related classes (a9066e3)
Chores
- docs: add eslint check for jsdoc scripts (a610c95)
- fix 'npm ci' when it prints npm version. (555921b)
- remove useless global directive (353bbb7)
- update packages (f4c0742)
- core: remove useless condition (9907641)
- core: useless condition to parse xbil data (04683f6)
- core: useless return (0bff6f5)
- docs: Local variable 'tutorials' is not used (b9cb452)
- docs: required module component 'taffy' is not used (b0013d1)
- test: rename test/examples to test/functional (21dd2c5)
- update THREE.js to r101.1 (ce002f7)
- 3dtile: useless variable assignment (23b9bd7)
- tests: remove useless littleEndian parameter for UInt8 (0926dcf)
- Required module component 'patchedPath' is not used. (dd494c6)
example
- immersive: add debug UI, and change the name of 'WFS buildings' layer to 'Buildings', and increase background radius from 80 to 1 200 (89fef54)
- 3D Tiles: reduce padding of 3D Tiles examples feature info div (7fcb3b2)
Tests
- example: add tests for 3D Tiles batch table hierarchy extension example (d7bb4eb)
Bug Fixes
- core: error in condition to get difference between camera transformation (a536e9a)
- core: forgotten Extent instantiation in projection convert (349e2df)
- core: problem with debug layer because PanoramaView haven't Atmosphere (195f506)
- core: wrong handling error with the layer.id (e1c96c2)
- example: change id building in wfs functional test (06555c2)
- example: update the gpx example to create directly meshes in it (4d6febc)
- gpx: waypoint are scaling correctly (05bfc52), closes #1045
- security vulnerability in lodash (c27e220)
- core: remove condition on scheduler singleton (3784d10)
- examples: forgotten variable declaration (f7c72f5)
- examples: wrong altitude for buildings in immersive paris example. (8b79e1f)
- OrientedImageCamera: increase default far from 1000 to 10 000. (bc057cc)
- OrientedImageMaterial: it supports opacity. (710a970)
- process: fix and unify calls to window.setTimeOut (e88480e)
- source: wrong handling error with file (a558e2e)
- view: picking: Add a log warning when user try to pick on a layer not ready. (4803371)
Release v2.7.1
2.7.1 (2019-02-01)
the important features in this version
OrientedImageLayer
to display immersive view with oriented images andStreetControls
to navigate inside. See example Immersive Paris.- Function
removeLayer
to remove color, elevation and geometry layers from viewer.
Features
- controls: Street controls, to move the camera from a point to another point. (67eea6c)
- converter: add batchId attribute in mesh from convert of feature2Mesh (e54a44a)
- core: function get layer by Id (af2d582)
- core: function removeLayer to remove color, elevation and geometry layers from viewer (6b772ed), closes #906
- OrientedImageLayer: add the previous pano position to the onPanoChanged event. (27e825e)
- OrientedImageLayer: Specific layer to show oriented images. (4a9b57f)
- parser: add option to override altitude incoming (from source) by 0. (c3a1f43)
- parser: add the possibility to specify parser (e7e9c5e)
- StreetControls: add a previousPosition, binded on key S, to move camera to previousPosition. (3fa4b18)
- StreetControls: The user can now change key binding (e64828e)
- wms: enable vendor specific parameters (b8a9c9c), closes #959
Bug Fixes
- 3dtiles: region extent is treated as an OBB (4339851)
- controls: Fix key in FirstPersonControl, remove prevent default. (33aee47)
- core: avoid to access to DOM properties (c64ff59), closes #140
- core: fix delete OrientedImageLayer (46f5de2), closes #1018
- core: missed layer to layer.source (5099a8a)
- core: wrong Z min and max to compute tile's obb (a7a4e84)
- gui: Fix GUI debug color layer and elevation layer (b0b4c6c)
- loop: Add a preUpdate call for attached geometry layers (877c623)
- test: reduce displayed tiles count because of the improvement horizon culling (a96a63a)
- utils: wrong filtering with filterFeaturesUnderCoordinate (48745d4)
- security vulnerability detected in webpack-dev-server (18756fc)
- windows install no more backslash (3a1964b)
- example: 3dTile, change ortho image layer source to openSM data, to avoid many warnings. (d14aadd)
- example: Immersive example, update camera projection matrix. (0d158d1)
- example: Improve performance on immersive example. (1f8323f)
- example: wrong filtering to get layer with FileSource (a82ebbc)
- example: wrong altitude for buildings in immersive paris example. (8b79e1f)
- example: wrong properties in layers json files (50ec664)
- example: wrong property to filter layers by type (e135e92)
Chores
- example: update jsonlayers url to https (26b1d04)
- check node version to prevent error in THREE examples installation (eae303c)
- update and rewrite contents in README and other .md files. (185ef25)
- docs: add a README concerning the documentation of itowns (fc804b9)
- check PUPPETEER_SKIP_CHROMIUM_DOWNLOAD to warn user (5c26437)
- remove useless propocol properties (8d0976b)
- upgrade packages npm (149208c)
- upgrade to THREE r100 (daba997)
- lint: remove max-length parameter for testing examples (dade5fe)
Code Refactoring
- core: improved results and performance of the culling horizon (0692c05)
- core: issue #1011 question about the usefulness of the test on precision altitute (555e40d)
- core: update preSSE view only when it's needed (f3d9df7)
- core: update size view only when it's needed (59204c8)
- core: update view Matrix view only when it's needed (29fa985)
- example: use batchId attributes to pick buildings (c1a32be)
- layer: replace all layer.type by layer.isLayer (6d017a5), closes #951
Documentation
- StreetControls: update doc for key code properties (fcdd0cb)
Examples
- immersive: Example Immersive Paris. (5ef1d02)
- immersive: update to manage previous pano key binding (c891b11)
Tests
- add new tests for camera (9a40a5e)
- add tests on View.removeLayer with ColorLayer, ElevationLayer and GeometryLayer (846ea34)
- disable default node warning regarding event listeners (a4028ff)
- pick feature from Layer with SourceFile (b998fce)
- trap console errors when an example page is loaded (73458ec)
Release v2.6.0
2.6.0 (2018-12-19)
- documentation : new documentation and filter tool. Documentation link
Features
- OrientedImageMaterial: Material used to compute projective textures. (bd737eb)
- fetcher: add the possibility to specify fetcher (83ab9e1), closes #954
- layer: add isXXXLayer properties to layers objects (41933f4)
- view: add support for a coordinate when creating a GlobeView (6947b78)
- debug: add sse helper on tiled geometry layer (f4a8afe)
BREAKING CHANGES
- source: Sources as instance. see a example
- source: the origin property of TMSSource has been replaced by a
boolean, isInverted, that serves the same goal, but using a boolean. - source: the protocol property no longer exists, instead to test
the type of Source, one needs to use the property isSource, adapted to
each type: for example, isWMTSSource tells if the source is WMTSSource. - core: Computing screen space error is changed, so tile subdivision are different.
- renderer: the API of TileMesh and LayeredMaterial have changed.
- renderer: LayeredMaterialConstants and RendererConstant have
been removed. - layer: layer.options.mimetype is no longer supported, use
layer.format instead
Deprecating
- layer: deprecate adding a layer with only a configuration (fd36d3b)
- source: deprecate adding a source with only a configuration (0f7ca09)
Code Refactoring
- renderer: LayeredMaterial splitted and simplified (810a756)
Bug Fixes
- 3dTilesDebugUI: Fix view.notifyChanges. (eec5ec5)
- core: implement preSSE once and fix the formula (958f124)
- core: wrong parameter in dichotomy strategy. (4df0540)
- debug: disable fog with camera debug rendering (a5169c9)
- doc: wrong includes in doc configuration (326722f)
- examples: fix a bad merge in planar_vector (29d899f), closes #926
- examples: fix the debug menu in oriented_images (7dffe9e)
- examples: forgotten color layers in examples (72e1598)
- examples: instantiate sources for index.html example (3019ce4)
- examples: wrong layer id for picking (e8494a9)
- examples: wrong menu position in 3dtiles (29f62ba)
- FirstPersonControl: Fix a bug introduced in #881. Before this change, this controls was going up when we pressed key up instead of going forward as expected. Now it goes forward again when we press key up. (f734985)
- geometryLayer: wireFrame property change only affect This layer objects. Before this commit, it could also affect objects on attached layers (for example, bounding box from attached debug layers). fix #940 (7ffb31b)
- layer: Add default convert function (2aedd17)
- protocol: error while getting textures and zoom texture, for StaticSource (24d2aea)
- test: wrong synchronization with elevation data and DEMUtils/CameraUTils (ad223ad)
- utils: wrong steps up in hierachy to read altitude in DEM (fc3b50e), closes #936
Release v2.6.1
v2.5.0
2.5.0 (2018-11-08)
Features
- core: add information properties in Layer and TiledGeometryLayer (daa57a7e)
- OrientedImageCamera: Camera extension for oriented images (56fc4a1)
- parser: Camera calibration parser (f8e7753)
Inside
- devDependencies Babel 7, webpack 4, Eslint 5
Bug Fixes
- controls: remove THREE warning (8364c7a)
- core: problem in runtime with bundle itowns and debug (f917be4)
- core: remove useless console.info in animation (b6a5329)
- core: wrong OBB from extent (d0aedf2)
- FirstPersonControl: It now supports Globe view. (1eae7fe)
- debug: error typo on obb properties (bb58aa7)
- doc: wrong camera utils parameter in documentation (dfab6ae)
- shaderUtils: use boundary delimiter in the regex (c62d9e0)
- source: always build an extent in FileSource (375375e)
- test: add node 10 build and remove node 11 build (11.0.0) for the moment (bcb1026)
- test: enhancement bootstrap and globeControls test (da7b75e)
- test: resolve fail test and cleanup boostrap (98ca430)
2.4.0
Resume
- Partial support mapbox vector tile.
- New architecture, add
ColorLayer
,ElevationLayer
,GeometryLayer
andGeometryTiledLayer
. With the will, attach the associated processes to them. - Add source data concept.
WMTS
,WMS
, they are considered sources. It's possible to combine all the types of layers (ColorLayer
,GeometryLayer
..) with any sources. - Fix and re-factorization of
GlobeControls
. - Improved picking.
- Add hole support to geojson to mesh and option to create a unique mesh or a mesh by feature.
- Start support to oriented image. see example
Deprecated
createGlobeLayer
is deprecated, use theGlobeLayer
class instead.createPanoramaLayer
is deprecated, use thePanoramaLayer
class instead.GlobeControls.getCameraTargetGeoPosition
has been deprecated, useGlobeControls.getLookAtCoordinate
.GlobeControls.setCameraTargetGeoPosition
has been deprecated, useGlobeControls.lookAtCoordinate
.GlobeControls.setCameraTargetGeoPositionAdvanced
has been deprecated, useGlobeControls.lookAtCoordinate
GlobeControls.setOrbitalPosition
has been deprecated, useGlobeControls.lookAtCoordinate
BREAKING CHANGES
- core
GlobeControls.moveTarget
is removed useGlobeControls.getCameraTargetPosition
instead. - core: The providers
RasterProvider
,StaticProvider
,TMSProvider
,WFSProvider
,WMSProvider
andWMTSProvider
are replaced byDataSourceProvider
. You must add source option in your layer. see json layer files. - gis:
ellipsoidSizes
fromCoordinates
is no longer a function but an object. - Core: Before this change,
view.addLayer
was throwing some errors directly in
some cases, and rejecting the promise in others. This replaces the
former for the latter in all cases. If you relied on a try/catch block
surroundingview.addLayer
to catch some undocumented errors, you need
to move your error handling code to your promise rejection handler. - core: this modify the signature of all picking functions.
- core: the signature of
Fetcher.texture
has changed, and only return a promise now, instead of an object containing the texture and the promise. - core:
c3DEngine.renderViewTobuffer
has been renamedrenderViewToBuffer
and has a new signature. - core: change
view.notifyChange
signature and semantics - vector:
GeoJSONParser
now returns a Promise - core:
layer.options.mimetype
is removed in favor oflayer.format
. - core: a Provider needs to return a Promise every time after
calling itsexecuteCommand
function. - core: Feature have on array of number to store the coordinates instead of array of
Coordinates
. - core: Upgrade to THREE v97.
- examples: picking WFS (Geometry or color) changes see examples FeatureToolTip and wfs picking.
Features
- controls: make event listeners opt-out for FirstPersonControls (5f20af6)
- core: add a 'radius' parameter to picking methods (4b45651)
- core: add a Cache system with expiration policy (cbf248a), closes #687
- core: add a new
VIEW.LAYERS_INITIALIZED
event (e5ccfbb) - core: add vector tile loading (6411908)
- core: implement layer priorities (985d051)
- core: move url function outside providers (3aef9ca), closes #182
- core: store Layer instead of layer's id (7a93779)
- core: unify tilelayer in globeViewer, planarViewer and panoramaViewer (1e08030)
- core: update to THREE v97 (fa81c64)
- examples: add a loading screen for examples (7428478)
- panorama: add projection type constant #677 (b94ae1a)
- parser: add partial z support for geojson parsing (f0835f3), closes /tools.ietf.org/html/rfc7946#section-9
- pointclouds: use 'changeSource' mechanism to avoid useless work (b67670a)
- pointclouds: compute extent for pointclouds elements (#793) (a2f5950)
- protocols: add Source (b04e83b)
- protocols: add spatial hashing to StaticProvider (#675) (d4ec447)
- renderer: add default background color to texture (01035ac)
Code Refactoring
- core: change the return value of Fetcher.texture (592e8f8)
- core: change
view.notifyChange
semantics (881013d), closes #4 - core: improve render view to buffer / target functions (1b07ea6)
- core: remove unused condition in Scheduler (43b76ef)
- core: Harmonize the mimetype configuration (#597) (b38aa7b)
- gis: change ellipsoidSizes from function to object (f681060)
- vector: add hole support (a212dde), closes #688
Performance Improvements
- protocols: decrease the count of network fetch image/xbil (b891a81)
- protocols: improve performance in geojson parser
- protocols: improve performance to convert feature to mesh or texture
- renderer: stop creating new vector for each feature (#713) (b426336)
Bug Fixes
- 3dtiles: apply matrixWorld to boundingVolume.box (7ae39eb)
- 3dtiles: dont stop subdivision at tileset boundaries (bbf0a9b)
- 3dtiles: fix pnts loading (c091b0d)
- 3dtiles: simplify 3dtiles layer creation (ce9191c)
- badge: fix typo for coverage badge (5319066)
- chore: fix package_lock.json (152ac73)
- chore: tag eslint config as root (f75aed9)
- Coordinates: Concerning coordinate conversions, this commit fixes two bugs: (f3ce0fa)
- core: assign the correct layer property (73f3592), closes #758
- core: assume min level is 0 if not provided for dichotomy strategy (c9c93eb)
- core: avoid clone vector to convert coordinate (06e3313)
- core: Cache return mesh with null geometry (d1ba731), closes #869
- core: chain animations stops after the first animation (d75ca7d)
- core: compute globe fog distance after camera update (d65d4e6)
- core: correct typo in event's name (97f1000)
- core: delay FrameRequesters deletion to avoid breaking updates (139156d)
- core: fix wrong 3dtiles's OBB using BuilderEllipsoidTile (ca6daf1), closes #656
- core: fix wrong cachekey value equal to NaN in geometry building (8414a5d)
- core: force the use of decimal notation in protocol requests (ed4d001)
- core: make sure PlanarControls call notifyChange when needed (2989aea), closes #776
- core: make sure VIEW_EVENTS.LAYERS_INITIALIZED if fired (1cb2fa1)
- core: pass GlobeView options to GlobeLayer (dcb4830)
- core: remove correctly event listener after...
2.3.0
Breaking change
- The geodesic normal in the center of the tile's geometry is aligned with the mesh's local Z axis.
Previously, the tiles were not oriented. their local landmark had the same orientation as the world landmark.
You must take into account the orientation of the tile if you add objects to this tile. - For OSM color layers, user should use the
xyz
protocol instead oftms
(reserved for "real" TMS layers, the difference between the 2 is the y origin) - update to major release THREE v0.89
Features
- 3dtiles
- add wireframe support for 3dTiles layer, and add wireframe checkbox to 3dTilesDebugUI, visible in the 3dTiles example (1a0d632)
- core
- examples
- add gui debug in planar in debug mode only (ccfede0)
- wfs
- Add a debug UI for geometry layer, to change visibility, opacity and toggle wireframe, material size and material linewith (89a05ef)
Performance Improvements
- core
- reduce to obb's highest points for horizon culling (2073699)
- examples
- geometry
- avoid useless computation for elevation layers (eece915)
- protocols
- increase performance to building features (4201967)
Bug Fixes
- 3dtiles
- controls
- core
- blending with premultiplied color to transparent color layer (b8062a3)
- disable logdepthbuffer if EXT_frag_depth is missing (eb6da6d)
- error to update OBBHelper (58ef581)
- fix wrong calculation of the color of the sky (77c19ef), closes #652
- handle near pos. in box3 visibility functions (628eeb3)
- marked dependency is insecure version (b7c222f)
- Prevent to subdivide for poor elevation level (60dccb5)
- use parent extent transformation to compute tile's transformation (84f45ca), closes #668 #642
- wrong building 3dTiles's OBB (20c9a90)
- examples
- gis
- GlobeControls
- minor debug (db99ec1)
- protocols
- wfs
- use bigger integer data type for indices array, for THREE.LineSegments. (133a85b)
2.2.0
2.2.0 (2017-12-15)
Breaking change
- view.addFrameRequester signature changed, you now need to specify a hook point
when registering them. The old behaviour is achieved with MAIN_LOOP_EVENTS.AFTER_CAMERA_UPDATE hook point (seeMainLoop.js
).
So for instance, you should transform the following calls:
view.addFrameRequester(myFunc)
-> view.addFrameRequester('after-camera-update', myFunc)
view.addFrameRequester(myObj)
-> view.addFrameRequester('after-camera-update', myObj.update.bind(myObj))
.
Note that we no more support object with update
function, as it does not really make sense any more with several hook points).
See MainLoop.js for the full list of available hook points.
three.js
andproj4
are now peer dependencies of the npm package. If you are not using the itowns.js bundle, you need to add them to your package.json's dependencies.
v2.1.0
Here is a somewhat complete changelog:
Core:
- FrameRequester: module can now be notified at each animation frame.
- Ability to reproject extent via
Extent.as
DEMUtils
, set of utility to read elevations
Format and protocol support
- Point clouds from potree converter
- 3dTiles: support for batch table, pnts and b3dm RTC.
- WFS/geojson
- GPX support greatly improved
- Add a provider that generates 2D texture from vector datas (geojson, gpx and kml)
Layers:
- options.zoom now takes precedence over configured tileMatrixSetLimits
- It's now possible to specify another Object3D than scene to geometry layers to use when adding children.
- add
GeometryLayer.postUpdate
method - Some helpers to ease the creation of planar and globe geometry have been added
- Child layer now use parent's extent if it doesn't have one already
Controls:
Some new control examples:
- PlanarControls
- FlyControls
- FirstPersonControls
It's now possible to instanciate the globe without using GlobeControls
Examples
In addition of examples for new protocol and format, here are the new showcases:
- Mini-viewer for globe.html
- Cube with elevation and color layers (cubic_planar.html)
- A THREE mesh in an itowns scene (positionGlobe.html)
- Splitted rendering (split.html)
Others
- Countless bug fixes.
- update THREE to 0.87