【发布时间】:2019-07-23 16:12:44
【问题描述】:
我正在尝试在地图框中围绕用户当前位置绘制半径为 500 米的圆圈。当我使用我在下面提供的代码时,它会画一个大圆圈,它也不会与地图一起倾斜。
CircleManager circleManager = new CircleManager(mapView, mapboxMap, style);
CircleOptions options = new CircleOptions();
options.withLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
options.withCircleRadius(500f);
options.withCircleOpacity(0.5f);
options.withCircleColor(ColorUtils.colorToRgbaString(getResources().getColor(R.color.blue2)));
circleManager.create(options);
更新
我可以用精确的坐标画圆,但我希望这个圆随着我的位置移动。单击地图时会添加圆圈,但从位置更改侦听器调用此函数时无法添加圆圈。
private void moveRing(Point centerPoint) {
if (mapboxMap.getStyle() != null) {
Style style = mapboxMap.getStyle();
// Use Turf to calculate the coordinates for the outer ring of the final Polygon
Polygon outerCirclePolygon = getTurfPolygon(OUTER_CIRCLE_MILE_RADIUS, centerPoint);
GeoJsonSource outerCircleSource = source;
if (outerCircleSource != null) {
outerCircleSource.setGeoJson(Polygon.fromLngLats(outerCirclePolygon.coordinates()));
}
}
【问题讨论】: