Magic Lane
Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog , and this project adheres to Semantic Versioning .

Breaking Change !

Due to improvements of our SDK and map data, we kindly ask you to update your applications and projects with any SDK revision released starting with October 2024 in order to continue using the online Magic Earth map-related services and to continue receiving map updates.

[7.1.24.44.67BD45A3] - 2024-10-31

Added

  • Added new methods in gem.d3Scene.MapView class:

    getMapViewMaxZoomRanges - retrieve the maximum zoom ranges allowed on a MapView

    getMapViewCurrentZoomRange - retrieve the MapView current zoom ranges

  • Added new methods in gem.core.Landmark class:

    setImagePointer - set the landmark image pointer

    getImagePointer - get the landmark image pointer

  • Added new method in gem.core.BitmapContainer class:

    toBMP - return bitmap buffer

  • Added new method in gem.d3Scene.OverlayItem class:

    getImagePointer - returns the overlay item image pointer

Fixed

  • Fixes in class gem.core.App for script loading, landmarks storage, loading resources

  • Fix in class gem.d3Scene.ExternalRendererMarkers for overlay items

  • Fix in class gem.control.StudioQueryDataControl

[7.1.24.34.D8AA1651] - 2024-08-23

Added

  • Added ERouteRenderOptions constant object to define various route display options:

    RRS_Main - Route is main route in collection (i.e., it overlaps all other siblings and has different render settings).

    RRS_ShowTraffic - Display traffic status over the route. Default is true.

    RRS_ShowTurnArrows - Display the turn arrows associated with route guidance. Default is true.

    RRS_ShowWaypoints - Display the route waypoints. Default is true.

    RRS_ShowHighlights - Enable route highlights. Default is true. Public routes will render segments in color for bus, public & car routes; pedestrian parts are rendered differently.

    RRS_ShowUserImage - Display user waypoints images. If enabled, user landmark image will be displayed instead of standard pin image. Default is false.

    RRS_ShowDirectionArrows - Display route direction arrows. If enabled, the direction arrows will be rendered over the route.

  • Added class gem.d3Scene.RouteRenderSettings to manage route render settings

  • Added method getOverlayInfoImage to class gem.d3Scene.OverlayItem that retrieves the image for the overlay layer items

Changed

  • Modified method showRouteInView from class gem.d3Scene.MapView to include parameter routeRenderSettings of type RouteRenderSettings for setting route render settings

Fixed

  • Fix using default zoom level in method centerOnCoordinates from class gem.d3Scene.MapView

  • Fix in method enableOverlayItemWithExternalRendering from class gem.d3Scene.MapView

  • Fixes in class gem.d3Scene.ExternalRenderer related to rendering overlay items

  • Fixes in class gem.d3Scene.ExternalRendererMarkers related to rendering overlay items

  • Fixes in class gem.control.DrawAreaOnMapControl for binding actions controls

  • Fixes in class gem.control.QueryAddedDataControl related to the external renderer

  • Fixes in class gem.control.StudioQueryDataControl related to getting the correct service url

[7.1.24.16.0DC99D31] - 2024-04-17

Added

  • Added a new static method getEVCarModels in the gem.routesAndNavigation class in gemapi.js . This method returns a new instance of gem.routesAndNavigation.EVCarModelsList with the result of Module.getEVCarModels()

  • Added new methods in the gem.routesAndNavigation class:

    setEVProfile(evProfile) : This method sets the EVProfile for the object

    getEVProfile() : This method retrieves the EVProfile from the object

    setCarProfile(carprofile) : This method sets the CarProfile for the object

    getCarProfile() : This method retrieves the CarProfile from the object

  • Added new methods to Landmark:

    setName - Set the name for Landmark

    setDescription - Set Landmark description

  • Added new method to gem.routesAndNavigation.RouteInstruction :

    toEVRouteInstruction() - Get the EV Route Instruction

  • Added EEVChargingConnector constant object to define various types of EV charging connectors

  • Added EVCarModel class in gem.routesAndNavigation with properties and methods to manage EV car models

  • Added EVProfile class in gem.routesAndNavigation extending EVCarModel with additional properties and methods to manage EV profiles

  • Added EFuelType class in gem.routesAndNavigation with static methods to return different types of fuel

  • Added CarProfile class in gem.routesAndNavigation with properties and methods to manage car profiles

  • Added EVCarModelsList class in gem.routesAndNavigation extending Em_Vector with a method to get EV car models

  • Added EVRouteInstruction class in gem.routesAndNavigation with methods to manage EV route instructions

Changed

  • Modified the gem.content class in gemapi.js to include a new property ignoreLegalRestrictions . This boolean property is used to ignore country based legal restrictions related to e-bikes

Fixed

  • Fixed gem.d3Scene.Marker handling in methods:

    movePoint(pointId, coordinates) - corrected point movement logic to handle edge cases

    removePoint(nId) - fixed an issue with removing points from non-existent indices

  • Corrected gem.d3Scene.MapView method:

    registerCameraChangeStateCallback(callback) - fixed callback triggering issues during camera state changes

[7.1.24.9.506186F5] - 2024-02-26

