smap_flutter 1.1.2
smap_flutter: ^1.1.2 copied to clipboard
sMap for Flutter: maps from the sMap service in Flutter apps, with styles, labels in any language, clustered points, lines, areas and 3D buildings.
Changelog #
1.1.2 — 2026-10-27 #
- The version follows the shared 1.1.2 release; no change of its own.
1.1.1 — 2026-10-27 #
- Offline regions (Android and iOS):
SMapOfflinedownloads an area of the map (bounding box, zooms, scheme or custom style, language) as one file and keeps it on the device:estimate(size, and whether this app may download; counts nothing),download(continues where it stopped when called again),list,get,refresh,remove,usage. A region is shown for 30 days from its download; after that its map data is removed until it is refreshed. SMapOptions.offlineRegionshows a downloaded region from the start,offlineFallbackshows one containing the centre when no node answers (on by default) andofflineAutoRefreshdownloads again regions in their last 3 days while online (on by default).SMapController.offline,useOfflineRegionanduseOnlineswitch at any time; your layers are kept.- Downloads need a token, or a map key whose Allow offline regions switch is on, and are billed as the region's tiles.
- Adds the
path_providerdependency (where regions are kept).
1.1.0 — 2026-10-27 #
- Standard style layers and sources:
addSource,removeSource,sources,addStyleLayer(in a slot, below a layer, with azIndex),setPaint,setLayout,setFilterandgetStyleLayer, for your layers and the basemap's. Layers copied from other map tools work as they are, and every change is kept across style, language and token changes.removeLayerremoves any kind of layer. - Slots:
bottom,roads,labelsandtopplace a layer in the basemap;addPoints,addLinesandaddPolygonstakeslotandbeforetoo, andslots()says where each slot begins. A layer without a slot draws on top, as before. - Basemap classes:
setBasemapshows, hides and recolours water, land, parks, land use, airports, roads by level, rail, buildings, boundaries, labels and points of interest, and changes line widths;basemap()reads the settings back; thebasemapoption applies them from the start. - Saved custom styles: the
customStyleoption andsetStyle('custom:<id>');setStylealso takes a scheme name. - Files:
formats.readreads KML, KMZ, GPX, encoded polylines (precision 5 and 6), WKT, WKB, CSV, TopoJSON and GeoJSON on the device, into the same features as every other sMap SDK and the service;formats.write,toGeoJSONandtoKMLwrite them out;addDatadraws a file as areas, lines and points;converthas the service convert large files. - Simplestyle colours, widths and opacities in the data are drawn when a layer gives none of its own.
- External layers:
addRasterLayer,addWmsLayer,addWmtsLayer,addVectorTiles(PMTiles included) andaddArcGisLayer, each with its attribution. Google and Bing tiles are refused. rasterUrlgives the service's raster tiles of any style as a template for other tools.toJSONandloadLayers: the layer description shared with the other sMap SDKs.
1.0.6 — 2026-10-27 #
- Version 1.0.6, released with the Web SDK's drawn-in pin numbers and vehicle markers; no change to this SDK.
1.0.5 — 2026-10-27 #
- Version 1.0.5, released with the Web SDK popups; no change to the Flutter SDK.
1.0.2 — 2026-10-27 #
- Version 1.0.2, released with the Web SDK fix; no change to the Flutter SDK.
1.0.1 — 2026-10-27 #
- Every map shows a small sMap badge (the sMap icon and name on a semi-transparent pill that reads on all five colour schemes) in its bottom-right corner, just left of the attribution button. It is always shown and is not a link; the map data attribution stays visible. The rendering engine's own logo stays off.
- The package description starts with "sMap"; the README starts with the sMap logo.
- Published on pub.dev as
smap_flutter(install withsmap_flutter: ^1.0.1); the git dependency still works.
1.0.0 (unreleased) #
- First release: the
SMapwidget andSMapController. - Five colour schemes (
light,white,grayscale,dark,black) and labels in any language, switched at run time without losing your layers. - Short-lived tokens: pass a token, or a
getTokencallback that is asked for a new one two minutes before each expires. - Reads from the nearest service node, remembered for an hour, and moves on to the next node when one fails.
- Keeps working while the service address is down: the last node list is kept for 30 days and asked of any known node, and the
nodesoption names nodes known in advance. - Points (clustered or not, circles or icons, labels), lines and areas (flat or extruded), with draw order, visibility, data replacement, fitting the camera and tap handlers.
- 3D buildings.
- Map keys: the new
apiKeyoption uses a key that can ship inside the app, checked against the app's identity (Android package name and signing certificate, iOS bundle id).