【问题标题】:Why are my overlays on a mapview not shown?为什么我的地图视图上的叠加层没有显示?
【发布时间】:2010-03-01 17:13:33
【问题描述】:

我按照 google hellomapview 教程中的说明进行操作。我得到了一个工作地图视图等。但添加到地图的两个项目没有显示。它们似乎在某处,因为在指定位置点击会显示添加到项目中的消息。

编辑

这是我的源代码。它应该非常接近谷歌教程源代码。

public class MapOverlay extends ItemizedOverlay<OverlayItem> {

private List<OverlayItem> overlays = new ArrayList<OverlayItem>();
private Context context;

public MapOverlay(Drawable defaultMarker, Context context) {
    super(defaultMarker);
    overlays = new ArrayList<OverlayItem>();
    this.context = context;
}

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

@Override
public int size() {
     return overlays.size();
}

public void addOverlay(OverlayItem overlay) {
    overlays.add(overlay);
    this.populate();
}

@Override
protected boolean onTap(int index) {
  OverlayItem item = overlays.get(index);
  AlertDialog.Builder dialog = new AlertDialog.Builder(this.context);
  dialog.setTitle(item.getTitle());
  dialog.setMessage(item.getSnippet());
  dialog.show();
  return true;
}

}

public class MapsActivity extends MapActivity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    MapView mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);

    MapOverlay overlay = new MapOverlay(this.getResources().getDrawable(
            R.drawable.androidmarker), this);

    overlay.addOverlay(new OverlayItem(new GeoPoint(19240000,-99120000), "Blubb", "See?"));
    mapView.getOverlays().add(overlay);
}

@Override
protected boolean isRouteDisplayed() {
    return false;
}
}

谷歌教程中的源代码在某处可用吗?

【问题讨论】:

    标签: android android-maps android-mapview


    【解决方案1】:

    问题是我忘记设置可绘制对象的边界。似乎如果地图视图不知道如何对齐图像,它根本不会显示它。

    我将构造函数中的第一行更改为:

    super(defaultMarker);
    

    super(boundCenterBottom(defaultMarker));
    

    并且知道它的工作完美。

    【讨论】:

    • +1 我也犯了那个愚蠢的错误。我最终导出了两个绑定函数,以便在创建使用自己的(非默认)标记的新 OverlayItems 时可以访问它们。
    【解决方案2】:

    同时,我不知道如何直接帮助您。

    Herelinks 对于肯定使用覆盖的项目的各个版本,也许它们会有所帮助。

    【讨论】:

    • 好吧,NooYak 项目适合我。我会看看你和我的项目之间的区别。
    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多