Added

  • Added to class gem.d3Scene.MapView method:

    registerOnViewRendered(callback)

  • Added class gem.d3Scene.Marker with methods:

    addPoint(coordinates, nIndex) - add point by coordinates

    getId() - get id of the vector

    getCoordinatesPartAt(nId) - returns vector of coordinates

    size() - size of the vector

    getInfo() - get information about the vector

    movePoint(pointId, coordinates) - change position of a point

    removePoint(nId) - remove point at index location

  • Added class gem.d3Scene.MarkerCollection with methods:

    createMarker(markerId,coordinates,radius) - create a marker with the specified id

    removeMarker(nId) - remove the marker with the id

    getMarkerAt(nId) - get the marker with the id

    getType() - returns MarkerCollection type

    getName() - get the name of the Markercollection

    getArea() - get bounding box (in WGS coordinates) of the MarkerCollection

    size() - get size

    clear() - clear MarkerCollection

    getGroupHeadItem(nId) - gets the group head marker for the given marker id

  • Added to class gem.control.CustomQueryAddedDataControl option:

    updateInterval - update data source time interval in milliseconds; should be used with option populateForMapBrowse set to false (default 10000 ms)

Changed

  • Added changes to class gem.places.Search in method:

    searchNearby(coordinates, callbackfunction, resultedLandmarks,searchPreferences)

Fixed

  • Added fixes in class gem.d3Scene.MapView in methods:

    createSource(dataType, name,markerCollectionDisplaySettings)

    enableEdit(callback)

    addGeoJsonAsCustomMarkers(geojsonbuffer, name, sourceslist, externalRenderer, maxGroupingLevel = 13)

    registerOverlayItemClickedEvent(callbackfunction)

    getVectorSourceAt(nId)

  • Added fixes in class gem.core.Landmark in method:

    requestWikipediaInfo(callbackfunction, externalInfo)

  • Added fixes in class gem.d3Scene.MarkerCollectionRef in method:

    createMarker(markerId,coordinates,radius)

  • Added fixes in class gem.d3Scene.MarkerCollectionRefList in method:

    get(nId)

  • Added fixes in class gem.d3Scene.ExternalRenderer

  • Added fixes in class gem.core.AppScreen for initialization

  • Added fixes in class gem.control.CustomQueryAddedDataControl

[7.1.24.3.DE654D62] - 2024-01-19

Added

  • Added to class gem.core member:

    gem.core.EAddressField

  • Added to class gem.d3Scene.EUsableIcons members:

    gem.d3Scene.EUsableIcons.YellowBall

    gem.d3Scene.EUsableIcons.BlueBall

    gem.d3Scene.EUsableIcons.Waypoint_Start

    gem.d3Scene.EUsableIcons.Waypoint_Intermediary

    gem.d3Scene.EUsableIcons.Waypoint_Finish

  • Added to class gem.core.Landmark method:

    getAddressField(addressField)

  • Added to class gem.core.App method:

    setCustomUrl(serviceCode,customURL)

  • Added class gem.d3Scene.MarkerCollectionDisplaySettings with methods:

    setPolylineInnerColor(color)

    setPolylineOuterColor(color)

    setPolygonFillColor(color)

    setPolylineInnerSize(innerSize)

    setPolylineOuterSize(outerSize)

Changed

  • Changes in class gem.d3Scene.MapView to methods:

    centerOnCoordinates(coordinates, durationMs, callbackFunction, iXy, zoomLevel) - added optional parameter zoomLevel

    centerOnArea(coordinatesTopLeft, coordinatesBottomRight, durationMs, rectangleFloat, callbackfunction, zoomLevel) - added optional parameter zoomLevel

    createSource(dataType, name, markerCollectionDisplaySettings) - added optional parameter markerCollectionDisplaySettings

  • Changes in class gem.places.Search to method:

    searchByAddress(searchString, detailLevel, parentLandmark, callbackfunction, resultedLandmarks, maximumResults, allowFuzzyResults, searchOnlyOnBoard) - added optional parameters allowFuzzyResults , searchOnlyOnBoard

  • Changes in class gem.d3Scene.MarkerCollectionRef to method:

    createMarker(markerId,coordinates,radius) - added optional parameters coordinates and radius

  • Changes in control class gem.control.SearchControl to method

    searchOnMap(searchInputDiv, searchResultsDiv, mapTopLeft, mapBottomRight, searchPreferences)

[Unreleased] - 2023-08-02

Added

  • Added to data source control class gem.control.ListControl options:

    initOptions.itemSelection - customize list item selection interaction

    initOptions.itemMouseOver - customize list item mouse over interaction

    initOptions.itemMouseOut - customize list item mouse out interaction

    initOptions.itemMouseClick - customize list item mouse click interaction

Changed

  • Bug fixing and improvements for added data source control classes

[Unreleased] - 2023-07-31

Added

  • Added to data source control classes gem.control.GeoJsonAddedDataControl , gem.control.StudioAddedDataControl , gem.control.StudioQueryDataControl , gem.control.QueryAddedDataControl , gem.control.SQLQueryAddedData , gem.control.CustomQueryAddedDataControl options:

    dataOptions.marker.markerMouseOut - customize marker mouse out function

    dataOptions.marker.markerMouseOver - customize marker mouse over function

    dataOptions.marker.markerMouseClick - customize marker click function

    dataOptions.marker.markerItemSelected - customize marker select function

[Unreleased] - 2023-07-21

Changed

  • Added changes in control class gem.control.SearchControl for the search options customization

  • Added changes in control class gem.control.ListControl for the item selection notifier and for the list update flow

[Unreleased] - 2023-07-17

Changed

  • Added changes in control class gem.control.ListControl for the list loading animation

  • Added changes in control classes gem.control.SQLQueryAddedData and gem.control.CustomQueryAddedDataControl for updating the data source

