Ive, एक ही प्राप्त करने की कोशिश कर इस वास्तव में मैं क्या चाहते हैं: - MapView शो ओवरले विवरण जब क्लिक
मैं आवरण लगा googleMapView लागू कर दिया है, मैं एक मुद्दा है मैं एक पॉपअप दिखाना चाहते हैं जब क्लिक प्रत्येक ओवरले पर, और जब मैं किसी अन्य ओवरले पर क्लिक करता हूं तो पिछली पॉपस गायब होनी चाहिए और नए स्थान पर क्लिक किए गए स्थान (यानी प्रक्षेपण बिंदु) पर दिखाई देना चाहिए। और जब मैं स्क्रीन पर कहीं और क्लिक करता हूं तो पॉपअप प्रकट नहीं होना चाहिए। मैं ऑनटिक रिकॉर्ड करने के लिए ऑनटैप ईवेंट का उपयोग कर रहा हूं। (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;
}
नीचे मुख्य वर्ग के रूप में ऊपर दिखाए गए, जिसमें प्रक्षेपण अंक और im जो ठीक काम कर रहा है प्रदर्शित im कॉल मैं एक कक्षा में 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();
}
}
धन्यवाद मैं इसे आजमाउंगा। – user606669
बहुत बढ़िया! महान काम करता है, उपयोग करने में आसान, अच्छे निर्देश और उदाहरण! अगर मैं कर सकता तो मैं इसे +2 देता। – plainjimbo