Release Notes - Map SDK
3.1.0
Released March 6, 2025
- Added API for tooltip configuration.
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
experimentalsubmodule 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_sdkand 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
experimentalPython 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, andGlobeview modes.- Added
setViewModeandgetViewModefunctions.
- 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
columnModeto theLayerConfigtype. - 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.onTileLoadUpdatefor 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
urlsparameter to the Python SDK. Note: this parameter has already existed on the Javascript SDK as part of theMapCreationPropsobject. - (On-Prem) Added the
onUserEventevent handler. The listener recieves any user-initiated actions, allowing for improved tracking metrics.
1.4.0
Release Date: Oct 14, 2022
- (On-Prem) Added
transformRequestfor raster tile requests - (On-Prem) Added urls:
applicationUrlBaseandapplicationUrlBaseproperties 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
mapboxAccessTokenproperty 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
mapNameproperty toMapCreationProps.uiConfig- Defaults
mapName= "Studio"
- Defaults
1.2.0
Release Date: Sept 15, 2022
- Python:
create_mapcan 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
replaceDatasetwould 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
uiConfigparameter 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
centerMapin HTMLUnfoldedMap
0.7.2
- addDataset now has a
centerMapboolean 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, orsinglemode 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_configandfiltersarguments to be used in theHTMLUnfoldedMapconstructor.
0.4.2
- Python: Add
get_map_configandset_map_configmethods to theUnfoldedMapclass.
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_styleand_identity_pool_idarguments toUnfoldedMap.
0.3.0
- Python: Add support for Databricks notebooks via
HTMLUnfoldedMap. - JavaScript: Add
getMapConfigandsetMapConfigmethods to theUnfoldedMapclass.
0.2.3
Release date: Aug 3, 2021
- Added
onGeometrySelectionevent handler.
0.2.2
Release date: Jul 8, 2021
- Added
onHoverevent handler. - Added
onClickevent handler.
0.2.1
Release date: Jun 23, 2021
- Fixed an issue with
addLayerfunction
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:
UnfoldedMapis 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-widthandheightcan now be set to CSS strings providing more control of the resizing of the map.- Added
addDatasetfunction - Added
addLayerfunction - Added
removeLayerfunction - Added
setFilterfunction - Added
setMapEventHandlersfunction - Added
onFilterevent 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 deprecatedcreateMapfunction. - Other Map SDK functions are now methods on
UnfoldedMapobject (created by thenew UnfoldedMap(...)constructor). Themapobject argument should not be passed to the corresponding methods. - You now longer need to set
appendToDocumentin 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
resizeevent of the parent container. Values forwidthandheightcan also be set to CSS strings providing more control of the resizing of the map. - (BREAKING CHANGE) Property
appendToDocumentthat is set innew UnfoldedMap(...)/createMap(...)is nowtrueby default.
0.1.2
- Added
setTimelineConfigfunction that consolidates timeline settings in a single API. - Deprecated
setTimelineAnimationSpeed,setTimelineInterval,toggleTimelineVisibility, andtoggleTimelineAnimation. You should usesetTimelineConfiginstead. - Added
setLayerTimelineConfigfunction that allows us to use layer timeline features available in certain types of layers. - Added
getLayerTimelineInfofunction that returns information about the layer timeline.
0.1.1
- Added
setTimelineAnimationSpeedfunction - Added
getTimelineInfofunction - Added
onTimelineIntervalChangecallback function - Added
isVisibleproperty with the layers returned ingetLayersfunction - Bug fixes and performance improvements
0.1.0 - Initial version
Updated 7 months ago
