2011-05-22 48 views
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方法中,它以米爲單位參數並計算約。像素在赤道上的像素。我對嗎? 但我想計算我的半徑不僅需要多少個像素,而且要站在赤道上。這種工作是否有任何內置功能?還是我必須手動完成?

問候

+0

Google地圖和osmdroid可以實現以不同的方式方法,這是一件好事來製作你正在使用的映射平臺。 – 2017-08-21 18:15:48

回答

相關問題