我正在尝试在静态地图上绘制一个圆圈,向getCircleAsPolyline
提供Location
数据,然后使用PolyUtil.encode
进行编码,根据此SO回答https://stackoverflow.com/a/38100481/1520234。
不幸的是,输出不是一个圆圈,而是像这样奇怪的东西:
任何人都可以向我解释为什么会发生这种情况,是否有可能获得一个真正的圈子,如果是这样的话?
感谢
修改
我为不太清楚而道歉,我忘了提到实际上我getCircleAsPolyline
与我链接的SphericalUtil.computeOffset
略有不同,因为我使用getCircleAsPolyline
来计算坐标;无论如何,下面是我的private static ArrayList<LatLng> getCircleAsPolyline(Location center, float radius) {
ArrayList<LatLng> circlePath = new ArrayList<>();
double step = 5.0;
double centerLatitude = center.getLatitude();
double centerLongitude = center.getLongitude();
for (double angle = 0.0; angle < 360.0; angle += step) {
LatLng circlePoint = SphericalUtil.computeOffset(
new LatLng(centerLatitude, centerLongitude),
radius,
(90.0 - angle + 360.0) % 360.0
);
circlePath.add(circlePoint);
}
return circlePath;
}
函数:
x <- runif(10)
class(x) <- "percent"
print.percent <- function(x) print(scales::percent(as.numeric(x)))
但结果是图片中显示的那个
答案 0 :(得分:1)
对于那些来这里遇到同样问题的人,我只是避免对折线进行编码:只要我放弃 PolyUtil.encode 并将点追加为 | lat,long | 我已经能画出一个完美的圆圈。