Fixed

  • Added fix in added data base control class gem.control.AddedDataControl for markers icons data filters

[7.1.23.28.BD22B8CA] - 2023-07-10

Added

  • Added for control class gem.control.CustomQueryAddedDataControl option:

    feedDataOptions.updateInterval - time interval for updating the data source, should be used in conjunction with option populateForMapBrowse set to false ; default value is 10000 milliseconds

  • Added for control class gem.control.CategoryFilterControl option:

    filterOptions.categories.filter.value_eval - property value condition used to filter

  • Added for control class gem.control.SearchControl support for searching for a map location by latitude and longitude

Changed

  • Added changes for base control class gem.control.AddedDataControl for supporting categories filter value option value_eval

  • Added changes for control class gem.control.ListControl for scroll item into view functionality

Fixed

  • Added fix for base control class gem.control.AddedDataControl for categories filter on undefined values

  • Added fix for control class gem.control.DistanceFilterControl regarding the filter initialization

[Unreleased] - 2023-06-22

Fixed

  • Fixes for class gem.control.SQLQueryAddedData when using draw area selection filter

Changed

  • Added changes for added control base class gem.control.AddedDataControl . Added support for using nested JSON properties for options:

    dataOptions.markerBubble.title

    dataOptions.markerBubble.image

  • Added changes for control class gem.control.ListControl . Added support for using nested JSON properties for options:

    initOptions.titleProperties

    initOptions.detailsProperties

[Unreleased] - 2023-06-15

Fixed

  • Fixes for class gem.control.AddedDataControl for markers icon filters

[Unreleased] - 2023-06-06

Added

  • Added control class gem.control.SQLQueryAddedData for displaying data on a map using SQL queries to foreign tables as source, with options:

    iconUrl - path/url to marker image/icon; optional, set empty string for default value

    iconFilter - filters for applying different icons to markers based on their properties; optional, set empty string for default value

    iconFilter[].key - data source item property key

    iconFilter[].value - data source item property value

    iconFilter[].iconClass - css class to use for this filter

    dataOptions - options for displaying data source items

    dataOptions.marker - options for markers display on map

    dataOptions.marker.cssClass - specify custom marker style rules

    dataOptions.marker.highlightClass - specify selected marker custom highlight style rules

    dataOptions.marker.width - default 20px

    dataOptions.marker.height - default 20px

    dataOptions.marker.hoverWidth - default 25px

    dataOptions.marker.hoverHeight - default 25px

    dataOptions.marker.markerPos - where to place the marker relative to the item coordinate; default ‘center’

    dataOptions.marker.markerFunction - fully customize marker appearance

    dataOptions.markerBubble - options for styling the marker bubble on click/hover

    dataOptions.markerBubble.title - data source properties to use for marker bubble title text

    dataOptions.markerBubble.image - data source image url property to use for marker bubble image

    dataOptions.markerBubble.width - bubble width; default 240px

    dataOptions.markerBubble.height - bubble height; default 200px

    dataOptions.markerBubble.enableHover - disable marker bubble interaction on hover; default true

    dataOptions.markerBubble.enableClick - disable marker bubble interaction on click; default true

    dataOptions.markerBubble.markerBubbleClass - custom css class for marker bubble

    dataOptions.markerBubble.markerBubbleFunction - fully customize marker bubble

    dataOptions.markerGrouping - marker grouping options

    dataOptions.markerGrouping.maxLevel - maximum map level to apply grouping; default level 13, minimum level 0, maximum level 15

    dataOptions.markerGrouping.style - style to apply to marker groups; default gem.control.MarkersGroupStyleType.default

    dataOptions.markerGrouping.markerGroupFunction - fully customize marker groups style

    markersDataSource - data source options

    markersDataSource.populateForMapBrowse - default true

    markersDataSource.pointsClustering - default false

    markersDataSource.clusterMethod - default 'h3' , other options are 'dbscan' and 'kmeans'

    markersDataSource.foreignServerName - foreign server name; a connection to the remote PostgreSQL database has to be established beforehand

    markersDataSource.sqlMarkersFeedFunction - callback for adding data in the map bounding box and/or the selected area; ex. query: SELECT * FROM foreign_table_name

  • Added control class gem.control.SQLQueryHexagonGrid for displaying hexagon aggregates on a map using SQL queries to foreign tables as source; h3-js library needs to be included before using this class; options:

    sourceOptions - options for initializing the data source

    sourceOptions.debugMode - display current map level and corresponding h3 level, display count at hexagon centroid if available; default false

    sourceOptions.foreignServerName - foreign server name

    sourceOptions.sqlHexFeedFunction - callback for specifying the sql query for the data source and the aggregates to be applied; ex. query: SELECT * FROM foreign_table_name , agg expr: COUNT(*) AS count

    sourceOptions.getHexFillStyle - callback for specifying the hexagon fill style

    sourceOptions.getHexStrokeStyle - callback for specifying the hexagon stroke style

    sourceOptions.lineWidth - hexagon outline width; default 3

    sourceOptions.lineCap - default ‘round’, other options ‘butt’, ‘square’

    sourceOptions.lineJoin - default ‘round’, other options ‘bevel’, ‘miter’

    sourceOptions.interaction - whether to display information when interacting with a hexagon; default true

    sourceOptions.hexBubbleContainer - css class for the information bubble

    sourceOptions.getHexBubbleInfo - callback for creating a custom information bubble

    sourceOptions.showMapLevel - whether to display the current map level; default true

[7.1.23.9.BF8C5E92] - 2023-02-27

