【问题标题】:Android MapActivity onTap eventAndroid MapActivity onTap 事件
【发布时间】:2011-08-11 06:45:27
【问题描述】:

我有一个 MapActivity,并且使用 ItemizedOverlay 显示地图图钉。我想将 onTap 事件转移到 MapActivity。 (onTap 函数存在于 ItemizedOverlay 类中)。如何做到这一点?

【问题讨论】:

标签: android android-maps mapactivity


【解决方案1】:
class CurOverlay extends Overlay
 {
   private GeoPoint pointToDraw;
    String addstr,addcity;
   @Override
    public boolean onTap(GeoPoint p, MapView mapView) {
        // TODO Auto-generated method stub

      final double taplat,taplon;
        taplat=p.getLatitudeE6()/1E6;
       taplon=p.getLongitudeE6()/1E6;



            Geocoder geo = new Geocoder(getApplicationContext(), Locale.getDefault());
            List<Address> add;
            try
            {

                add = geo.getFromLocation(taplat,taplon,1);

                Log.i("ADD OBJ SIZE IS----",""+add.size());
                if (add.size() > 0) 
                {

                    addstr = add.get(0).getAddressLine(0)+" "+add.get(0).getAddressLine(1);
                }
}
catch (IOException e) 
            {

                e.printStackTrace();
            }

        return super.onTap(p, mapView);
    }
 public void setPointToDraw(GeoPoint point) {
     pointToDraw = point;
   }


   public GeoPoint getPointToDraw() {
     return pointToDraw;
   }
}

只需将此代码添加到您的 tapactivity 并从其他活动中调用它(通过 ActivityforResult)并获得简单的位置......

【讨论】:

  • 谢谢..我以不同的方式解决了。我将 MapActivity 对象传递给 ItemizedOverlay 类。 ItemizedOverlay 的 onTap() 中的一个通过传递所需的 pin taped 索引调用 MapActivity Object 中的公共方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多