ubhub_maps 0.4.0
ubhub_maps: ^0.4.0 copied to clipboard
Official UBHUB Flutter SDK with native vector maps, place-search widgets, typed geocoding, reverse geocoding, and routing.
Changelog #
0.4.0 #
- Google-Maps-style map features on
UbHubMap:- Markers are now
UbHubMarker(wasList<GeoPoint>). A bareUbHubMarker(point)draws the same dot. Migration:markers: points.map(UbHubMarker.new).toList(). - Custom marker icons via
UbHubMarkerIcon.asset/.bytes, plus per-markerlabel,sizeand opaquedata. - Marker clustering with
clusterMarkers,clusterRadius,clusterMaxZoom; tapping a cluster zooms to its expansion zoom (capped at the basemap maximum of 16). - Tap callbacks:
onMarkerTap,onPolylineTap,onPolygonTap.onTapnow fires only for basemap taps. - Polylines and polygons via
UbHubPolylineandUbHubPolygon(per-shape color, width, fill and stroke). - Info windows:
infoWindowBuildershows your widget above a tapped marker and tracks it as the camera moves;UbHubMapControllergainsshowInfoWindow,hideInfoWindow,zoomInandzoomOut. - App-provided icons are registered with
addImageand never pass through the basemap resource isolation; the overlay sources stay separate from the locked basemap.
- Markers are now
0.3.3 #
- Add
widthandheighttoUbHubMapso the map can be sized directly, without an outerSizedBoxorExpanded. The native map has no intrinsic size; set a height here or give it an external constraint, otherwise it collapses in an unbounded parent such as aColumnorListView. Both default to null (fill the available space, as before).
0.3.2 #
- Android: initialize MapLibre with the application context before the map transport configures its HTTP client, fixing a crash when the transport opens before any map view exists.
- Android: report native initializer failures (
LinkageError) as atransporterror instead of crashing the app.
0.3.1 #
- Add
UbHubBasemap.novaandUbHubMapOptions.basemapto show the Nova basemap (/v1/basemap/nova/*);UbHubBasemap.standardremains the default. - Android: allow up to 20 concurrent resource requests per map instead of OkHttp's default 5, so tiles, glyphs and sprites no longer queue behind each other.
- Android and iOS: pass a basemap
404to MapLibre as a real404, so missing tiles or glyph ranges are skipped instead of retried indefinitely.
0.3.0 #
- BREAKING: requires Flutter; plain Dart CLI/backend consumers must stay on 0.2.1.
- Consolidate native maps, place search, and REST services into
ubhub_maps. - Add Android/iOS map widgets with markers, route overlays, and camera control.
- Isolate native map credentials per session and reject redirected resources.
- Add debounced place search, a runnable Flutter example, and native CI checks.
- Replace
ubhub_maps_flutterimports withpackage:ubhub_maps/ubhub_maps.dart.
0.2.1 #
- Expose the complete CLI example at
example/main.dartfor pub.dev discovery. - Use the SDK default API origin in the example unless explicitly overridden.
- Preserve the original
example/basic_usage/main.dartentry point.
0.2.0 #
-
Use the verified deployed public API origin
https://developers.ubhub.mn. -
Share identical in-flight requests per client, avoiding duplicate HTTP calls, parsing, and API quota usage. Disable with
coalesceRequests: false. -
Never retain completed responses or failures; subsequent calls fetch fresh data.
-
Use typed byte buffers and fused UTF-8/JSON decoding for larger responses.
-
Avoid timing allocations when logging is disabled and reuse compiled patterns.
-
Add concurrency/stream regression tests and a reproducible Dart benchmark.
0.1.0 #
- Initial UBHUB Dart SDK using the package name
ubhub_maps. - Forward and reverse geocoding using the public
/v1/geocodecontract. - Driving and walking routes with typed GeoJSON geometry and snapped waypoints.
- Instance-scoped Bearer authentication and reusable HTTP connections.
- Typed failures, request IDs, rate-limit metadata, bounded timeouts, and safe logging.
- Deterministic unit tests, example, and opt-in staging integration tests.