Bản đồ ZNM

Bản đồ ZNM (Quy hoạch xây dựng cấp quy hoạch phân khu) - dịch vụ dạng Raster Tile, xem thêm đường dẫn Raster Tile cho bản đồ ZNM tại đây

Bản đồ ZNM
import 'package:flutter/material.dart';
import 'package:mapbox_gl/mapbox_gl.dart';
import 'main.dart';
import 'page.dart';
class FullMapPage extends ExamplePage {
FullMapPage() : super(const Icon(Icons.map), 'Full screen map');
@override
Widget build(BuildContext context) {
return const FullMap();
}
}
class FullMap extends StatefulWidget {
const FullMap();
@override
State createState() => FullMapState();
}
class FullMapState extends State<FullMap> {
MapboxMapController? mapController;
var isLight = true;
_onMapCreated(MapboxMapController controller) {
mapController = controller;
this.controller = controller;
}
_onStyleLoadedCallback() {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("Style loaded :)"),
backgroundColor: Theme.of(context).primaryColor,
duration: Duration(seconds: 1),
));
await this.controller.addSource(
"zoning",
RasterSourceProperties(
tiles: [
'https://api.ekgis.vn/v2/maps/raster/zoning/{z}/{x}/{y}.png?api_key={YOUR_API_KEY}'
],
tileSize: 512,
attribution:
'Map tiles by <a target="_top" rel="noopener" href="http://ekgis.com.vn">eKGIS JSC</a>),
);
await controller.addLayer(
"zoning", "zoning", RasterLayerProperties());
}
@override
Widget build(BuildContext context) {
return new Scaffold(
floatingActionButton: Padding(
padding: const EdgeInsets.all(32.0),
child: FloatingActionButton(
child: Icon(Icons.swap_horiz),
onPressed: () => setState(
() => isLight = !isLight,
),
),
),
body: MapboxMap(
styleString: "https://api.ekgis.vn/v2/mapstyles/style/bdm/basic/style.json?api_key={YOUR_API_KEY}",
accessToken: MapsDemo.ACCESS_TOKEN,
onMapCreated: _onMapCreated,
initialCameraPosition: const CameraPosition(target: LatLng(109.11, 16.34)),
onStyleLoadedCallback: _onStyleLoadedCallback,
));
}
}