【问题标题】:Flutter geolocator plugin Geolocator().getCurrentPosition doesnt return accurate lng and lat coordinateFlutter geolocator plugin Geolocator().getCurrentPosition 不返回准确的 lng 和 lat 坐标
【发布时间】:2020-04-09 14:04:51
【问题描述】:

我刚开始使用颤振,我不知道为什么在 iOS 模拟器上使用地理定位器插件无法获得准确的坐标。

它返回这个,它是小数点后 1 位并且给出了一个不准确的位置

纬度:1.3,经度:103.8

我怎样才能让它返回这个?

1.3825983,103.8814173

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:geolocator/geolocator.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';

class Home extends StatefulWidget {
  Home(this.listType);
  final String listType;

  @override
  _HomeState createState() => new _HomeState();
}

class _HomeState extends State<Home> {
  GoogleMapController _mapController;
  // final LatLng _center = const LatLng(1.290270, 103.851959);
  Position _pos;
  Widget _mapWidget; 

  void _onMapCreated(GoogleMapController controller) {
    _mapController = controller;
  }

  @override
  void initState() {
    _mapWidget = SpinKitRotatingCircle(
      color: Colors.white,
      size: 50.0,
    );
    getCurrentLocation();
    super.initState();
  }

  void getCurrentLocation() async {
    GeolocationStatus geolocationStatus  = await Geolocator().checkGeolocationPermissionStatus();
    print(geolocationStatus);

    Position currPos = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
    print(currPos);

    setState(() {
      _pos = currPos;
      _mapWidget = initMapWidget();
    });
  }

  Widget initMapWidget () {
    return GoogleMap(
      mapType: MapType.normal,
      onMapCreated: _onMapCreated,
      myLocationEnabled: true,
      initialCameraPosition: CameraPosition(
        target: LatLng(_pos.latitude, _pos.longitude),
        zoom: 15.0,
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: _mapWidget,
      ),
    );
  }
}

【问题讨论】:

    标签: ios google-maps flutter dart geolocation


    【解决方案1】:

    尝试将latlong 解析为double

    target: LatLng(_pos.latitude.toDouble(), _pos.longitude.toDouble()),

    【讨论】:

    • 还是一样,不返回double。
    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2019-09-01
    • 2022-06-16
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    相关资源
    最近更新 更多