【问题标题】:Overlays not working in Google MapView Tutorial Android覆盖在 Google MapView Tutorial Android 中不起作用
【发布时间】:2026-01-23 01:15:01
【问题描述】:

当我要集成叠加层时,遵循 MapView 教程时遇到了一些错误。

TravelBuddy.java

package com.jappapps.android.travelbuddy;
import java.util.List;

import android.graphics.drawable.Drawable;
import android.os.Bundle;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;

public class TravelBuddy extends MapActivity {
List<Overlay> mapOverlays;
Drawable drawable;
Overlays itemizedOverlay;
/** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main); // changed to lowercase
       MapView mapView = (MapView) findViewById(R.id.mapview); // match id in main.xml
       mapView.setBuiltInZoomControls(true);
       mapOverlays = mapView.getOverlays();
       drawable = this.getResources().getDrawable(R.drawable.androidmarker);
       itemizedOverlay = new Overlays(drawable);
   }

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

Overlays.java

 package com.jappapps.android.travelbuddy;

 import java.util.ArrayList;

 import android.graphics.drawable.Drawable;

 import com.google.android.maps.ItemizedOverlay;
 import com.google.android.maps.OverlayItem;

 public class Overlays extends ItemizedOverlay {
public Overlays(Drawable arg0) {
    super(arg0);
    Object overlayitem;
    ItemizedOverlay.addOverlay(overlayitem);
    Object itemizedoverlay;
    ArrayList<OverlayItem> mapOverlays;
    mapoverlays.add(itemizedOverlay);
}
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
super(boundCenterBottom(defaultMarker));
public void addOverlay(OverlayItem overlay) {
    mOverlays.add(overlay);
    populate();}
    @Override
    protected OverlayItem createItem(int i) {
      return mOverlays.get(i);

    }
    @Override
    public int size() {
        return 0;
    }
  }

对不起,如果我看起来像一个完整的新手,但我正在努力学习,我有一个很棒的应用程序创意,需要地图视图、网络视图、叠加层和选项卡。

【问题讨论】:

  • 也许只是复制错误但是 super(boundCenterBottom(defaultMarker));不在任何功能的范围内。它显然应该在构造函数中。

标签: java android google-maps overlays


【解决方案1】:

@覆盖 公共整数大小(){ 返回 mOverlays.size(); }

【讨论】:

    【解决方案2】:

    我正在使用“官方”谷歌地图视图教程中的 androidmarker.png 并且卡住了没有显示的叠加层。我尝试了其他几个人的工作示例,但仍然存在同样的问题。我用较小的 png 换掉了 androidmarker.png 并且它起作用了。所以代码很好,但与标记资产有关。

    【讨论】: