【问题标题】:How to get Lat Long on Map Tap in Flutter?如何在 Flutter 中的 Map Tap 上获得 Lat Long?
【发布时间】:2019-11-26 06:17:55
【问题描述】:

谁能告诉我如何在颤动的地图上获取纬度和经度。我需要使用任何插件吗?

【问题讨论】:

    标签: google-maps flutter


    【解决方案1】:

    我认为您的意思是希望在您点击 Google 地图小部件上的某个位置时显示纬度/经度?在这种情况下,请查看 place_picker 插件。从自述文件中,这听起来像是您需要的。链接:https://pub.dev/packages/place_picker

    编辑: 如果您只想要地图上任意位置的纬度/经度,您还可以在 Google Map 构造函数本身中执行以下操作:

    GoogleMap(
      // all the other arguments
      onTap: (latLng) {
        print('${latLng.latitude}, ${latLng.longitude}');
      }
    );
    

    【讨论】:

    • 是的,这就是我想要的。
    • 请检查我的更新答案,以获得更简单、无插件的方式
    【解决方案2】:

    如果您需要 Lat 和 lang 以及其他属性,您必须使用 place_picker 包。此软件包可帮助您从用户选择的位置获取数据。试试这个代码

    Widget _dropDownButton() {
        return Positioned(
            top: 40,
            right: 15,
            left: 15,
            child: Container(
              height: 50,
              child: TextFormField(
                readOnly: true,
                enableInteractiveSelection: false,
                // will disable paste operation
                textInputAction: TextInputAction.next,
                onChanged: (location) {
                  setState(() {
                    currentAddress = location;
                  });
                },
                controller: locationController,
                decoration: InputDecoration(
                  prefixIcon: InkWell(
                    onTap: () {
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) {
                            return PlacePicker(
                              apiKey: kGoogleApiKey,
                              initialPosition: currentPostion,
                              useCurrentLocation: true,
                              selectInitialPosition: true,
                              usePlaceDetailSearch: true,
                              onPlacePicked: (result) {
                                setState(() {
                                  selectedPlace = result;
                                  locationController.text =
                                      selectedPlace.formattedAddress;
                                  controllers.animateCamera(
                                    CameraUpdate.newCameraPosition(
                                      CameraPosition(
                                          target: LatLng(
                                              result.geometry.location.lat,
                                              result.geometry.location.lng),
                                          zoom: 20.0),
                                    ),
                                  );
                                  Navigator.of(context).pop();
                                });
                              },
                            );
                          },
                        ),
                      );
                    },
                    child: Icon(
                      Icons.add_location,
                      color: Colors.black,
                      size: 20,
                    ),
                  ),
                  hintStyle: TextStyle(
                    color: Colors.black54,
                  ),
                  hintText: 'Please choose a Address',
                ),
              ),
            ));
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多