Release Notes - Map SDK
3.0.3
Released Jul 29, 2024
Bugfix:
- a fix for minor compatibility issues
3.0.2
Released Jul 18, 2024
Bugfix:
- a fix for styles loading
3.0.1
Released June 10, 2024
Bugfix:
- a fix for internal imports
3.0.0
Released June 10, 2024
With this release, we bring a more comfortable developer experience for Python users. While the developer experience for Typescript users was already pretty good because of types that the library provides and the language support in different IDEs, we wanted to put some more effort into DX for Python users. We also added a new page for Python best practices.
Breaking changes:
- renaming various utility classes
- moved new layer classes from
experimental
submodule to the root of the module
See the Migration Guide for more details on how to upgrade.
New additions:
- Top level exports - the complete API is now exposed at the "root level". Just import the Map SDK via
import foursquare.map_sdk as map_sdk
and then access all classes and functions viamap_sdk.*
(for examplemap_sdk.create_map()
ormap_sdk.PointLayer()
) - Keyword Arguments - all Python functions and class initializers now accept their arguments as keyword arguments (kwargs) as well.
- Layer classes - All 19 layer types now have specialized Python classes that cover all functionality for each layer type, with optimized type hints and docstrings
.to_json()
and.from_json()
methods are provided to quickly retrieve layers' JSON configuration and use in combination with the layer JSON configuration editors in FSQ Studio, as well as other map SDK functions, e.g.map.add_layer_from_config(my_trip_layer.to_json())
..clone()
method is provided to be able to make a deep copy of a layer instance, so that you can quickly make multiple copies that have only small differences between them
See the Python layer guide for full examples and a references to the new Python classes and methods!
2.1.0
Released Apr 29, 2024
New additions:
- introduced an
experimental
Python module with new classes for some of the most common layer types
2.0.0
Released Apr 24, 2024
This release signifies our effort to bring you an experience with a closer integration of various Foursquare products and capabilities, setting up a path for our users to be able to utilize cloud-based geospatial functionality and have more control and security over access and management of individual and organization resources.
See the Migration Guide for more details on how to upgrade.
Breaking changes:
- Renamed libraries:
- Python:
foursquare.map-sdk
- Javascript:
@foursquare/map-sdk
- Python:
- A new, non-optional parameter (
apiKey
) is required when creating a new map (see Authentication to learn more about it). - Dropped support for Python 3.7 (this affects only Python users). This version of Python officially reached its end-of-life in June 2023 (see Status of Python versions for more information).
New additions:
setViewFromConfig()
- set a view state directly from its JSON representationaddFilterFromConfig()
- add a filter to the dataset, directly from its JSON representationsetAnimationFromConfig()
- set animation details, directly from its JSON representation
Additional changes and bug fixes:
- Improved: Typescript types for layers, annotations, filters and datasets have been adjusted
- Improved: error messages are more uniform and should provide slightly better information
- Bug fix: (for JS)
map.addToDOM()
was fixed, making it easier to mount and unmount, or relocate, the map within DOM - Bug fix: the loading spinner has been fixed to be contained within the boundaries of its respective map container
- Change (internal): a switch to use React 18 has been made - this should provide an improved performance overall
- Change (internal): bump to using Pydantic v2 for better validation errors and reliability (this change also laid out some of the groundwork for additional API changes that we will be rolling out soon to provide a more ergonomic and idiomatic experience for Python users)
1.13.0
Released Nov 1st, 2023
- Added API for annotations
1.12.1
Released Nov 1st, 2023
- Bug fix: providing additional Typescript files.
1.12.0
Released Oct 31st, 2023
- Added addLayerFromConfig, providing safer handling of layer configurations.
- Improvement: rendering maps with Shadow DOM API, providing much better mutual isolation of styles between Map SDK and the rest of the page; also helping resolve multiple visual bugs.
1.11.0
Released Sep 28th, 2023
- Added view mode control. Switch the map between
2D
,3D
, andGlobe
view modes.- Added
setViewMode
andgetViewMode
functions.
- Added
- Added support for loading published Studio maps. Called via the constructor, i.e.:
createMap(initialState: {publishedMapId: '[UUID]'})
. - Added the ability to enable/disable drag rotate via
setView
. - Bug fix: Text labels not parsed in layer configurations.
1.10.1
Released Sep 20th, 2023
- Bug fix: issue encoding characters in HTML.
- Bug fix: custom base maps failed to load.
1.10.0
Released Sep 14th, 2023
- Added support for post-processing effects.
- Bug fix: Map controls not being set correctly.
1.9.1
Released Aug 18th, 2023
- Bug fix: custom base map display issues in the Python Map SDK
1.9.0
Released Aug 2nd, 2023
- Added
columnMode
to theLayerConfig
type. - Bug fix: animation config breaks when multiple trip layers are added.
- Bug fix: not all layers appear when added individually.
- Bug fix: updating trip layer sometimes is not reflected properly.
1.8.2
Released June 16th, 2023
- Bug fix: HTML maps not rendering after function calls.
1.8.1
Released May 17th, 2023
- Bug fixes and performance improvements
1.8.0
Released May 4, 2023
- On-prem users may now allow data export via
MapCreationProps
1.7.0
Release Date: Apr 25, 2023
- replaceDataset now validates the new dataset for any missing or mismatched columns.
- The raster layer now supports categorical mapping of color values to raster image pixels.
1.6.0
Release Date: Mar 8, 2023
- (On-Prem) Added
raster.onTileLoadUpdate
for raster tile requests. - (On-Prem) Added
RasterTileLoadEvent
, a type returning raster tile loading status updates.
1.5.2
Release Date: Nov 1, 2022
- Bug fix: Databricks HTML rendering issues have been resolved.
1.5.1
- Minor changes related to Foursquare Studio rebranding.
1.5.0
Release Date: Oct 25, 2022
- (On-Prem) Added the
urls
parameter to the Python SDK. Note: this parameter has already existed on the Javascript SDK as part of theMapCreationProps
object. - (On-Prem) Added the
onUserEvent
event handler. The listener recieves any user-initiated actions, allowing for improved tracking metrics.
1.4.0
Release Date: Oct 14, 2022
- (On-Prem) Added
transformRequest
for raster tile requests - (On-Prem) Added urls:
applicationUrlBase
andapplicationUrlBase
properties that allows caller to specify URL where they can host on-prem assets loaded by Studio
1.3.1
- Bug fix: Jupyter-related cell synchronization.
1.3.0
Release Date: Sept 27, 2022
- (On-Prem) Added
mapboxAccessToken
property toMapCreationProps.basemaps
- Default map styles will be replaced by custom map styles.
- On-prem users must specify a custom map style. If left unspecified, only the No Basemap will be available for basemap selection.
- (On-Prem) Added
mapName
property toMapCreationProps.uiConfig
- Defaults
mapName
= "Studio"
- Defaults
1.2.0
Release Date: Sept 15, 2022
- Python:
create_map
can now render static HTML maps in Databricks environments. - Added layer groups, conceptual groups used to organize layers. New endpoints:
- Bug fix: Fixed a minor bug where
replaceDataset
would not function unless both datasets had different ids.
- (On-Prem) Added customization support for the "Add Data" button (including a custom event handler) as part of
MapCreationProps.uiConfig
.
1.1.0
Javascript
- Added the
uiConfig
parameter to MapCreationProps, allowing customization of the leftmost Studio panel. Currently a Pro feature available exclusively on the On-Prem SDK.
1.0.1
Javascript
- Fixed an issue when trying to display a map in multiple cells
1.0.0
The initial release of Map SDK v1 presents an improved structure and a variety of new features for both Python and Javascript. In addition to the new functions listed below, existing arguments now accept custom types, providing a more consistent and stable development environment.
Find a full list of functionality in the API overview, then go to any function's page to learn more details about its purpose, accepted arguments, and return properties.
New Dataset Functions
API Function | Description |
---|---|
addTileDataset() | Adds a new tiled dataset to the map. |
getDatasetById() | Retrieves a dataset by its identifier. |
getDatasetWithData() | Retrieves a dataset record with its data for a given dataset. |
getDatasets() | Gets all datasets available on the map. |
replaceDataset() | Replaces a given dataset with a new one. |
updateDataset() | Updates an existing dataset with given values. |
New Filter Functions
API Function | Description |
---|---|
addFilter() | Adds a filter to the map. |
getFilterById() | Retrieves a filter by its identifier. |
getFilters() | Gets all the filters currently applied to the map. |
removeFilter() | Removes a filter from the map. |
updateFilter() | Updates an existing filter with given values. |
updateTimeline() | Updates a time range filter timeline with given values. |
New Layer Functions
API Function | Description |
---|---|
getLayerById() | Retrieves a layer by its identifier. |
getLayerTimeline() | Gets the current layer timeline configuration. |
updateLayer() | Updates an existing layer with given values. |
updateLayerTimeline() | Updates the current layer timeline configuration. |
New Map Functions
API Function | Description |
---|---|
addToDOM() | Adds a map into a container element provided as an argument. (Normally called in constructor.) |
createMap() | Create a new map instance. |
getMapConfig() | Gets the configuration representing the current map state. |
getMapControlVisibility() | Gets the map control visibility settings. |
getMapStyles() | Gets the currently available map styles. |
getSplitMode() | Gets the split mode of the map. |
getView() | Gets the current view state of the map. |
getViewLimits() | Gets the current view limits of the map. |
setView() | Sets the view state of the map. |
setViewLimits() | Sets the view limits of the map. |
0.7.3
- Fix to support
centerMap
in HTMLUnfoldedMap
0.7.2
- addDataset now has a
centerMap
boolean parameter that will center the map to a newly added dataset. Defaults totrue
.
0.7.1
- setViewState can be used to set a
minZoom
,maxZoom
, andmaxBounds
.
0.7.0
Starting from this release the versions of JavaScript and Python Map SDK are synced
- setTheme now allows the user to customize the theme by providing options like the background color of the UI.
- The Map SDK now allows the user to set the map Split Mode between
dual
,swipe
, orsingle
mode with setSplitMode function. Optionally, passing the layer ids will set layer visibility per split view.
0.6.1
- Python: Fix default window size in Visual Studio Code.
0.6.0
- Python: Support for Google Colab notebooks.
- Python: JupyterLab file opener for GeoJSON and CSV files.
- Python: Fix a bug where some messages were not correctly received from JavaScript.
0.5.0
- Python: Add
map_config
andfilters
arguments to be used in theHTMLUnfoldedMap
constructor.
0.4.2
- Python: Add
get_map_config
andset_map_config
methods to theUnfoldedMap
class.
0.4.1
- Python: Fix bug where incorrect version of Studio Studio was loaded.
0.4.0
- Python: Add provisional support for using AWS Location Services basemaps in the Map SDK via
_basemap_style
and_identity_pool_id
arguments toUnfoldedMap
.
0.3.0
- Python: Add support for Databricks notebooks via
HTMLUnfoldedMap
. - JavaScript: Add
getMapConfig
andsetMapConfig
methods to theUnfoldedMap
class.
0.2.3
Release date: Aug 3, 2021
- Added
onGeometrySelection
event handler.
0.2.2
Release date: Jul 8, 2021
- Added
onHover
event handler. - Added
onClick
event handler.
0.2.1
Release date: Jun 23, 2021
- Fixed an issue with
addLayer
function
0.2.0
Release date: Jun 8, 2021
This release brings support for "local" maps, class based API, new map methods and improved event handling support.
- JavaScript:
UnfoldedMap
is now a JavaScript class with methods. This further aligns the JavaScript and Python APIs. UnfoldedMap
- "local" maps that are not saved to the Studio cloud can now be created.UnfoldedMap
-width
andheight
can now be set to CSS strings providing more control of the resizing of the map.- Added
addDataset
function - Added
addLayer
function - Added
removeLayer
function - Added
setFilter
function - Added
setMapEventHandlers
function - Added
onFilter
event handler.
JavaScript Upgrade Guide
JavaScript only:
- To create a new map using Unfolded's Map SDK, use the
new UnfoldedMap(...)
constructor instead of the now deprecatedcreateMap
function. - Other Map SDK functions are now methods on
UnfoldedMap
object (created by thenew UnfoldedMap(...)
constructor). Themap
object argument should not be passed to the corresponding methods. - You now longer need to set
appendToDocument
in the [new UnfoldedMap(...)
constructor unless you want to set it tofalse
. - Map now automatically takes full width and height based on the size of the parent container so there is no need to listen on the
resize
event of the parent container. Values forwidth
andheight
can also be set to CSS strings providing more control of the resizing of the map. - (BREAKING CHANGE) Property
appendToDocument
that is set innew UnfoldedMap(...)
/createMap(...)
is nowtrue
by default.
0.1.2
- Added
setTimelineConfig
function that consolidates timeline settings in a single API. - Deprecated
setTimelineAnimationSpeed
,setTimelineInterval
,toggleTimelineVisibility
, andtoggleTimelineAnimation
. You should usesetTimelineConfig
instead. - Added
setLayerTimelineConfig
function that allows us to use layer timeline features available in certain types of layers. - Added
getLayerTimelineInfo
function that returns information about the layer timeline.
0.1.1
- Added
setTimelineAnimationSpeed
function - Added
getTimelineInfo
function - Added
onTimelineIntervalChange
callback function - Added
isVisible
property with the layers returned ingetLayers
function - Bug fixes and performance improvements
0.1.0 - Initial version
Updated 3 months ago