MapFragment:如何使用MapActivity函数绘制标记?

时间:2012-11-16 22:41:34

标签: android android-mapview fragment mapfragment

问题:

我需要在ViewPager中放置一个MapView

更多信息:

由于Mapview将是静态的(clickable =“false”),因此滚动或触摸事件不会有任何问题。 ViewPager将获得每一次触摸,就是这样。

我尝试了什么:

经过大量的Google搜索,我发现了这个很棒的库:https://github.com/inazaruk/map-fragment

我在寻呼机适配器中的代码:

@Override
public Fragment getItem(int position) {
        return new MyMapFragment(itineraries);
}

和MyMapFragment中的构造函数:

public ArrayList<Itinerary> itineraries;

public MyMapFragment(ArrayList<Itinerary> itineraries) {
    super();
    this.itineraries = itineraries;
}

这是有效的,我很高兴结果和点击时的行为设置为假

我的问题:

由于我想画出行程,我完全陷入困境。

MapFragment没有任何Mapview功能。 我知道我可以编辑MyMapActivity类并使一切工作在那里,但是如何将ArrayList从Fragment发送到Activity?

目前,MapACtivity没有任何变量来绘制标记。所有这些信息都在MapFragment

1 个答案:

答案 0 :(得分:0)

据我所知,使用ItemizedOverlay<OverlayItem>(只需将图片放在地图上绘制标记)。

public class MyViewActivity extends MapActivity {
....
OverlayItem myMarker;
MapView myMapView;
ItemizedOverlay<OverlayItem> mItemizedoverlay;
GeoPoint mCurrentPoint;

....

Drawable drawable = this.getResources().getDrawable(R.drawable.target);
    mItemizedoverlay = new MyItemizedOverlay(drawable, this);

....

Address address = ...;
....
mCurrentPoint = new GeoPoint((int) (address.getLatitude() * 1E6), (int) (address.getLongitude() * 1E6));
myMarker = new OverlayItem(mCurrentPoint, "Submit", toSearch);
            mItemizedoverlay.addOverlay(myMarker);
            myMapView.getOverlays().add(mItemizedoverlay);

....