如何在地图中的特定位置添加图像?

时间:2014-04-04 11:59:25

标签: android image google-maps

在我的项目中,我想在地图中的特定位置添加图像。因为我使用了以下代码。

public class Sample extends Activity {

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample);

        // Get a handle to the Map Fragment
        GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

        LatLng sydney = new LatLng(33.6671688,-117.9053506);

        map.setMyLocationEnabled(true);
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15));

      //add overlay
        BitmapDescriptor image = BitmapDescriptorFactory.fromResource(R.drawable.categorymap);
        GroundOverlayOptions groundOverlay = new GroundOverlayOptions()
        .image(image)
        .position(sydney, 1000f)
        .transparency(0.1f);
        map.addGroundOverlay(groundOverlay);

    }
}

通过使用此代码,地图将显示如下屏幕截图。enter image description here

但是我的要求是将图像添加到特定位置,如下面的屏幕截图。为此我还有纬度和经度值来显示地图位置。在该位置我想添加图像,如下面的屏幕截图。

enter image description here

所以我的问题是,如何像上面的截图一样从左到右移动图像。我尝试了很多这样做,但没有解决问题。所以请建议我如何解决这个问题。谢谢所有人...

1 个答案:

答案 0 :(得分:0)

尝试获取建筑物角落的确切位置并使用方法

public GroundOverlayOptions positionFromBounds (LatLngBounds bounds)

然后它应该与mapzoom缩放

另一种方法是使用anchor

编辑:

GroundOverlayOptions groundOverlay = new GroundOverlayOptions()
    .image(image)
    .position(sydney, 1000f)
    .transparency(0.1f)
    .anchor(0.5, 0.5);

这将使lat / lon位于图像的中心。