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

1 回复

更多关于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,
        ),
      ),
    );
  }
}

注意几点:

  1. 图像资源:确保你的360度全景图像已经放在assets文件夹中,并且在pubspec.yaml中声明了资源:
flutter:
  assets:
    - assets/your_360_image.jpg  # 请替换为你的实际图像路径
  1. 插件初始化:在上面的代码中,Galli360组件用于显示360度全景图像。你需要提供图像的路径、宽度和高度。这里使用了double.infinity来让图像填满整个屏幕。

  2. 错误处理:在实际项目中,你可能需要添加错误处理逻辑,比如检查图像文件是否存在,或者处理加载错误。

  3. 运行项目:确保你的Flutter环境已经正确配置,然后运行项目,你应该能看到一个全屏的360度全景查看器。

这个示例代码提供了一个基本的框架,你可以根据需要进行扩展和自定义,比如添加手势控制、导航栏等。希望这个示例对你有所帮助!

回到顶部