6
我已知的數據是我當前的位置(GeoPoint)和以米爲單位的半徑。我想根據地圖投影和半徑在當前位置繪製圓。 我的地圖視圖疊加並覆蓋draw方法一樣Android:MapView繪製具有動態半徑的圓(以米爲單位)
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
Projection projection = mapView.getProjection();
GeoPoint myLocationGeoPoint = getLocationGeoPointFromSomeSource();
Point myPoint = new Point();
projection.toPixels(myLocationGeoPoint, myPoint);
int radiusPixel = (int) projection.metersToEquatorPixels(getRadiusInMetersFromSomeSource());
canvas.drawCircle(myPoint.x, myPoint.y, radiusPixel, mPaintStroke);
canvas.drawCircle(myPoint.x, myPoint.y, radiusPixel, mPaintFill);
super.draw(canvas, mapView, shadow);
}
問題這段代碼是radiusPixel
實在太小。我假設問題出在metersToEquatorPixels
方法中,它以米爲單位參數並計算約。像素在赤道上的像素。我對嗎? 但我想計算我的半徑不僅需要多少個像素,而且要站在赤道上。這種工作是否有任何內置功能?還是我必須手動完成?
問候
Google地圖和osmdroid可以實現以不同的方式方法,這是一件好事來製作你正在使用的映射平臺。 – 2017-08-21 18:15:48