Как добавить оверлей, который меняет размер / положение вместе с масштабированием и позицией - PullRequest
0 голосов
/ 11 июля 2011

Я уже несколько дней ищу решение этой проблемы. Я хочу добавить изображение как оверлей (или как лучше). Изображение визуализирует часть карты, но с собственной графикой. Поэтому важно, чтобы он масштабировался, располагался и вел себя так, как если бы он был частью карты.

Изображение довольно большое (800x1200), поэтому может быть полезным использовать решение типа som на основе плиток.

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Я нашел решение !! (http://groups.google.com/group/android-developers/browse_thread/thread/79b233ab9ec64e1e#)

Я использую оверлей, и в методе рисования я делаю это.

public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        if(shadow){
       return;
    }

    super.draw(canvas, mapView, shadow);

    // convert bitmap's bounding box into pixels 
        Point top_left = new Point(); 
        mapView.getProjection().toPixels(topLeft, top_left); 
        Point bottom_right = new Point(); 
        mapView.getProjection().toPixels(bottomRight, bottom_right); 
        // Prepare two rectangles (pixels) 
        Rect src = new Rect( 0,0,bmp.getWidth() - 1, bmp.getHeight() - 1 ); 
        Rect dst = new Rect( top_left.x, top_left.y, bottom_right.x,bottom_right.y ); 

        // draw bitmap 
        canvas.drawBitmap(bmp, src, dst, null); 


}

// Я устанавливаю geoPoints (geoPointTopLeft, geoPointBottomRight) изображения в конструкторе

0 голосов
/ 11 июля 2011

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

AFAIK MapView в настоящее время поддерживает только плитки со спутника и карты. Также кажется, что нет API для добавления пользовательских «слоев» на карту, что может быть другим решением.

Если это для вас нарушитель правил проекта, вы можете использовать что-то вроде OSMDroid , которое представляет собой полнофункциональную замену MapView, которая использует OpenStreetMap-Data и может быть проще в настройке.

...