Added

  • Added for class gem.core.App method:

    getWorldMapVersion

Changed

  • Changes for class gem.core.App in method:

    destroyApp

[7.1.22.49.BD22B8CA] - 2022-12-05

Added

  • Added for class gem.d3Scene.MapView methods:

    setMapViewDetailsQualityLevel

    addPath

    removePath

  • Added for class gem.routesAndNavigation.Navigation methods:

    isSimulationActive

    setSpeedMultiplier

    getSpeedMultiplier

    getCurrentSpeed

  • Added for class gem.routesAndNavigation.RoutesRequest method:

    setIgnoreRestrictionsOverTrack

  • Added for class gem.routesAndNavigation.Route method:

    exportAs

  • Added for class gem.core.Landmark method:

    setWaypointTrackData

  • Added for class gem.d3Scene.OverlayItem method:

    getImage

  • Added class gem.d3Scene.Path with methods:

    getArea

    getCoordinates

[7.1.22.20.674D8FC9] - 2022-10-19

Added

  • Added class gem.ETouchGestures with methods:

    TG_OnTouch

    TG_OnLongDown

    TG_OnDoubleTouch

    TG_OnTwoPointersTouch

    TG_OnTwoPointersDoubleTouch

    TG_OnMove

    TG_OnTouchMove

    TG_OnSwipe

    TG_OnPinchSwipe

    TG_OnPinch

    TG_OnRotate

    TG_OnShove

    TG_OnTouchPinch

    TG_OnTouchShove

  • Added for class gem.d3Scene.MapView methods:

    enableTouchGestures

    addLandmarkStore

    removeLandmarkStore

  • Added for class gem.core.Landmark method:

    setImageByString

  • Added class gem.d3Scene.OverlayItemList with method:

    get - get store item at position in list

  • Added for class gem.core.LandmarkStore methods:

    startFastUpdateMode

    stopFastUpdateMode

Changed

  • Changes for class gem.d3Scene.MapView to method:

    registerOverlayItemClickedEvent

  • Changes for class gem.control.NavigationControl in method:

    navInstructionSound

  • Changes for class gem.control.ContentStoreControl

[7.1.22.20.AAC12308] - 2022-05-17

Added

  • Added for class gem.core.Landmark methods:

    getLandmarkStoreId

    getLandmarkStoreType

  • Added for class gem.content.ContentStoreItem methods:

    isCompleted - Check if item is downloaded

    isImagePreviewAvailable - Check if image preview is available

    getImagePreview - Get Image Preview

    getCountryCodes - Get Country Codes list

  • Added for class gem.routesAndNavigation.RouteTrafficEvent method:

    getReferencePoint - Get the traffic event reference point

  • Added class gem.core.LandmarkStore with methods:

    getName

    addLandmark

    getLandmarks

    getLandmarksInArea

    removeLandmark

    removeAllLandmarks

Changed

  • Changes for class gem.core.App regarding persistent storage and route Urls

[7.1.22.11.3C8FB447] - 2022-03-16

Added

  • Added gem.routesAndNavigation.EEBikeType with values

    EBP_None - electric bike profile none

    EBP_Pedelec - electric bike profile pedelec

    EBP_PowerOnDemand - electric bike profile power-on-demand

  • Added to class gem.routesAndNavigation.RoutesRequest method

    setBikeProfileWithElectricType

[Unreleased] - 2022-03-10

Fixed

  • Fixes for class gem.control.RouteControl for route ranges

[Unreleased] - 2022-03-09

Added

  • Added for class gem.routesAndNavigation.ERouteType option

    ERT_Economic - economical route type

  • Added for class gem.routesAndNavigation.RoutesRequest method

    setRouteRanges - set route ranges list; a non empty range list will generate an isocost range route result

  • Added for class gem.routesAndNavigation.RouteSegment method

    getTimeDistance

  • Added for class gem.control.RouteControl functionality for route ranges and bike profile with options

    initOptions.preferences.routeRanges

    initOptions.preferences.routeRanges.rangelist

    initOptions.preferences.routeRanges.quality

    initOptions.preferences.bikeProfile

  • Added for class gem.d3Scene.MapView for method centerOnRouteInstruction optional parameter zoomLevel

  • Added for class gem.d3Scene.MarkerRef for method addPoint parameter nIndex

  • Added for class gem.places.Search method

    cancelSearch

Fixed

  • Fixes for class gem.control.NavigationControl for text to speech functionality

[Unreleased] - 2022-03-08

Fixed

  • Fixes for control class gem.control.SearchControl when using option searchOptions.searchResults.initialPlaceSearch

[7.1.22.05.7D4F76C1] - 2022-02-17

Changed

  • Code refactor for control classes and default style rule changes

[Unreleased] - 2022-01-14

Added

  • Added for class gem.d3Scene.MapView methods:

    setCamera

    centerOnRoutePortion

    getVisibleRouteInterval

    getPathsCollection

  • Added for class gem.content.Manager methods:

    getIconFromId

    getImageAspectRatio

  • Added for class gem.routesAndNavigation.Route methods:

    toPTRoute

    getCoordinateOnRoute

    getPath

  • Added for class gem.routesAndNavigation.RouteInstruction method:

    toPTRouteInstruction

  • Added for class gem.core.Landmark methods:

    setImage

    setCoordinates

  • Added for class gem.core.App methods:

    checkLocationAccess

    requestLocationAccess

    stopLocationAccess

    getDefaultScene

    createCamera

