flutter 使用谷歌Map应用程序直接定位

fnx2tebb  于 2023-02-05  发布在  Flutter
关注(0)|答案(1)|浏览(318)
// custom function to locate the location to direct using google maps app
  Future<void> openMap(List<CustAddressModel>latitude,longitude) async {
    String googleUrl = 'https://www.google.com/maps/search/?api=1&query=$latitude,$longitude';

    await canLaunchUrlString(googleUrl)
    ? await launchUrlString(googleUrl)
        : throw 'Could not launch google map $googleUrl';
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    custLocation();

    }
  }

在这里,我想自定义函数openMap(),用户可以点击按钮,直接使用谷歌Map应用程序的位置。位置1,我从数据库检索卖方位置和位置2是我从数据库检索客户位置也。现在,我想通过从位置1和位置2的纬度和经度,以便用户可以直接到谷歌Map应用程序,以直接到卖方位置

5vf7fwbs

5vf7fwbs1#

您可以使用packege url_launcher,然后添加以下代码:

import 'package:url_launcher/url_launcher.dart';

class MapUtils {

  MapUtils._();

  static Future<void> openMap(double latitude, double longitude) async {
    String googleUrl = 'https://www.google.com/maps/search/?api=1&query=$latitude,$longitude';
    if (await canLaunch(googleUrl)) {
      await launch(googleUrl);
    } else {
      throw 'Could not open the map.';
    }
  }
}

现在你可以在你的应用中打开谷歌Map了,只需调用这个方法:

onTap: () {
   final snapshot = await Firestore.instance.collection("collectionName").document('docId').get();
  final lat = snapshot.data['latitude'];
  final long = snapshot.data['longitude'];
   MapUtils.openMap(lat, long);
};

在iOS上,你需要做一些额外的步骤是,在info.plist文件中写入以下行

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>googlechromes</string>
    <string>comgooglemaps</string>
</array>

相关问题