amap_map/example/lib/pages/interactive/poi_click_demo.dart

60 lines
1.4 KiB
Dart
Raw Normal View History

2023-12-22 21:23:24 +08:00
import 'package:amap_map/amap_map.dart';
2023-12-22 23:13:56 +08:00
import 'package:x_amap_base/x_amap_base.dart';
2023-12-22 21:23:24 +08:00
import 'package:flutter/material.dart';
2024-06-27 15:01:40 +08:00
class PoiClickDemoPage extends StatefulWidget {
PoiClickDemoPage({Key? key}) : super(key: key);
2023-12-22 21:23:24 +08:00
@override
_BodyState createState() => _BodyState();
}
2024-06-27 15:01:40 +08:00
class _BodyState extends State<PoiClickDemoPage> {
2023-12-22 21:23:24 +08:00
Widget? _poiInfo;
@override
Widget build(BuildContext context) {
final AMapWidget amap = AMapWidget(
touchPoiEnabled: true,
onPoiTouched: _onPoiTouched,
);
return ConstrainedBox(
constraints: BoxConstraints.expand(),
child: Stack(
alignment: Alignment.center,
children: [
Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: amap,
),
Positioned(
top: 40,
width: MediaQuery.of(context).size.width,
height: 50,
child: Container(
child: _poiInfo,
),
)
],
),
);
}
Widget showPoiInfo(AMapPoi poi) {
return Container(
alignment: Alignment.center,
color: Color(0x8200CCFF),
child: Text(
'您点击了 ${poi.name}',
style: TextStyle(fontWeight: FontWeight.w600),
),
);
}
void _onPoiTouched(AMapPoi poi) {
setState(() {
_poiInfo = showPoiInfo(poi);
});
}
}