Fixed

  • Fixes for class gem.d3Scene.MapView for method registerHoverLandmarkCallback

  • Fixes for class gem.control.NavigationControl for method navInstructionSound

[Unreleased] - 2021-12-20

Fixed

  • Fixes for class gem.control.ListControl , fix handle for image loading errors

  • Fixes for class gem.control.CategoryFilterControl , fix for starting categories collapsed

[Unreleased] - 2021-12-15

Fixed

  • Fixes for class gem.d3Scene.ExternalRenderer for marker icon filters and for marker data labels

[Unreleased] - 2021-12-13

Added

  • Added for class gem.control.CategoryFilterControl option:

    filterOptions.startCollapsed - show filter categories collapsed at start-up (default value is true )

[Unreleased] - 2021-12-10

Changed

  • Changes for gem.control.DrawAreaOnMapControl , zoom to draw area after drawing is finished

[Unreleased] - 2021-12-09

Fixed

  • Fixes for map loading animation in method gem.core.App.createLoadingCircle

  • Fixes for gem.control.ListControl list loading animation

[Unreleased] - 2021-12-08

Added

  • Added for classes gem.control.AddedDataControl , gem.control.StudioAddedDataControl , gem.control.GeoJsonAddedDataControl , gem.control.QueryAddedDataControl , gem.control.CustomQueryAddedDataControl , gem.control.StudioQueryDataControl options:

    dataOptions.markerBubble.enableHover - enable/disable marker bubble interaction on hover (default value is true )

    dataOptions.markerBubble.enableClick - enable/disable marker bubble interaction on click (default value is true )

[Unreleased] - 2021-12-06

Added

  • Added for class gem.control.CategoryFilterControl options:

    filterOptions.collapsible - create a collapsible filter (default value is true )

    filterOptions.cssClasses.filterHeader - specify custom style rules for filter header

    filterOptions.cssClasses.collapsible - specify custom style rules for filter collapsible

[Unreleased] - 2021-12-03

Fixed

  • Fixes for narrow screens in gem.core.App.initApp

[Unreleased] - 2021-12-02

Added

  • Added for class gem.control.ListControl options:

    initOptions.cssClasses.divItemImage - options for customizing style rules for list item images

    initOptions.cssClasses.divItemImage.className

    initOptions.cssClasses.divItemImage.type - default value is div

    initOptions.cssClasses.divItemContent - options for customizing style rules for list item content

    initOptions.cssClasses.divItemContent.className

    initOptions.cssClasses.divItemContent.type - default value is div

Changed

  • Changes for gem.control.ListControl for default list item style

[Unreleased] - 2021-11-29

Fixed

  • Fixes for gem.control.CategoryFilterControl , make filters labels clickable

  • Fixes for gem.control.DrawAreaOnMapControl for draw button

[Unreleased] - 2021-11-26

Fixed

  • Fixes for gem.control.DrawAreaOnMapControl

[7.1.21.50.D7BCA8D6] - 2021-11-23

Added

  • Added control for drawing an area on the map canvas gem.control.DrawAreaOnMapControl with options:

    drawOptions - draw area control options

    drawOptions.button - start/stop drawing button options

    drawOptions.button.parentContainer - the parent element id where to add the draw button element

    drawOptions.button.activateText - button text to display for starting a draw area operation (default value Draw area on map )

    drawOptions.button.deactivateText - button text to display for stopping a draw area operation (default value Stop drawing )

    drawOptions.button.cssClass - set custom style rules for the start/stop draw button

    drawOptions.dialogPopup - dialog popup for invalid area options

    drawOptions.dialogPopup.cssClass - set custom style rules for the dialog

    drawOptions.dialogPopup.textInfo - text to display in the dialog (default value Please draw an area )

    drawOptions.dialogPopup.cssDismissButton - set custom style rules for the dismiss dialog button

    drawOptions.dialogPopup.dismissText - text to display in the dismiss dialog button (default value Ok )

    drawOptions.drawStyle - specify custom drawing options for the area

    drawOptions.drawStyle.lineWidth - set custom line width in px (default value 3 )

    drawOptions.drawStyle.lineCap - default value is round , other options are butt or square

    drawOptions.drawStyle.lineJoin - default value is round , other options are bevel or miter

    drawOptions.drawStyle.stroke - set custom stroke style ( default value is rgba(55, 71, 79, 0.9) )

    drawOptions.drawStyle.fill - set custom fill style ( default value is rgba(129, 156, 169, 0.4) )

    drawOptions.areaData - options for data source inside the area

    drawOptions.areaData.maxCoords - specify maximum number of coordinates to collect from the drawing ( default value is 900 )

    drawOptions.areaData.markerGroupMaxLevel - specify markers maximum grouping level (default value is 13 )

  • Added to class gem.control.AddedDataControl method notifyAreaSelection

  • Added to class gem.control.CustomQueryAddedDataControl options:

    feedDataOptions.markersFeedFunction - callback for adding data during map browse

    feedDataOptions.markersAreaSelectionFunction - callback for adding data in the selected area

Fixed

  • Fixes for map copyright element gem.core.App.createElementCopyright , make not selectable

[7.1.21.43.0A164E49] - 2021-10-30

