xbr_gaode_navi_amap 4.0.0
xbr_gaode_navi_amap: ^4.0.0 copied to clipboard
include amap,search,location,navi
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:xbr_gaode_navi_amap/amap/base/amap_flutter_base.dart';
import 'package:xbr_gaode_navi_amap/location/xbr_location_service.dart';
import 'package:xbr_gaode_navi_amap/navi/xbr_navi.dart';
import 'package:xbr_gaode_navi_amap/xbr_gaode_navi_amap.dart';
import 'package:xbr_gaode_navi_amap_example/search2_demo.dart';
import 'package:xbr_gaode_navi_amap_example/search3_demo.dart';
import 'package:xbr_gaode_navi_amap_example/search_demo.dart';
import 'map_demo.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
XbrGaodeNaviAmap.initKey(androidKey: "34c19c4eb31a1987b9702f82e8034540", iosKey: "6576199a6c246345e57fee50d2edc8d1");
XbrGaodeNaviAmap.updatePrivacy(hasContains: true, hasShow: true, hasAgree: true);
}
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String text = "";
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('高德全套服务集成'),
),
body: ListView(
children: [
Card(
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: const [
SizedBox(
width: double.infinity,
child: Text("* 本插件包含高德套件:高德地图、高德定位、高德检索、高德导航 四个产品,采用高德导航合包,包本身体积较大,"
"若没有导航需求,建议使用 xbr_gaode_amap、xbr_gaode_search、xbr_gaode_location 单产品,因为高德只提供合包,"
"导航包无法和其他包拆分,使用导航时必须同时提供其他套件,从而衍生此包, 此包除了新增导航外,其他部分与单产品一模一样。测试提供的KEY仅为个人调试。"),
),
],
),
),
),
Card(
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
const SizedBox(
width: double.infinity,
child: Text("地图部分"),
),
ElevatedButton(
child: const Text("显示地图"),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => const MapDemoPage()));
})
],
),
),
),
Card(
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
const SizedBox(
width: double.infinity,
child: Text("检索部分"),
),
Wrap(
spacing: 5, //主轴上子控件的间距
runSpacing: 5, //交叉轴上子控件之间的间距
children: [
ElevatedButton(
child: const Text("关键字"),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => const SearchDemoPage()));
}),
ElevatedButton(
child: const Text("周边"),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => const Search2DemoPage()));
}),
ElevatedButton(child: const Text("线路规划"), onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => const Search3DemoPage()));
})
], //要显示的子控件集合
),
],
),
),
),
Card(
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
const SizedBox(
width: double.infinity,
child: Text("定位部分"),
),
SizedBox(
width: double.infinity,
child: Text(text),
),
Wrap(
spacing: 5, //主轴上子控件的间距
runSpacing: 5, //交叉轴上子控件之间的间距
children: [
ElevatedButton(
child: const Text("获取定位"),
onPressed: () {
XbrLocation.instance().execOnceLocation(callback: (locationInfo) {
setState(() {
text = locationInfo.toJson().toString();
});
});
}),
ElevatedButton(child: const Text("实时定位"), onPressed: () {}),
ElevatedButton(child: const Text("后台地位(新)"), onPressed: () {
XbrLocation.instance().startTimeLocation(callback: (locationInfo) {
setState(() {
text = "后台定位:${locationInfo.toJson().toString()}";
});
});
}),
], //要显示的子控件集合
),
],
),
),
),
Card(
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
const SizedBox(
width: double.infinity,
child: Text("导航部分"),
),
ElevatedButton(
child: const Text("开始导航"),
onPressed: () {
XbrNavi.startNavi(points: [
// //为了方便展示,选择了固定的起终点
// self.startPoint = [AMapNaviPoint locationWithLatitude:39.993135 longitude:116.474175];
// self.endPoint = [AMapNaviPoint locationWithLatitude:39.908791 longitude:116.321257];
const LatLng(39.993135, 116.474175), const LatLng(39.908791, 116.321257),
], title: "正在前往:基本上界面所有元素都有对应的资源样式和图片", subtext: "李欣 | 18744925565", emulator: true);
})
],
),
),
),
],
),
);
}
}