如何在android中创建MapView作为ImageView?

时间:2012-10-10 09:58:16

标签: android google-maps android-imageview

我试图在ImageView的帮助下创建一个MapView,如图片所示:

like this

伙计们,请告诉我如何做到这一点。

2 个答案:

答案 0 :(得分:3)

如果你想要一张静态地图,你可以像我一样:

http://maps.google.com/maps/api/staticmap?center=-15.800513%2C-47.91378&zoom=16&format=png&maptype=roadmap&mobile=false&markers=|color:%23128DD9|label:Marker|-15.800513%2C-47.91378&size=1000x400&key=&sensor=false

更改参数

  1. ?center=会告诉你图像的中心在哪里 是
  2. label:Marker标记应出现的位置。
  3. 将此图片加载到ImageView

    public static Bitmap loadBitmap(String url) {
        Bitmap bitmap = null;
        InputStream in = null;
        BufferedOutputStream out = null;
    
        try {
            in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE);
    
            final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
            out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
            copy(in, out);
            out.flush();
    
            final byte[] data = dataStream.toByteArray();
            BitmapFactory.Options options = new BitmapFactory.Options();
            //options.inSampleSize = 1;
    
            bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,options);
        } catch (IOException e) {
            Log.e(TAG, "Could not load Bitmap from: " + url);
        } finally {
            closeStream(in);
            closeStream(out);
        }
    
        return bitmap;
    }
    

    此方法将返回Bitmap以在Bitmap中设置此ImageView,只需执行以下操作:

     ImageView img = (ImageView)findViewById(R.id.imageView1);
     Bitmap b = loadBitmap(urlToTheImage);
     img.setImageBitmap(b);
    

答案 1 :(得分:1)

我不确定您的意思,但从它的外观来看,您需要Google Static Maps API。

https://developers.google.com/maps/documentation/staticmaps/

当您为其提供纬度,经度等时,这将生成地图的图像。然后,您可以根据需要在ImageView中使用此图像。

优点是您不必创建昂贵的MapView,但它不是交互式的