这样做的目的是将用户使用股票google_maps_flutter插件可以在他们周围看到的地方变成可点击的标记。单击标记后,用户应该能够看到名称,开放时间,评论,图像等。

我只是想获取此类数据,并将其显示在google_maps_flutter map 上。我还想学习如何输入以英里为单位的半径,因此,如果用户只想要一英里以内的地点,则可以根据需要选择。

我要问的是一种如何在可变距离内获取附近地点数据以及如何以动态方式将这些地点放置在 map 上的解释。

图。下面的上下文为1 ,我可以期待在单击“大笨钟”时得到姓名,营业时间,评论,图片等。

这将使用placeId完成,获取图像的示例将类似于:https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=${photoReference}&key=${kGoogleApiKey}

ios - Flutter-使用google_maps_webservice和google_maps_flutter附近的地方-LMLPHP

图1.

编辑:

在玩完Sreerams的结论后,我得到了这个返回结果,而不是附近的每个地方:

Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult', Instance of 'PlacesSearchResult'

这是我用来检索此数据的内容:
  static String kGoogleApiKey = 'myKey';
  GoogleMapsPlaces _places = GoogleMapsPlaces(apiKey: kGoogleApiKey);

  List<PlacesSearchResult> places = [];

  void _onMapCreated(GoogleMapController controller) {
    mapController = controller;
    getNearbyPlaces(LatLng(lat,lng));
  }

  void getNearbyPlaces(LatLng center) async {
    final location = Location(lat, lng);
    final result = await _places.searchNearbyWithRadius(location, 2500);

    setState(() {
      if (result.status == "OK") {
        this.places = result.results;

      }
      print(result.status);
    });
  }

这是我用来显示此数据的内容:
Text(places[i].toString())

我认为该解决方案将从this question的答案中重做一些代码。

谢谢

最佳答案

ListView 内添加,每行显示地名,地址和类型。顶部的内联MapView显示位置的所有图钉标记。当用户点击该行时,该应用程序将导航到传递placeId的地方详细信息屏幕。

Future<Null> showDetailPlace(String placeId) async {
    if (placeId != null) {
        Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => PlaceDetailWidget(placeId)),
        );
    }
}

class PlaceDetailWidget extends StatefulWidget {
    String placeId;
    PlaceDetailWidget(String placeId) {
        this.placeId = placeId;
}

rajesh muthyala上找到对此的详细说明

ios - Flutter-使用google_maps_webservice和google_maps_flutter附近的地方-LMLPHP

10-04 21:22