2013-07-18 83 views
0

我想畫一些標記,並在同一個地圖折線這樣爲Android谷歌地圖API V2:標記和折線的位置偏移

MarkerOptions options = new MarkerOptions(); 
    Marker marker; 

    PolylineOptions polyLineOptions = new PolylineOptions(); 
    polyLineOptions.color(context.getResources().getColor(R.color.mm_red)); 

    if (route != null) { 

     for(Entry entry : route.getEntries().getEntryList()){ 

      LatLng pos = new LatLng(entry.getGeolocation().getLatitude(), entry.getGeolocation().getLongitude()); 
      options.position(pos); 
      polyLineOptions.add(pos); 

      marker = mMap.addMarker(options.icon(BitmapDescriptorFactory.fromResource(R.drawable.im_map_marker_main_num))); 
      marker.setVisible(true); 

     } 


    Polyline polyline = mMap.addPolyline(polyLineOptions); 
    polyline.setVisible(true); 

    } 

然而,在這裏你可以看到結果,我得到:

Markers and Polyline mismatch

正如你所看到的,即使我通過相同的LatLng位置都MarkerOptionsPolylineOptions,存在某種偏差。

作爲額外的信息,我得到這個行爲在一臺Nexus 7

謝謝

編輯:標記圖標的引腳位置是默認的,所以它的底側的中心 Default marker image

編輯:不創建位圖的問題。如果我使用canvas.drawColor,這是我所得到的(不同的尺寸,因爲現在我有我的Nexus 10)

drawcolor not working

回答

4

這裏的問題是,默認情況下,該Marker的引腳位置是在圖像的底部中心。

您將不得不擺弄anchor(float, float)和/或確保銳利邊緣是底部中心的最後一個像素(下面沒有透明像素)。

+0

嗨MaciejGórski, 我使用的所有圖標都將其針位置置於默認位置(底部大小的中間)。 謝謝你:-) –

+0

@Wakka你似乎將這個圖標繪製成'Bitmap'。你能用'canvas.drawColor'填充背景嗎? –

+0

@MaciejGórksi謝謝,但它仍然無法正常工作(請看上面的第二個編輯):-) –