2017-07-06 12 views
0

私は単純なGoogleマップを実装しています。ここでは、リストに応じてマーカーのリストを表示しています。マップ上のマーカーに画像をロード

for (final PhotosForPlants p : photos) { 
      if (p.getLat() != null && p.getLon() != null && p.getLat() != 0.0 && p.getLon() != 0.0) // check for 0.0 
      { 
       if (p.getId() == currentPlantId) { 
        plantLocation = new LatLng(p.getLat(), p.getLon()); 
        yellowPos = plantLocation; 
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(plantLocation, 35f)); 
        Marker m = mMap.addMarker(new MarkerOptions().position(plantLocation) 
          .icon(BitmapDescriptorFactory 
            .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW))); 

        m.setTag(p); 
        markers.add(m); 
       } else { 
        plantLocation = new LatLng(p.getLat(), p.getLon()); 
        positions.add(plantLocation); 
        positionSave = index; 
        Marker m = mMap.addMarker(new MarkerOptions().position(plantLocation) 
          .icon(BitmapDescriptorFactory 
            .defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); 

        m.setTag(p); 
        markers.add(m); 
       } 

      } 
      index++; 
     } 
    } 

代わりに、単純なマーカー画像を持つ、私は私のサーバーからロードされた正方形の画像のようなものを持っている必要があり、私:私は、リストを反復処理し、各マーカーを作成し、このようにそれらを表示するには

それのためにピカソ使用しようが、私はそれをビットマップを取得するには、この方法をやって任意の問題を取得する場合、私は知らない。

public void loadBitmap(String url) { 

     if (loadtarget == null) loadtarget = new Target() { 
      @Override 
      public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
       // do something with the Bitmap 
       handleLoadedBitmap(bitmap); 
      } 

      @Override 
      public void onBitmapFailed(Drawable errorDrawable) { 

      } 

      @Override 
      public void onPrepareLoad(Drawable placeHolderDrawable) { 

      } 

     }; 

     Picasso.with(this).load(url).into(loadtarget); 
    } 

    public Bitmap handleLoadedBitmap(Bitmap b) { 
     return b; 
    } 

私の主な問題は、私がロードされた各画像をretriveすることができますかわからないということです特定のマーカーについて、そしてそれを私のマップでipに設定する方法:S。

助けが必要ですか?あなたの質問の後半部分に

答えて

0

回答:あなたはBitmapオブジェクトを持っている場合は、マーカーとしてmyBitmap使用するためには

Marker m = mMap.addMarker(new MarkerOptions().position(plantLocation) 
         .icon(BitmapDescriptorFactory.fromBitmap(myBitmap))); 

であなたのコードを変更することができます。

0

この

Marker source = mMap.addMarker(
       new MarkerOptions() 
    .position( 
     new LatLng(
      Double.parseDouble(info.getLatitude()), 
      Double.parseDouble(info.getLongitude()))) 
    .title(info.getBankName()) 
    .snippet(info.getBankAddress())  
    .icon(BitmapDescriptorFactory.fromResource(getBitmap(url)))); 



public static Bitmap getBitmap(String src) { 
    try { 
     URL url = new URL(src); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream input = connection.getInputStream(); 
     Bitmap myBitmap = BitmapFactory.decodeStream(input); 
     return myBitmap; 
    } catch (IOException e) { 
     // Log exception 
     return null; 
    } 
} 
を試してみてください
関連する問題