Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 颤振/飞镖为谷歌地图标记添加自定义点击事件_Google Maps_Dart_Flutter - Fatal编程技术网

Google maps 颤振/飞镖为谷歌地图标记添加自定义点击事件

Google maps 颤振/飞镖为谷歌地图标记添加自定义点击事件,google-maps,dart,flutter,Google Maps,Dart,Flutter,我如何为Google Maps Marker(Google_Maps_Flatter)的点击事件添加自定义处理程序?我只能看到consumeTapEvents,它实际上不接受任何函数,只接受bool。我曾想过使用手势检测器,但似乎不太正确 处理谷歌地图标记上事件的标准方式是什么?我试图在单击后导航到新页面 谢谢请记住,当前版本是0.0.3版的开发者预览版。请给它一点时间让它运转起来 你可以做如下事情 _mapController.onMarkerTapped.add((marker) {

我如何为Google Maps Marker(Google_Maps_Flatter)的点击事件添加自定义处理程序?我只能看到
consumeTapEvents
,它实际上不接受任何函数,只接受bool。我曾想过使用
手势检测器
,但似乎不太正确

处理谷歌地图标记上事件的标准方式是什么?我试图在单击后导航到新页面


谢谢

请记住,当前版本是0.0.3版的开发者预览版。请给它一点时间让它运转起来

你可以做如下事情

_mapController.onMarkerTapped.add((marker) {
      // your code here
    });

其中
\u mapController
是创建标记时创建自定义对象的
GoogleMapController
:)

的实例

var map = <String, String> {}; // custom object

for (int i = 0; i < mCrag.length; i++) {
    controller.addMarker(new MarkerOptions(
       icon: BitmapDescriptor.fromAsset('assets/images/down-arrow.png'),
       position: LatLng(double.parse(mCrag[i].lat), double.parse(mCrag[i].lon)),
    )).then((marker) {
         map[marker.id] = mCrag[i].id; // this will return when tap on marker
         return marker;
    });
}

// marker click event
void onMarkerTapped(Marker marker) {
   var selectedMarker = map[marker.id];  // here you will get your id.
   debugPrint(selectedMarker);
   getRoutes(selectedMarker);
}
var-map={};//自定义对象
对于(int i=0;i
随着^0.3.0+1版本的发布,引入了一个新的标记API,它将标记作为小部件处理(包括onTap()方法)。这样,谷歌地图就有了一个
标记:
选项,允许标记对象列表。每个元素的定义如下:

Marker(
  markerId: MarkerId("id"), // a string for marker unique id
  icon: BitmapDescriptor.defaultMarker(), // options for hues and custom imgs
  position: LatLng(lat, long), // lat and long doubles

  onTap: () {
    //this is what you're looking for!
  }

),

比以前的控制器方法简单得多

您可以在地图插件中使用onTap或onLongPress选项来监视点击事件。然后,您可以按照以下方式在抽头位置添加标记

    final Set<Marker> _markers = {};



 GoogleMap(onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: _center,
          zoom: 13.0,
        ),
        compassEnabled: true,
        tiltGesturesEnabled: false,
        onTap: (latlang){
          if(_markers.length>=1)
            {
              _markers.clear();
            }

          _onAddMarkerButtonPressed(latlang);
        },
        myLocationEnabled: true,
        myLocationButtonEnabled: true,
        mapType: mapType,
        markers: _markers,
        onCameraMove: _onCameraMove,
      ),

所有商品:)所以答案是:还没有。正确吗?如果它没有在API页面上列出,那么它还不存在。如何在此代码中添加方法..我想选择位置并获取lat,位置的长度
controller.onMarkerTapped.add(_onMarkerTapped)出于某种原因。。这已经不起作用了。
    final Set<Marker> _markers = {};



 GoogleMap(onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: _center,
          zoom: 13.0,
        ),
        compassEnabled: true,
        tiltGesturesEnabled: false,
        onTap: (latlang){
          if(_markers.length>=1)
            {
              _markers.clear();
            }

          _onAddMarkerButtonPressed(latlang);
        },
        myLocationEnabled: true,
        myLocationButtonEnabled: true,
        mapType: mapType,
        markers: _markers,
        onCameraMove: _onCameraMove,
      ),
 void _onAddMarkerButtonPressed(LatLng latlang) {
loadAddress(latlang);
_latLng = latlang;
 setState(() {
  _markers.add(Marker(
    // This marker id can be anything that uniquely identifies each marker.
    markerId: MarkerId(_lastMapPosition.toString()),
    position: latlang,
    infoWindow: InfoWindow(
      title: address,
    //  snippet: '5 Star Rating',
    ),
    icon: BitmapDescriptor.defaultMarker,
  ));
});
}