2011-08-01 2 views
1

Мне бы очень хотелось знать, есть ли какой-нибудь учебник или пример того, как рисовать синие круги, которые появляются в приложении Google Maps (тот, который показывает вам, где у вас). Я также хотел бы знать, как при увеличении масштаба в круге становится больше (и при масштабировании круг становится меньше и в какой-то момент исчезает). Если для этого есть несколько советов или руководств, или с чего начать, я был бы очень признателен. Спасибо иРисование кругов в android, как в приложении Google Maps

ответ

0

Большинство операций рисования доступны в классе Canvas: http://developer.android.com/reference/android/graphics/Canvas.html

Насколько я знаю, нет никакого прямого способа рисовать синие круги сразу, но вы должны быть в состоянии эмулировать в тесном взаимодействии с некоторыми звонки drawCircle()

1

После долгого поиска ответа я наконец получил решение. Вот мой код:

  int mToR= metersToRadius(55, mapView,p.getLatitudeE6()); 
      canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintFill); 
      canvas.drawCircle(screenPts.x, screenPts.y, mToR, mPaintStroke); 

Это рисует круг, где screenPts является проекцией GeoPoint моего текущего местоположения.

public static int metersToRadius(float meters, MapView map, double latitude) { 
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));   
} 

Вот как я рассчитываю радиус круга. Это я получил из другого сообщения (http://stackoverflow.com/questions/2077054/how-to-compute-a-radius-around-a-point-in-an-android-mapview)

+0

Я знаю, что я ответил на мой вопрос, но после использования моего приложения в течение нескольких дней я заметил, что радиус круга меняется, даже я полагаю, что он всегда будет 55 метров. Если кто-то знает, почему это происходит или имеет лучшее решение для этой проблемы, я буду очень признателен, если он разделяет это. Спасибо заранее. – Sandra

Смежные вопросы