【发布时间】:2020-08-15 20:20:29
【问题描述】:
按下如下所示的按钮时,我试图从normal 更改为satellite,但我收到一个错误,即setMapType 不存在。
mapController.setMapType(MapType.satellite);
有人知道我做错了什么吗?
【问题讨论】:
标签: google-maps flutter dart
按下如下所示的按钮时,我试图从normal 更改为satellite,但我收到一个错误,即setMapType 不存在。
mapController.setMapType(MapType.satellite);
有人知道我做错了什么吗?
【问题讨论】:
标签: google-maps flutter dart
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:search_map_place/search_map_place.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
String apiKEY;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Search Map Place Demo',
home: MapSample(),
);
}
}
class MapSample extends StatefulWidget {
@override
State<MapSample> createState() => MapSampleState();
}
class MapSampleState extends State<MapSample> {
Completer<GoogleMapController> _mapController = Completer();
final CameraPosition _initialCamera = CameraPosition(
target: LatLng(-20.3000, -40.2990),
zoom: 14.0000,
);
var maptype = MapType.normal;
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomPadding: false,
body: Stack(
children: <Widget>[
GoogleMap(
mapType: maptype,
initialCameraPosition: _initialCamera,
onMapCreated: (GoogleMapController controller) {
_mapController.complete(controller);
},
),
],
),
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.white,
foregroundColor: Colors.black,
child: const Icon(Icons.my_location),
onPressed: () {
setState(() {
this.maptype=MapType.satellite;
});
},
),
);
}
}
【讨论】:
创建一个变量:
MapType _currentMapType = MapType.normal;
在您的 Google 地图小部件中,将地图类型链接到您的变量:
googleMap = new GoogleMap(
mapType: _currentMapType,
//etc
创建用于交换地图类型的浮动按钮小部件:
floatingActionButton: FloatingActionButton(
child: Icon(Icons.layers),
onPressed: _toggleMapType,
heroTag: null,
),
创建将切换地图类型的 onPressed 方法:
void _toggleMapType(){
setState(() {
_currentMapType = (_currentMapType == MapType.normal) ? MapType.satellite : MapType.normal;
});
}
【讨论】: