点击时mapView显示叠加详细信息

我一直在尝试达到同样的效果,这正是我想要的: – Google地图图片

我已经与覆盖实现谷歌地图,我有一个问题,我想要显示一个popup,当每个覆盖点击,当我点击另一个覆盖以前的popup应该消失,新的应该出现在点击的位置(即投影点)。 popup不应该出现,当我点击屏幕上的任何其他地方。我使用onTap事件来loggingonclick。 (map_overlay)是我想在地图上点击投影点时显示的布局。 代码如下,map_overlay.xml可以是任何文件。

类:ItemizedOverlay

public boolean onTap(GeoPoint p, MapView mapView) { LayoutInflater inflater = (LayoutInflater)cContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutParams lp = new MapView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, p, LayoutParams.WRAP_CONTENT); LinearLayout view = (LinearLayout)inflater.inflate(R.layout.map_overlay, null); mapView.removeView(view); mapView.invalidate(); mapView.addView(view,lp); mapView.invalidate(); return true; } 

下面是显示投影点正在工作正常,即时调用我在另一个类中实现了onTap事件的主类,如上所示:

 public **class MapView** extends MapActivity{ private ArrayList<MyClass> overlayItem ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.large_mapview); mapView = (MapView) findViewById(R.id.mapview); // mapView.setBuiltInZoomControls(true); List<Overlay> mapOverlays = mapView.getOverlays(); Drawable drawable = this.getResources().getDrawable(R.drawable.mappointer2); ItemizedOverlay itemizedoverlay = new ItemizedOverlay(drawable,this); OverlayItem overlayitem; GeoPoint point; double lat; double lng; for (int i = 0; i < overlayItem.size(); i++) { lat = Double.parseDouble(overlayItem.get(i).getLatitude()); lng = Double.parseDouble(overlayItem.get(i).getLongitude()); point = new GeoPoint((int) (lat * 1E6),(int) (lng * 1E6)); overlayitem = new OverlayItem(point, i+"".toString(), overlayItem.get(i).getDetails().toString()); itemizedoverlay.addOverlay(overlayitem); mapOverlays.add(itemizedoverlay); } mapView.invalidate(); } } 

Solutions Collecting From Web of "点击时mapView显示叠加详细信息"