Added

  • Added category filter control gem.control.CategoryFilterControl with options:

    filterOptions.parentContainer - HTML parent element id

    filterOptions.name - filter name

    filterOptions.title - specify text to use as filter title

    filterOptions.categories - specify categories to apply filter

    filterOptions.categories.label - category display text

    filterOptions.categories.filter - data property to filter by

    filterOptions.categories.filter.key - data property key to filter by

    filterOptions.categories.filter.value - data property value to filter by

    filterOptions.style - default style ‘radio’

    filterOptions.cssClasses - specify custom style rules

  • Added distance filter control gem.control.DistanceFilterControl with options:

    filterOptions.parentContainer - HTML parent element id

    filterOptions.name - filter name

    filterOptions.title - specify text to use as filter title

    filterOptions.eUnit - default km

    filterOptions.thresholds - distance thresholds array, default [10, 25, 50, 100, 200]

    filterOptions.style - default style ‘dropdown’

    filterOptions.cssClasses - specify custom style rules

  • Added data source control gem.control.StudioQueryDataControl with options:

    dataOptions.marker - options for markers display on map

    dataOptions.marker.cssClass - specify custom marker style rules

    dataOptions.marker.highlightClass - specify selected marker custom highlight style rules

    dataOptions.marker.width - default 20px

    dataOptions.marker.height - default 20px

    dataOptions.marker.hoverWidth - default 25px

    dataOptions.marker.hoverHeight - default 25px

    dataOptions.marker.markerFunction - fully customize marker appearance

    dataOptions.markerBubble - options for styling the marker bubble on click/hover

    dataOptions.markerBubble.title - data source properties to use for marker bubble title text

    dataOptions.markerBubble.image - data source image url property to use for marker bubble image

    dataOptions.markerBubble.width - bubble width in px, default 240px

    dataOptions.markerBubble.height - bubble height in px, default 200px

    dataOptions.markerBubble.markerBubbleClass - custom css class for marker bubble

    dataOptions.markerBubble.markerBubbleFunction - fully customize marker bubble

    dataOptions.markerGrouping - marker grouping options

    dataOptions.markerGrouping.maxLevel - maximum map level to apply grouping ( max allowed 15 ), default level 13

    dataOptions.markerGrouping.style - style to apply to marker groups

    dataOptions.markerGrouping.markerGroupFunction - fully customize marker groups style

[Unreleased] - 2021-10-04

Added

  • Added to data source controls gem.control.GeoJsonAddedDataControl , gem.control.StudioAddedDataControl , gem.control.QueryAddedDataControl , gem.control.CustomQueryAddedDataControl options:

    dataOptions.marker.width - default 20px

    dataOptions.marker.height - default 20px

    dataOptions.marker.hoverWidth - default 25px

    dataOptions.marker.hoverHeight - default 25px

    dataOptions.marker.markerFunction - fully customize marker appearance

  • Added to gem.d3Scene.ExternalRenderer options:

    options.markerFunction - fully customize marker, can also use properties from data

    options.markerWidth - default 20px

    options.markerHeight - default 20px

    options.markerHoverWidth - default 25px

    options.markerHoverHeight - default 25px

    options.markerGroupStyle - default, circle and custom

    options.markerGroupFunction - fully customize marker groups, can also use group size

[7.1.21.38.CDA59AEC] - 2021-09-27

Added

  • Added to data source controls gem.control.GeoJsonAddedDataControl , gem.control.StudioAddedDataControl , gem.control.QueryAddedDataControl , gem.control.CustomQueryAddedDataControl options:

    dataOptions.markerGrouping.style - style to apply to marker groups

    dataOptions.markerGrouping.markerGroupFunction - fully customize marker groups style

[Unreleased] - 2021-09-22

Added

Added classes related to public transport segments info:

  • Added gem.routesAndNavigation.PTRouteSegment

[Unreleased] - 2021-09-13

Added

  • Added to gem.control.ListControl option:

    itemsToLoadAtATime - number of list items to load at a time when scrolling

  • Added gem.control.CustomQueryAddedDataControl , control for displaying data on a map using server database requests

  • Added to gem.control.GeoJsonAddedDataControl , gem.control.StudioAddedDataControl , gem.control.QueryAddedDataControl , gem.control.CustomQueryAddedDataControl options:

    marker.cssClass - specify marker custom style rules

    marker.highlightClass - specify selected marker custom highlight style rules

[Unreleased] - 2021-08-25

Added

  • Added to gem.control.SearchControl options:

    flyToResultAltitude - set fly to result altitude in meters

    cssClasses - specify custom style rules classes

    placeholderText - specify custom search box placeholder text

  • Added to gem.control.ListControl option:

    flyToItemAltitude - set fly to marker altitude in meters

[7.1.21.30.F7B1DCD6] - 2021-07-27

Added

  • Added to gem.control.ListControl option:

    displayCount - display information about number of items (default true )

[7.1.21.29.638B89D9] - 2021-07-21

Added

  • Added to gem.control.GeoJsonAddedDataControl , gem.control.QueryAddedDataControl and gem.control.StudioAddedDataControl option:

    markerHighlightClass - specify custom highlight style rules class for selected marker icon

  • Added class gem.control.RouteControl

  • Added class gem.control.NavigationControl

[Unreleased] - 2021-07-15

Changed

  • Added distance Radius parameter(optional) to gem.places.Search.searchPoiCategory method:

    searchPoiCategory(landmarkCategoryList, coordinates, callback, resultedLandmarks, distanceRadiusMeters)

Added

  • Added to gem.control.SearchControl method:

    setLandmarkResult(landmarkresult) landmarkresult - gem.core.Landmark

[Unreleased] - 2021-07-14

