You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.1 KiB

3 years ago
import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart';
import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class LocationMap extends StatefulWidget {
final Map<String, String> arguments;
LocationMap({this.arguments});
@override
State<StatefulWidget> createState() {
return _LocationMap();
}
}
class _LocationMap extends State<LocationMap> {
@override
Widget build(BuildContext context) {
latLng = BMFCoordinate(double.tryParse(widget.arguments["lat"]), double.tryParse(widget.arguments["lng"]));
return Scaffold(
appBar: MyAppBar(
background: Color(0xFFF7F7F7),
title: widget.arguments["storeName"],
titleColor: Colors.black87,
titleSize: 18.sp,
leadingColor: Colors.black,
),
body: Container(
child: BMFMapWidget(
mapOptions: BMFMapOptions(
center: latLng,
3 years ago
showZoomControl: false,
showMapScaleBar: false,
3 years ago
zoomLevel: 12,
),
onBMFMapCreated: onMapCreated,
),
),
);
}
BMFMapController _mapController;
BMFCoordinate latLng;
BMFMarker bmfMarker;
onMapCreated(BMFMapController controller) {
_mapController = controller;
setState(() {
_mapController.showUserLocation(true);
_mapController.setCustomMapStyle('assets/map_style/chatian.sty', 0);
if (bmfMarker == null && _mapController != null) {
bmfMarker = BMFMarker(
position: latLng,
centerOffset: BMFPoint(0.5, 0.7),
enabled: false,
icon: "assets/image/icon_map_marker.png",
draggable: false,
);
_mapController.addMarker(bmfMarker);
}
_mapController.updateMapOptions(
BMFMapOptions(
center: latLng,
zoomLevel: 15,
),
);
});
}
}