2013-02-12 164 views
0

我必須在Google mapview中繪製一個圓形和一個小的.png圖像,任何人都可以提出如何實現它?在地圖上繪製帶有圖像的圓形圖

它應該在提供的經度和緯度上顯示圓,並且.png圖像應該在圓內。

我想下面的代碼畫一個圈:

GeoPoint point = new GeoPoint((int) lattitude, 

          (int) longitude); 


@Override 
    public void draw(Canvas canvas, MapView mapView, boolean shadow) { 

       paint1 = new Paint(); 
       paint1.setARGB(128,0 , 0, 250); 
       paint1.setStrokeWidth(2); 
       paint1.setStrokeCap(Paint.Cap.ROUND); 
       paint1.setAntiAlias(true); 
       paint1.setDither(false); 
       paint1.setStyle(Paint.Style.FILL); 
       paint1.setColor(Color.argb(128, 250, 135, 143)); 

       this.radius = 5000; 

       Point pt = mapView.getProjection().toPixels(point, null); 
       float projectedRadius = mapView.getProjection().metersToEquatorPixels(radius); 

       canvas.drawCircle(pt.x, pt.y, projectedRadius, paint1); 

    } 

我能夠得出使用上面的代碼所提供經度和緯度圈,但無法找到一個方法來繪製圓內的PNG圖片。 所以想法是在地圖視圖上提供的經緯度上繪製圓形內部的.png圖像。

請幫我解決這個問題。

+0

我幾天前做了類似的事情。圖像是否應該填滿圓圈?或者它會像圓圈或小圖標一樣出現在圓圈內嗎? – 2013-02-12 07:53:32

+0

圖像應該像小圖標一樣在圓內,大部分圖像應該是圓的中心。如果您已經實現了它,請分享我的代碼。 – piks 2013-02-12 08:26:39

回答

0

就我個人而言,我會首先想象png-in-circle會是什麼樣子,然後將圖像製作出來。像在其中一樣,用你想在其中顯示的png製作一個圓圈的png圖像。然後,只需在所需的緯度/經度上放置一個覆蓋層即可。請參閱this resource的第2部分。

+0

png裏面的圓圈不過是圓圈內的一個圖片而圓圈不應該是任何靜態圖片的意思,當用戶放大縮小時,圓圈應該增加減少。 – piks 2013-02-12 06:27:11

+0

那麼,圈子需要按照圖像本身的比例改變尺寸?在這種情況下,我會讓png成爲一個疊加層,然後在畫布上圍繞它繪製圓圈。我不確定你在上面覆蓋哪個方法,但是你應該重寫mapView的onDraw(canvas)方法。將疊加層的位置存儲在數組中,並且對於每個疊加層,在onDraw中圍繞它的位置繪製一個圓圈。只要確保你叫super.onDraw。 – Halogen 2013-02-12 18:14:15

+0

這是地圖API的btw v1或v2嗎? – Halogen 2013-02-12 18:17:09