我正在使用google_maps_flutter包,我需要限制Map的可滚动区域到一个特定的区域。我有西南和东北角,但我不知道如何做到这一点。
我已经尝试了下面的代码,但它不工作.
uniCampusSW和uniCampusNE都是LatLng。
_userLocation == null // If user location has not been found
? Center(
// Display Progress Indicator
child: CircularProgressIndicator(
backgroundColor: UniColors.primaryColour[500],
),
)
: GoogleMap(
// Show Campus Map
onMapCreated: _onMapCreated,
initialCameraPosition: // required parameter that sets the starting camera position. Camera position describes which part of the world you want the map to point at.
CameraPosition(
target: _userLocation, zoom: defaultZoom, tilt: 0.0),
scrollGesturesEnabled: true,
tiltGesturesEnabled: true,
trafficEnabled: false,
compassEnabled: true,
rotateGesturesEnabled: true,
myLocationEnabled: true,
mapType: _currentMapType,
zoomGesturesEnabled: true,
cameraTargetBounds: new CameraTargetBounds(
new LatLngBounds(
northeast: UniCampusNE,
southwest: UniCampusSW,
),
),
),
这是我得到的错误
/扑动(12525):在构建TheMap(dirty,state:_Map状态#a8840):I/扑动(12525):“软件包:google_maps_flutter/源代码/位置. dart”:失败的Assert:第68行第16项:I/扑动(12525):“西南.纬度〈=东北.纬度”:不正确。
谢谢
4条答案
按热度按时间c3frrgcw1#
朋友们好!
零安全解
请注意错误:“西南.纬度〈=东北.纬度”:不是真的。
根据文档,链接如下:
https://pub.dev/documentation/google_maps_flutter_platform_interface/2.1.2/google_maps_flutter_platform_interface/LatLngBounds-class.html
有必要检查这些值是否 不是静态的,例如西南.纬度必须小于或等于东北.纬度,而东北.经度必须小于或等于西南.经度。
在cameraTargetBounds中:您可以使用您创建的变量:
vaqhlq812#
我在这件事上太傻了。
我在UniCampusNE和SW的Latlngs中的Lats是错误的。就这么简单。我发布的代码是正确的。
您必须确保西南纬度小于东北纬度(更左侧)。
sxissh063#
试试这个:
}
slhcrj9b4#
基于此issue自动计算Map界限