2011-05-22 13 views
6

Bilinen verilerim şu anki konumum (GeoPoint) ve metre cinsinden yarıçaptır. Harita projeksiyonuna ve yarıçapına dayanarak mevcut konumumun etrafına daire çizmek istiyorum. My harita görünümü bindirme bu kodunAndroid: Dinamik yarıçaplı MapView çizim çemberi (metre cinsinden)

@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); 
} 

Problem gibi beraberlik yöntemi geçersiz gelmez radiusPixel çok küçük olmasıdır. Problemin, parametreyi metre olarak alan ve yaklaşık olarak hesaplayan metersToEquatorPixels yönteminde olduğunu varsayıyorum. eğer bu sayaçlar ekvatorda ise pikseller. Ben haklı mıyım Ancak, yarıçapım kaç pikselin sadece ekvatorda durduğumda olmadığını hesaplamak istiyorum. Bu tür işler için herhangi bir kurulum işlevi var mı yoksa el ile yapmak zorunda mıyım?

Selamlar

+0

googlemaps ve farklı şekillerde yöntemlerini uygulayabilir osmdroid, her zaman iyi bir cevap

Ben bu soruya kapsadığı düşünüyorum sahiptir Hangi haritalama platformunu kullandığınızı –

cevap