gpt4 book ai didi

android - 将 ItemizedOverlay 添加到我的 map View

转载 作者:行者123 更新时间:2023-11-29 00:39:12 26 4
gpt4 key购买 nike

我正在使用 osm 开发 map 应用程序。我想在我的 map View 上创建一些标记。我正在使用以下代码:

this.mMyLocationOverlay = new ItemizedOverlay<OverlayItem>(this, items,
new ItemizedOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
Toast.makeText(
SampleWithMinimapItemizedoverlay.this,
"Item '" + item.mTitle + "' (index=" + index
+ ") got single tapped up", Toast.LENGTH_LONG).show();
return true; // We 'handled' this event.
}

@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
Toast.makeText(
SampleWithMinimapItemizedoverlay.this,
"Item '" + item.mTitle + "' (index=" + index
+ ") got long pressed", Toast.LENGTH_LONG).show();
return false;
}
}, mResourceProxy);

...

但是在“new ItemizedOverlay.OnItemGestureListener”下的第 2 行中,我得到一条红线和一条错误,指出修复项目设置。我很困惑。为什么我在 eclipse 中出现这个错误?请帮助我

最佳答案

你可以使用类似的东西。- 扩展 ItemizedOverlay

package dispatch.driver.osmMaps;

import java.util.ArrayList;

import org.osmdroid.ResourceProxy;
import org.osmdroid.api.IMapView;
import org.osmdroid.views.overlay.ItemizedIconOverlay;
import org.osmdroid.views.overlay.OverlayItem;

import android.graphics.Point;

public class OsmMapsItemizedOverlay extends ItemizedIconOverlay<OverlayItem>
{
private ArrayList<OverlayItem> mItemList = new ArrayList<OverlayItem>();

public OsmMapsItemizedOverlay(ArrayList<OverlayItem> pList,
ItemizedIconOverlay.OnItemGestureListener<OverlayItem> pOnItemGestureListener, ResourceProxy pResourceProxy)
{
super(pList, pOnItemGestureListener, pResourceProxy);
mItemList = pList;
// TODO Auto-generated constructor stub
}

public void addOverlay(OverlayItem aOverlayItem)
{
mItemList.add(aOverlayItem);
populate();
}

public void removeOverlay(OverlayItem aOverlayItem)
{
mItemList.remove(aOverlayItem);
populate();
}

@Override
protected OverlayItem createItem(int i)
{
return mItemList.get(i);
}

@Override
public int size()
{
if (mItemList != null)
return mItemList.size();
else
return 0;
}

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

}

并且在你的 Activity 类调用中

private void PrepareItemizedOverlay()
{
/* itemized overlay */
mItemizedOverlay = new OsmMapsItemizedOverlay(mItems,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>()
{
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item)
{

Toast.makeText(OsmMapsActivity.this,
"Item '" + item.mTitle + "' (index=" + index + ") got single tapped up",
Toast.LENGTH_LONG).show();

return true; // We 'handled' this event.
}

@Override
public boolean onItemLongPress(final int index, final OverlayItem item)
{

Toast.makeText(OsmMapsActivity.this,
"Item '" + item.mTitle + "' (index=" + index + ") got long pressed", Toast.LENGTH_LONG)
.show();

return true;
}
}, mResourceProxy);
}

要添加一个新的叠加层,你可以使用这样的东西:

{    OverlayItem overlayItem;


overlayItem = new OverlayItem("Center", "Center", (GeoPoint) aPoint);



mItemizedOverlay.addOverlay(overlayItem);

mMapView.getOverlays().clear();
mMapView.getOverlays().add(mItemizedOverlay);
mMapView.getController().animateTo(aPoint);
}

关于android - 将 ItemizedOverlay 添加到我的 map View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com