All notable changes to the SDK NuGet package and it's supporting scripts will be documented in this file.
The format is based on Keep a Changelog and the SDK NuGet package adheres to Semantic Versioning.
TextureTileLayer
class that can be extended to customize imagery used by theMapRenderer
. Implementations can request data from other Web Mercator tile services, load texture data from disk, or generate textures on the fly. MultipleTextureTileLayers
can be used and layered together, e.g. to overlay partially transparent textures like weather data.DefaultTextureTileLayer
is added automatically to theMapRenderer
. Pulls sattelite aerial imagery from Bing Maps.- Option to enable MRTK hoverlight functionality on the
MapRenderer
terrain.
- Spammy error logging when key is invalid.
- Inaccurate results when raycasting elevation data.
- Inaccurate rendering of elevation data.
MapContourLineLayer
renders lines of constant elevation. Line interval and color can be changed dynamically.- Various editor scripts for modifying
TextureTileLayers
.
- Ability to increase or decrease the terrain quality of the
MapRenderer
. - Ability to disable high-res 3D terrain models, i.e. only use height-map based elevation.
- Ability to render only a flat map surface by disabling aforementioned 3D terrain sources.
- In-editor mouse controls to drag the center of the
MapRenderer
and adjust it's zoom level. Similar mouse controls added forMapPins
to allow for adjusting a pin's position relative to the map. MapPinLayer
now supports serialization of it's children items, soMapPins
can be added to the layer in the editor rather than strictly at runtime.
- Copyright settings for
MapRenderer
now managed by separate component,MapCopyrightLayer
. This component is auto-added toGameObjects
with aMapRenderer
component.
- Handle case when developer key isn't present more gracefully. Less console spam and
MapPins
will continue to position correctly.
- Initial Bing Maps service API. Currently supports geocoding and reverse geocoding via the
LocationFinder
. - Editor scripts for various components have been moved out of the DLL and are now available in the supporting scripts.
- Editor UI refresh for MapRenderer. Among other visual improvements, the developer key field acts as a password field and the value is now hidden by asterisks.
MapScene
animation-related logic has been modularized and is now customizable. Default implementation moved to supporting scripts.- Refreshed editor UI for the
MapRenderer
.
- Clamp boundary values for various
MapRenderer
properties like center and zoom level.
- Method to calculate scale ratio between the map and Unity's world space.
DefaultAnimationController
implementation used for animatingMapScenes
. This implementation improves the animation speed to account for the logarithmic scaling of zoom level.
- Additional max distance parameter for the raycast API.
- Provide normal and distance in the raycast result.
- Extension class to
MapRenderer
for transforming points between Unity's world and local coordinate spaces to the map's geographic coordinate system (latitude, longitude, and altitude).
- Rolled back elevation fallback logic which was based on BC1 texture support of the device. Unity is decoding BC1 to RGB automatically.
- Raycast API on
MapRenderer
to return hit point and corresponding LatLonAlt of a ray intersection with the map.
- Perf improvement for rendering. Reduces number of vertices required in certain views.
- Map edge no longer dissappears when the map surface is above the viewport.
- Android/iOS compatability improvements: High-res meshes would render incorrectly on devices that do not support the BC1 texture format. If the device lacks BC1 texture support, fall back to elevation-only rendering instead, which uses the widely supported RGB texture format.
- Networking performance improvements.
- Copyright text is now positioned correctly when the map layout is not using the default dimensions.
- Cleaned up the
ClusterMapPin
editor UI to remove unnecessary properties.
- Regression in
MapPin
size when using real-world scale.
- Altitude can now be specified on MapPins.
- Maps SDK-related compnents will now have their help icons direct out to the relevant wiki doc page.
- Custom Maps SDK component icons for the editor are now working again.
MapPins
childed toMapRenderer
are positioned correctly in editor after script reloading.
- Elevation terrain tiles will now fall back to lower LODs correctly.
- Seams between tiles should now be much less visible.
MapRenderer
component that handles streaming and rendering of 3D terrain data.MapPinLayer
that allows for positioningGameObjects
on theMapRenderer
at a specified LatLon.- Ability to cluster
MapPins
perMapPinLayer
. This allows for efficiently rendering large data sets. - Ability to animate the position and zoom level of the map via the
SetMapScene
API. MapLabelLayer
for displaying city labels.- Support for shadow casting and recieving of the map.
- Option to use a custom material for terrain.
- Shader for rendering terrain with support for shadows, heightmap offsets, and clipping to the MapRenderer's dimensions.
- Shader for rendering side of map. Dynamically generates appropriate triangles by the geometry shader. Supports shadows.
- Script with helper functions to navigate the MapRenderer, e.g. panning and zooming.
- Script for animating map to the specified location and zoom level.