Android使用url中的setIcon为地图v2添加标记

时间:2015-02-02 14:43:46

标签: android google-maps-markers google-maps-android-api-2

在提出这个问题之前,我回顾了许多链接

我正在从网络解析xml,并从这个xml中获取我在Android应用中添加到地图(v2)的标记的经度,纬度和名称

到目前为止,一切都运作良好。

mMap.addMarker(new MarkerOptions()
                .position(new LatLng(dLat, dLon)) // lat and lon from the xml of the web
                .title(NAME_OF_MARKER));

此xml还包含一个字段,其中包含小图像的url以显示标记

<marker>
<lat>40.758895</lat>
<lon>-73.985131</lon>
<name>My Point</name>
<thumb>http://research.cbei.psu.edu/images/uploads/research-digest/general/1.CityIcon.png</thumb>
</marker>

据我所知,xml的图像应该加载到BitMap中,而这个BitMap将它作为标记图标:

 mMap.addMarker(new MarkerOptions()
                .position(new LatLng(dLat, dLon))
                .title(NAME_OF_MARKER))
                .setIcon(BitmapDescriptorFactory.fromBitmap(bmp));

我正在使用AsyncTask加载网址并将其分配给位图:

    Bitmap bmp;
    Canvas canvas1;

    //...
 public class markers extends AsyncTask<String, Void, String> {

     protected void onPreExecute() {

              Bitmap.Config conf = Bitmap.Config.ARGB_8888;
              bmp = Bitmap.createBitmap(80, 80, conf);

          }

          public String doInBackground(String... urls) {

                    try {
                        URL url = new URL(MY_THUMB); //url of the image parser from the xml ("http://research.cbei.psu.edu/images/uploads/research-digest/general/1.CityIcon.png")
                        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                        conn.setDoInput(true);
                        conn.connect();
                        InputStream is = conn.getInputStream();
                        bmp = BitmapFactory.decodeStream(is);
                    } catch (IOException e) {

                    }
        //...

...在地图上创建标记之前:

  canvas1 = new Canvas(bmp);

        Paint color = new Paint();
        color.setTextSize(35);
        color.setColor(Color.BLACK);

//modify canvas
        canvas1.drawBitmap(bmp, 0, 0, color);
        canvas1.drawText("User Name!", 30, 40, color);

        mMap.addMarker(new MarkerOptions()
                .position(new LatLng(dLat, dLon))
                .title(NAME_OF_MARKER))
                .setIcon(BitmapDescriptorFactory.fromBitmap(bmp));
    }

..但永远不会奏效。 一切都很好,但从不显示图标。

我仔细阅读了许多相关的线程:

Android load from URL to Bitmap

How to get bitmap from a url in android?

但是我开始工作,当然我已经在清单,互联网,外部写入等方面包含了必要的权限,但没有成功。

我非常感谢任何帮助,我已经测试了数百种方法。

问候并提前感谢

0 个答案:

没有答案