【问题标题】:Flutter: how to get the name of place from google mapFlutter:如何从谷歌地图中获取地名
【发布时间】:2021-09-07 05:22:15
【问题描述】:

我在颤振中创建了一个运行良好的谷歌地图,我想获得地点的名称,请帮助我获得这个,有没有办法使用纬度和经度来做到这一点? 这是我的代码




class _locationState extends State<location> {
  Completer<GoogleMapController> _controllerGoogleMap=Completer();
  late GoogleMapController newGoogleMapController;
  double mapbottompadding=0;

  GlobalKey<ScaffoldState> scaffoldkey=new GlobalKey<ScaffoldState>();
   late Position currentpositon;
  var geolocator=Geolocator();

  void locatepostion() async{
    Position position=await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
    currentpositon=position;

    LatLng latLngPosition=LatLng(position.latitude,position.longitude);

    CameraPosition cameraPosition=new CameraPosition(target: latLngPosition,zoom: 14);
    newGoogleMapController.animateCamera(CameraUpdate.newCameraPosition(cameraPosition));
  }

  static final CameraPosition googlepostion=CameraPosition(target: LatLng(37.4249,-122.0657));
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(children: [
        Container(
        child:GoogleMap(
          padding: EdgeInsets.only(bottom: mapbottompadding),
          mapType: MapType.normal,
          myLocationButtonEnabled: true,
          myLocationEnabled: true,
          zoomControlsEnabled: true,
          zoomGesturesEnabled: true,
           initialCameraPosition: googlepostion,
           onMapCreated: (GoogleMapController controller){
              _controllerGoogleMap.complete(controller);
              newGoogleMapController=controller;
              setState(() {
                mapbottompadding=300.0;
              });
              
              locatepostion();
          },
        )
      )],),
      
    );
  }
}

您的帮助将不胜感激!

【问题讨论】:

    标签: flutter google-maps


    【解决方案1】:

    您可以使用geocoding: ^2.0.0 包从经度和纬度获取位置名称或获取经度和纬度

    // 来自位置名称的经度和纬度

    List<Location> locations = await locationFromAddress("Gronausestraat 710, Enschede");
    

    // 来自经纬度的位置名称

    List<Placemark> placemarks = await placemarkFromCoordinates(52.2165157, 6.9437819);
    

    【讨论】:

      【解决方案2】:

      使用地理编码包获取当前纬度和经度。然后将纬度和经度传递给这个 {placemarkFromCoordinates} 函数。

      它将提供使用包含许多信息的地标对象的列表。 例如名称、子地区、地区、邮政编码等。

      List<Placemark> placemarks =
                await placemarkFromCoordinates(position.latitude, position.longitude);
      
      Placemark place1 = placemarks[0];
      Placemark place2 = placemarks[1];
      String _currentAddress =
                  "${place1.name} ${place2.name} ${place1.subLocality} 
      ${place1.subAdministrativeArea} ${place1.postalCode}";
      

      【讨论】:

        【解决方案3】:

        我不确定您是否可以通过 Flutter 上的 Google Maps 插件执行此操作,但您可以使用 reverse geocoding 从经度/纬度获取地址和其他相关信息。也许检查Places API 以获取有关业务实体的信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-20
          • 1970-01-01
          • 2020-04-28
          • 1970-01-01
          • 1970-01-01
          • 2012-09-18
          • 2013-09-03
          • 2017-04-25
          相关资源
          最近更新 更多