修复谷歌地图标记在中心

在我扑扑的应用程序中。我正在使用google_maps_plugin。链接为https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter。我想在拖动地图后将标记固定在地图中心而不移动。我想要它像http://jsfiddle.net/UuDA6/

在我的代码中我正在使用它MarkerOption来放置标记。

    MarkerOptions options = new MarkerOptions(   

alpha: 1.0,

anchor: Offset(0.5, 1.0),

consumeTapEvents: false,

draggable: false,

flat: false,

icon: BitmapDescriptor.defaultMarker,

infoWindowAnchor: Offset(0.5, 0.0),

infoWindowText: InfoWindowText.noText,

position: LatLng(17.411439, 78.5486697),

rotation: 0.0,

visible: true,

zIndex: 0.0,

);

但在position我想知道如何给地图的中心。

如果有任何想法,请分享。

回答:

实际上,通过google_maps_flutter的新更新:^

0.4.0,我们可以轻松实现上述要求。

这是演示链接。

Map<MarkerId, Marker> _markers = <MarkerId, Marker>{};

int _markerIdCounter = 0;

Completer<GoogleMapController> _mapController = Completer();

Container(

width: MediaQuery.of(context).size.width,

height: MediaQuery.of(context).size.height,

child: GoogleMap(

markers: Set<Marker>.of(_markers.values),

onMapCreated: _onMapCreated,

initialCameraPosition: CameraPosition(

target: Constants.LOCATION_SRI_LANKA,

zoom: 12.0,

),

myLocationEnabled: true,

onCameraMove: (CameraPosition position) {

if(_markers.length > 0) {

MarkerId markerId = MarkerId(_markerIdVal());

Marker marker = _markers[markerId];

Marker updatedMarker = marker.copyWith(

positionParam: position.target,

);

setState(() {

_markers[markerId] = updatedMarker;

});

}

},

),

)

void _onMapCreated(GoogleMapController controller) async {

_mapController.complete(controller);

if ([INITIAL_LOCATION] != null) {

MarkerId markerId = MarkerId(_markerIdVal());

LatLng position = [INITIAL_LOCATION];

Marker marker = Marker(

markerId: markerId,

position: position,

draggable: false,

);

setState(() {

_markers[markerId] = marker;

});

Future.delayed(Duration(seconds: 1), () async {

GoogleMapController controller = await _mapController.future;

controller.animateCamera(

CameraUpdate.newCameraPosition(

CameraPosition(

target: position,

zoom: 17.0,

),

),

);

});

}

}

String _markerIdVal({bool increment = false}) {

String val = 'marker_id_$_markerIdCounter';

if (increment) _markerIdCounter++;

return val;

}

以上是 修复谷歌地图标记在中心 的全部内容, 来源链接: utcz.com/qa/423755.html

回到顶部