Added

  • Added class gem.control.WikipediaControl with methods:

    constructor(initFiltersOptions)

    initControl(parentDiv, mapView)

    cameraChangedCallback()

    preRenderCallback()

    setControlMode(mode)

    notifySearchSelection(item)

    wikipediainfocallback(wikiResult)

    visibilityReceiver(visibility)

[7.1.21.28.AA5888F6] - 2021-07-13

Changed

  • Changes in gem.d3Scene.MapView in method:

    centerOnRoute(route, durationMs, rectFloat) - added optional parameter rectFloat

  • Changes in gem.control.AddedDataControl in methods:

    mouseOver(item, jsonObject, position)

    createMarkerPopup(item, jsonProperties) - place default marker hover inside map canvas when it’s near edges

[Unreleased] - 2021-07-09

Added

  • Added to gem.control.GeoJsonAddedDataControl in data options:

    disableZoomToData - default false , if set to true disables zooming to the data source at startup

Changed

  • Changes in gem.control.GeoJsonAddedDataControl in method:

    doParseData(parentDiv, mapView) - disable zoom to data source if option is enabled

  • Changes in gem.control.AddedDataControl in constructor

  • Changes in gem.d3Scene.MapView in method:

    centerOnArea(coordinatesTopLeft, coordinatesBottomRight, durationMs, rectangleFloat, callbackfunction) - renamed parameter

[7.1.21.27.F0A8520E] - 2021-07-08

Added

  • Added to gem.control.SearchControl in searchOptions options:

    setCursorReferencePoint - default false ( reference point is center of map envelope ), if set to true the search reference coordinate is set at the last cursor position

    initialPlaceSearch - default no value, specify a search start-up location

Changed

  • Changes in gem.d3Scene.ExternalRenderer in methods:

    onMouseOutEvent(event)

    async createButton(self, item, itemId, groupsize, screenCoords, coordsPoint)

  • Changes in gem.d3Scene.ExternalRendererMarkers in methods:

    createDivForButton(itemId, item, groupsize)

  • Changes in gem.control.SearchControl in constructor and methods:

    createSearchControls(mapDiv, mapTopLeft, mapBottomRight, searchPreferences)

    searchOnMap(searchInputDiv, searchResultsDiv, mapTopLeft, mapBottomRight, searchPreferences)

    resultOnClick(pickedResult, searchInputDiv)

[Unreleased] - 2021-07-07

Added

  • Added to gem.control.SearchControl in searchOptions options:

    mapEnvelope - for setting a custom map envelope for searching

    showLandmarkIcons - for showing search results landmark icons

  • Added to gem.control.SearchControl method:

    setCanvas(image_data, width, height, canvas)

    onMouseOutEvent(event)

Changed

  • Changes in gem.control.SearchControl in methods:

    constructor(searchOptions)

    initControl(container, mapView)

    displayResults(resultList, searchInputDiv, searchResultsDiv)

  • Changes in DataQuerySearchControl in:

    constructor(searchOptions, addedDataControl)

[Unreleased] - 2021-07-06

Added

  • Added comments to gem.control.SearchControl explaining the search control options

Changed

  • Changes in gem.control.SearchControl in methods:

    constructor(initSearchControlOptions) - highlight search result options added

    initControl(container, mapView) - handle highlight options

    resultOnClick(pickedResult, searchInputDiv) - handle highlight options

[Unreleased] - 2021-07-05

Added

  • Added gem.control.zIndex - contains z-index levels for various controls

  • New methods added to gem.control.AddedDataControl :

    createMarkerPopup(jsonProperties)

    getPropertyString(markerProps, arrProperties, separator = ', ')

  • New method added to gem.control.GeoJsonAddedDataControl :

    cameraChangedCallback()

  • New methods added to gem.control.ListControl :

    createListItem(item)

    flyToMarker(item)

Changed

  • Changes in gem.d3Scene.MapView in method:

    addGeoJsonAsCustomMarkers(geojsonbuffer, name, sourceslist, externalRenderer, maxGroupingLevel = 13) - added parameter maxGroupingLevel

  • Changes in gem.d3Scene.ExternalRenderer in methods:

    onMouseOverEvent(event) - added item validity checks

  • Changes in gem.control.AddedDataControl in methods:

    constructor(whenToTriggerInit, loadingMethod, dataOptions) - new parameter dataOptions for styling marker bubbles and grouping options

    mouseClick(item, jsonObject, position)

    mouseOver(item, jsonObject, position) - fix z-index

    mouseOut(item) - fix z-index

    itemSelected(item) - fix z-index and added item validity checks

  • Changes in gem.control.StudioAddedDataControl in:

    constructor(layerMarkersId, iconLocation, dataOptions) - new parameter dataOptions for styling marker bubbles

  • Changes in gem.control.GeoJsonAddedDataControl in methods:

    constructor(geoJsonFileOrObject, iconLocation, iconFilter, dataOptions) - new parameter dataOptions for styling marker bubbles and grouping options

    doParseData(parentDiv, mapView)

  • Changes in gem.control.QueryAddedDataControl in methods:

    constructor(initQueryAddedDataOptions, iconLocation, dataOptions)

    initControl(parentDiv, mapView)

  • Changes in gem.control.ListControl in methods:

    itemSelectionNotifier(item) - fix for selecting a marker and highlighting the corresponding list item

    initControl(parentDiv, mapView) - fix for scrollable list part

    updateIndividualList(list, htmlIdentifier, mapView)

    updateList(htmlIdentifier, mapView, storeId)

    createMarkerListItem(marker, itemId)

    flyTo(marker, itemId)

