TerriaJS Release Notes 8.9.3 - 8.10.0: Under the Hood Upgrades and Enhanced Map Capabilities
TerriaMap sports a new, shiny look, unaffected by massive under-the-hood dependency upgrades.
We're excited to share the latest TerriaJS advancements, spanning releases 8.9.3 to 8.10.0.
While previous articles highlighted significant UI overhauls and foundational shifts (e.g., the Webpack 5 upgrade), these releases deliver crucial under-the-hood technological upgrades, performance optimizations, and targeted new features. These enhancements improve the stability, efficiency, and capabilities of your TerriaJS-powered maps.
Major Technological Leap: React 18 & MobX React 9
A cornerstone of this update is the completion of the React 18 upgrade, alongside MobX React version 9.
🎉 This finalizes the React modernization efforts previously mentioned as "in progress.
This update brings TerriaJS up to the latest standards for React development, but it also includes breaking changes. Notably, props will no longer automatically convert to observables in class components. Users maintaining custom class components in their TerriaJS applications should review the MobX React v9 guide for migration details.
We've also updated the protomaps-leaflet package to version 5.0.1. This introduces new compatibility requirements, supporting only protomaps basemap tilesets newer than v4.0.
This update leverages the latest advancements in vector tile rendering, requiring a minor adjustment for older tilesets.
Enhanced Map Capabilities & Performance Boosts
These releases deliver specific improvements to how your maps interact with data:
🔎 New Mapbox Search Provider
We've introduced MapboxSearchProvider, offering a new option for geocoding and location search within your applications using Mapbox services. This expands the flexibility of TerriaJS's search capabilities, building upon the new search provider model implemented in earlier versions.
⚙️ More ArcGIS Feature Server Performance Tweaks
For ArcGIS Feature Server layers, TerriaJS now optionally applies a clipping rectangle during tile requests in tiled mode. This optimization significantly reduces server requests, leading to more efficient data loading and improved performance with large datasets. Additionally, changes in unrelated traits no longer trigger layer reloads.
🗾 PMTiles Rendering Fixes
A specific bug causing PMTiles URLs with query strings at the end to not render correctly has been resolved. This ensures a more reliable display of PMTiles data, which is crucial for high-performance vector tile handling.
🗺️ GeoJSON Rendering Fix (TerriaMap Benefit)
While the original regression fix for GeoJSON rendering (where some features weren't displayed) was addressed in TerriaJS 8.9.0/8.9.2, TerriaMap users updating to TerriaJS 8.9.3 will specifically benefit from its inclusion, ensuring that complex GeoJSON features render as expected.
Continuous Internal Refinements
Beyond the headline features, these versions include a steady stream of internal improvements essential for long-term maintainability and future development:
📊 Extensive TypeScript & Component Refactorings
We've continued the widespread conversion of various components to TypeScript and functional components. This includes core UI elements like ChartPanel, MenuButton, WorkbenchItem, SettingPanel, ViewingControls, and DataCatalogGroup. These efforts improve code quality, type safety, and prepare the codebase for future innovations.
🧹 Dependency Management & Cleanup
Older polyfills, such as regenerator-runtime and direct core-js usages, have been removed, reflecting the broader adoption of modern JavaScript features across browsers. Numerous other packages have been upgraded to address security vulnerabilities and ensure the platform remains up-to-date (e.g., gulp, DOMPurify, prettier, and html-to-react).
📚 Documentation & UI Consistency
Updates include aligning data-attribution and terms of conditions links to terria.io and hiding the "Related Maps" button, streamlining the user experience and ensuring consistency.
😍 What’s Next?
❤️ We are working on more active engagement with the open-source community, updating the TerriaJS technical documentation, and improving testing environments.
❤️ Want to be part of what’s next? We’d love your feedback and contributions!
📌 Get Involved & Read the Full Release Notes
🔹 Read the full changelog on GitHub: CHANGES.md
🔹 Have feedback? Join the conversation in our GitHub Discussions.
🔹 Want to contribute? Check out our developer guide and get involved!
About Terria
Terria makes it easy to build advanced maps and digital twins, so you can see the bigger picture. Our digital maps and spatial digital twin technology make it easy for you to unlock the full potential of your data, enabling faster, smarter decision-making. We help you transform complex data into clear, actionable insights, so you can tackle real-world challenges with confidence and precision.
At Terria, we believe that data transparency has the power to transform how businesses operate, make decisions, and engage with stakeholders—ultimately leading to better outcomes for all. Find out more here https://terria.io/about
To stay updated on all Terria Community activity, follow us on LinkedIn and X