Flutter 360度全景查看插件galli360viewer的使用
Flutter 360度全景查看插件galli360viewer的使用
Galli Maps 提供的用于展示尼泊尔街道360度图像的 Flutter 库。
特性
- 宽广、沉浸式的视图
- 可以平移、倾斜和缩放图像的不同部分
- 单击即可标记建筑物或地点
- 可以保存标记的位置并与其他用户分享
配置
在 pubspec.yaml
文件中添加 galli360viewer
作为依赖项:
dependencies:
galli360viewer: ${last_version}
如何使用
首先导入 galli360viewer
包,并将 Galli360Viewer
小部件添加到项目中:
import 'package:galli360viewer/galli360viewer.dart';
// 初始化控制器
final Galli360 controller = Galli360(token);
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Viewer(
// 设置经纬度坐标
coordinate: LatLng(37.421997, -122.084057),
// 设置标记的位置
pinX: 0.5,
pinY: 0.5,
// 设置查看器的高度和宽度
height: 400,
width: 400,
// 加载时显示的部件
loadingWidget: Container(
child: Center(
child: const CircularProgressIndicator(),
),
),
// 关闭按钮的部件
closeWidget: Container(
child: Center(
child: Text('关闭'),
),
),
// 是否显示关闭按钮
showClose: true,
// 是否启用动画
animation: true,
// 最大缩放级别
maxZoom: 2,
// 最小缩放级别
minZoom: 0.5,
// 动画速度
animSpeed: 5,
// 灵敏度
sensitivity: 5,
// 标记图标
pinIcon: Icons.location_on,
// 保存标记位置时的回调函数
onSaved: (double x, double y) {
print(x);
print(y);
},
// 控制器
controller: controller,
),
);
}
预览
示例代码
以下是完整的示例代码:
import 'package:example/Const/env.dart';
import 'package:flutter/material.dart';
import 'package:galli360viewer/galli360viewer.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Galli 360 Viewer',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Galli 360 Viewer'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Galli360 galli = Galli360(token);
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Viewer(
controller: galli,
onSaved: ((x, y) => {print("$x,$y")}),
pinX: 10.189151195944662,
pinY: 66.2590812683003,
coordinate: LatLng(latitude: 27.683370, longitude: 85.304596),
),
);
}
}
更多关于Flutter 360度全景查看插件galli360viewer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter 360度全景查看插件galli360viewer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用galli360viewer
插件来实现360度全景查看的示例代码。这个插件允许你加载和显示360度全景图像。
首先,你需要在你的pubspec.yaml
文件中添加galli360viewer
依赖:
dependencies:
flutter:
sdk: flutter
galli360viewer: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中创建一个页面来显示360度全景图像。以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:galli360viewer/galli360viewer.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '360 Degree Viewer Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('360 Degree Viewer Demo'),
),
body: Center(
child: Galli360(
imagePath: 'assets/your_360_image.jpg', // 请替换为你的360度全景图像路径
width: double.infinity,
height: double.infinity,
),
),
);
}
}
注意几点:
- 图像资源:确保你的360度全景图像已经放在
assets
文件夹中,并且在pubspec.yaml
中声明了资源:
flutter:
assets:
- assets/your_360_image.jpg # 请替换为你的实际图像路径
-
插件初始化:在上面的代码中,
Galli360
组件用于显示360度全景图像。你需要提供图像的路径、宽度和高度。这里使用了double.infinity
来让图像填满整个屏幕。 -
错误处理:在实际项目中,你可能需要添加错误处理逻辑,比如检查图像文件是否存在,或者处理加载错误。
-
运行项目:确保你的Flutter环境已经正确配置,然后运行项目,你应该能看到一个全屏的360度全景查看器。
这个示例代码提供了一个基本的框架,你可以根据需要进行扩展和自定义,比如添加手势控制、导航栏等。希望这个示例对你有所帮助!