Removed

  • Removed from gem.control.ListControl methods:

    mouseClick(item, jsonObject, position)

    mouseOver(item, jsonObject)

    mouseOut(item)

    createMarkerPopup(jsonProperties)

    getPropertyString(markerProps, arrProperties, separator = ', ')

[Unreleased] - 2021-07-01

Added

  • New methods added to Em_Object :

    getFormattedText()

    getValue()

  • New method added to gem.d3Scene.MapView :

    registerOnTouchEvent(callback)

  • Constructor added to gem.core.RectangleGeographicAreaList

  • New method added to gem.d3Scene.OverlayItem :

    cacheData()

  • New method added to gem.d3Scene.ExternalRenderer :

    registerItemSelectedCallback(callback)

  • New methods added to gem.core.StoreLocationList :

    push_back(storeLocation)

    queryInfo(pView, storeId, cb)

  • New method added to gem.core.StoreLocation :

    delete()

  • New methods added to gem.core.StoreLocationLang :

    getFormattedText()

    getValue()

  • New object added gem.control.LISTSORTMODE

  • New method added to gem.control.BaseControl :

    preRenderCallback()

  • New method added to gem.control.SearchControl :

    notifySearchSelectionListeners(item)

  • New methods added to gem.control.AddedDataControl :

    setPointOfInterestAndRadius(coords, radius)

    notifySearchSelection(item)

    requestFieldValues(key, callback)

    registerVisibilityNotifier(callback)

    notifyVisibility(value)

    setControlMode(mode)

    notifiyChangeFilterData(key, value)

    preRenderCallback()

    itemSelected(item)

    registerItemSelectionListener(callback)

  • New methods added to gem.control.StudioAddedDataControl :

    addItemToList(itemElementHtmlId, item, itemId, isGroup)

    checkFilters(item)

    notifySearchSelection(item)

    filterData()

    removeItemFromList(itemElementHtmlId, item, itemId)

    setPointOfInterestAndRadius(coords, radius)

    cameraChangedCallback()

    notifiyChangeFilterData(key, value)

    setControlMode(mode)

  • New methods added to gem.control.QueryAddedDataControl :

    setControlMode(mode)

    setPointOfInterestAndRadius(coords, radius)

    notifySearchSelection(item)

    notifiyChangeFilterData(key, value)

    requestFieldValues(key, cb)

  • New methods added to gem.control.ListControl :

    itemSelectionNotifier(item)

    updateIndividualList(list, htmlIdentifier, mapView)

    retainSelectedItem(item, jsonObject, position)

  • Added class DataQueryControl with methods:

    constructor(dataSourceId, iconUrl)

    cameraChangedCallback()

    initControl(parentDiv, mapView)

    getItemsList()

    getItemsSource()

    updateDataSource()

  • Added class DataQueryFiltersControl with methods:

    constructor(initFiltersOptions, addedDataControl)

    initControl(parentDiv, mapView)

    createFilterCategoryControl(parentDiv)

    createDistanceFilterControl(parentDiv)

  • Added class DataQuerySearchControl with methods:

    constructor(initSearchControlOptions, addedDataControl)

    resultOnClick(pickedResult, searchInputDiv)

  • Added class FiltersControl with methods:

    constructor(initFiltersOptions)

    visibilityReceiver(visibility)

    initControl(parentDiv, mapView)

    populateFilterControl(itemsList)

    createDistanceFilterControl(parentDiv)

Changed

  • Change in gem.core.RectangleGeographicAreaList in method push_back(item)

  • Changes in gem.d3Scene.OverlayItem to methods:

    getPreviewData() - added check if item has preview data

    getCoordinates() - added check if item coordinates are valid

  • Changes in gem.core.App in method initApp(initOptions)

  • Changes in gem.d3Scene.ExternalRenderer in methods

    onClickEvent(event)

    getIconLocation(item, isFunction)

    createButton(self, item, itemId, groupsize, screenCoords, coordsPoint)

  • Changes in gem.core.StoreLocation in method queryInfo(pView, storeId, cb)

  • Changes in gem.d3Scene.ExternalRendererMarkers in methods

    createDivForButton(itemId, item, groupsize)

    onClickEvent(event)

  • Changes in gem.control.SearchControl in constructor and methods:

    resultOnClick(pickedResult, searchInputDiv)

    clearSearchText()

  • Changes in gem.control.AddedDataControl in constructor and methods:

    mouseOver(item, jsonObject, position)

    formatJson(p)

  • Changes in gem.control.StudioAddedDataControl in constructor and methods:

    initControl(parentDiv, mapView)

  • Changes in gem.core.AppScreen in method:

    initFinished()

  • Changes in gem.control.GeoJsonAddedDataControl in constructor and methods:

    doParseData(parentDiv, mapView)

  • Changes in gem.control.QueryAddedDataControl in constructor and methods:

    initControl(parentDiv, mapView)

  • Changes in gem.control.ListControl in constructor and methods:

    initControl(parentDiv, mapView)

    updateList(htmlIdentifier, mapView, storeId)

    createMenuListItemObserver(listItem)

    handleMenuListItemIntersect(entries, observer)

    createMarkerListItem(marker, itemId)

    mouseClick(item, jsonObject, position)

    createMarkerPopup(jsonProperties)

    flyTo(marker, itemId)

Removed

  • Removed from gem.control.ListControl methods:

    addItemToList(htmlIdentifier, marker, itemId, isGroup)

    removeItemFromList(itemHTMLID, item, itemId)

[Unreleased] - 2021-06-08

  • Initial release