首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在flutter中显示google地图中的旅行时间?

在Flutter中显示Google地图中的旅行时间,可以通过以下步骤实现:

  1. 首先,确保你已经在Google Cloud平台上创建了一个项目,并启用了Google Maps API。获取到API密钥。
  2. 在Flutter项目的pubspec.yaml文件中添加google_maps_flutter插件的依赖:
代码语言:txt
复制
dependencies:
  flutter:
    sdk: flutter
  google_maps_flutter: ^1.2.0
  1. 在Flutter项目中引入google_maps_flutter插件,并在需要显示地图的页面中创建一个GoogleMap组件:
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class MapPage extends StatefulWidget {
  @override
  _MapPageState createState() => _MapPageState();
}

class _MapPageState extends State<MapPage> {
  GoogleMapController mapController;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Google Maps'),
      ),
      body: GoogleMap(
        onMapCreated: (controller) {
          setState(() {
            mapController = controller;
          });
        },
        initialCameraPosition: CameraPosition(
          target: LatLng(37.7749, -122.4194), // 设置地图初始位置
          zoom: 12.0, // 设置地图初始缩放级别
        ),
      ),
    );
  }
}
  1. 在GoogleMap组件的onMapCreated回调中,可以通过GoogleMapController来控制地图的行为。在这个回调中,你可以使用Google Maps Directions API来获取旅行时间。
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class MapPage extends StatefulWidget {
  @override
  _MapPageState createState() => _MapPageState();
}

class _MapPageState extends State<MapPage> {
  GoogleMapController mapController;
  String travelTime = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Google Maps'),
      ),
      body: Column(
        children: [
          Expanded(
            child: GoogleMap(
              onMapCreated: (controller) {
                setState(() {
                  mapController = controller;
                });
              },
              initialCameraPosition: CameraPosition(
                target: LatLng(37.7749, -122.4194),
                zoom: 12.0,
              ),
            ),
          ),
          RaisedButton(
            child: Text('获取旅行时间'),
            onPressed: () {
              getTravelTime();
            },
          ),
          Text(travelTime),
        ],
      ),
    );
  }

  void getTravelTime() async {
    final response = await http.get(
        'https://maps.googleapis.com/maps/api/directions/json?origin=37.7749,-122.4194&destination=37.7749,-122.5194&key=YOUR_API_KEY');
    final data = json.decode(response.body);
    final duration = data['routes'][0]['legs'][0]['duration']['text'];
    setState(() {
      travelTime = '旅行时间:$duration';
    });
  }
}

在上述代码中,getTravelTime函数使用http包发送HTTP GET请求到Google Maps Directions API,并解析返回的JSON数据以获取旅行时间。请确保将YOUR_API_KEY替换为你在步骤1中获取到的API密钥。

这样,当用户点击"获取旅行时间"按钮时,就会调用getTravelTime函数并更新travelTime变量,从而在界面上显示旅行时间。

请注意,以上代码仅为示例,你可以根据自己的需求进行修改和扩展。同时,为了保证应用的安全性和稳定性,建议将API密钥存储在安全的地方,而不是直接在代码中硬编码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

16分8秒

人工智能新途-用路由器集群模仿神经元集群

领券