Рисование фигур в Android MapView не зависит от уровня масштабирования

Мне нужно нарисовать фигуры, подобные тем, которые вы бы создали с помощью пользовательских картна Картах Google. , используя Android MapView.

Другими словами, если я рисую фигуру на карте, при уменьшении масштаба она должна уменьшаться, охватывая одну и ту же область карты независимо от уровня масштабирования.

Пример, следующий из справочника по Android:

  @Override
  public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
  {
      super.draw(canvas, mapView, shadow);

      //---translate the GeoPoint to screen pixels---
      Point screenPts = new Point();
      mapView.getProjection().toPixels(p, screenPts);

      Paint boxPaint = new Paint();
      boxPaint.setColor(android.graphics.Color.WHITE);
      boxPaint.setStyle(Paint.Style.FILL);
      boxPaint.setAlpha(140);
      canvas.drawCircle(screenPts.x, screenPts.y, 20, boxPaint);

      return true;
  }

На карте показан белый круг, но если вы уменьшите масштаб, круг останется того же размера. Возможно, использование холста — неправильный подход?

Мне нужно что-то вроде того, как Google Maps выделяет районы или города:

Google Map showing the search result for Lower East Side, New York

Есть идеи? Заранее спасибо!

8
задан MusikAnimal 29 May 2012 в 02:10
поделиться