0

OpenStreetMapに Google マップ (ここに示されているものなど) のようなバルーンを追加するにはどうすればよいですか? これは、以下の私の OpenStreetMap コードです。

import org.osmdroid.DefaultResourceProxyImpl;
import org.osmdroid.ResourceProxy;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;

public class MainActivity extends Activity {

MyItemizedOverlay myItemizedOverlay = null;
  private MapController myMapController;

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MapView mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);
    myMapController = mapView.getController();
    myMapController.setZoom(16);


    Drawable marker=getResources().getDrawable(android.R.drawable.star_big_on);
    int markerWidth = marker.getIntrinsicWidth();
    int markerHeight = marker.getIntrinsicHeight();
    marker.setBounds(0, markerHeight, markerWidth, 0);

    ResourceProxy resourceProxy = new   
   DefaultResourceProxyImpl(getApplicationContext());

    myItemizedOverlay = new MyItemizedOverlay(marker, resourceProxy);
    mapView.getOverlays().add(myItemizedOverlay);

    GeoPoint myPoint1 = new GeoPoint(24.893379000000000000, 67.028060900000010000);
    myItemizedOverlay.addItem(myPoint1, "myPoint1", "myPoint1");
    GeoPoint myPoint2 = new GeoPoint(24.824796300000000000, 67.031565699999990000);
    myItemizedOverlay.addItem(myPoint2, "myPoint2", "myPoint2");


  } 

}


import java.util.ArrayList;

import org.osmdroid.ResourceProxy;
import org.osmdroid.api.IMapView;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.overlay.ItemizedOverlay;
import org.osmdroid.views.overlay.OverlayItem;

import android.graphics.Point;
import android.graphics.drawable.Drawable;

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> overlayItemList = new ArrayList<OverlayItem>();

    public MyItemizedOverlay(Drawable pDefaultMarker,
       ResourceProxy pResourceProxy) {
     super(pDefaultMarker, pResourceProxy);
       // TODO Auto-generated constructor stub
     }

     public void addItem(GeoPoint p, String title, String snippet){
        OverlayItem newItem = new OverlayItem(title, snippet, p);
        overlayItemList.add(newItem);
        populate(); 
     }

     @Override
     public boolean onSnapToItem(int arg0, int arg1, Point arg2, IMapView arg3) {
       // TODO Auto-generated method stub
       return false;
     }

     @Override
     protected OverlayItem createItem(int arg0) {
       // TODO Auto-generated method stub
       return overlayItemList.get(arg0);
     }

     @Override
     public int size() {
       // TODO Auto-generated method stub
       return overlayItemList.size();
     }

}
4

2 に答える 2

1

osmdroid のアドオンである osmbonuspack ライブラリを確認してください。ポップアップ バルーンを表示するオーバーレイが含まれています。

https://code.google.com/p/osmbonuspack/

于 2013-07-25T13:26:11.950 に答える