当触针时,如何在android中打开地图气球(注释)以获取更多信息

当触针时,如何在android中打开地图气球(注释)以获取更多信息,android,map,android-mapview,Android,Map,Android Mapview,我制作了一个小的静态地图应用程序,在这个应用程序中,我使用三针(标记)并设置静态经纬度。实际上,我想在mapview中显示位置信息显示的引出序号注释。当我触摸标记(pin)时,气球批注打开并显示当前位置的信息。我的代码如下: **Source Code: MainActivity.java ----------------------------------** package com.example.mapapp; import java.util.List;

我制作了一个小的静态地图应用程序,在这个应用程序中,我使用三针(标记)并设置静态经纬度。实际上,我想在mapview中显示位置信息显示的引出序号注释。当我触摸标记(pin)时,气球批注打开并显示当前位置的信息。我的代码如下:

 **Source Code: MainActivity.java
    ----------------------------------**
    package com.example.mapapp;

    import java.util.List;
    import com.google.android.maps.*;

    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
    import com.google.android.maps.Overlay;
    import com.google.android.maps.OverlayItem;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.drawable.Drawable;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;

    public class MainActivity extends MapActivity {
     MapController mpc;
     //Button hotels,theaters,bank;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
         /*   hotels = (Button)findViewById(R.id.btnhotels);
            hotels.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(MainActivity.this,Hotels.class);
                    startActivity(i);
                }
            });

            theaters = (Button)findViewById(R.id.btntheaters);
            theaters.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i1 = new Intent(MainActivity.this,Theaters.class);
                    startActivity(i1);
                }
            });

            bank = (Button)findViewById(R.id.btnbank);
            bank.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i2 = new Intent(MainActivity.this,Bank.class);
                    startActivity(i2);
                }
            });*/
            MapView mp = (MapView)findViewById(R.id.mapview);
            mp.setBuiltInZoomControls(true);
            mp.setSatellite(true);
            mp.setTraffic(true);
            mp.setStreetView(true);
            mpc = mp.getController();

            //for RL WebSolutions
            double rl_lat = Double.parseDouble("23.0355018");
            double rl_lon = Double.parseDouble("72.5630625");
            GeoPoint point = new GeoPoint((int)(rl_lat*1E6), (int)(rl_lon*1E6));
            mpc.animateTo(point);
            mpc.setZoom(15);
            mp.invalidate();

            List<Overlay> mapoverlays = mp.getOverlays();
            Drawable drawable = this.getResources().getDrawable(R.drawable.redpin);
            AddItemizedOverlay itemizedOverlay = new AddItemizedOverlay(drawable,this);
            OverlayItem overlayitem = new OverlayItem(point, "Rl Websolution", "Here is RL Websolutions");
            itemizedOverlay.addOverlay(overlayitem);
            mapoverlays.add(itemizedOverlay);


            //for State Bank of India
            double stb_lat = Double.parseDouble("23.066519");
            double stb_lon = Double.parseDouble("72.56956000000002");
            GeoPoint point1 = new GeoPoint((int)(stb_lat*1E6), (int)(stb_lon*1E6));
            mpc.animateTo(point1);
            mpc.setZoom(15);
            mp.invalidate();

            List<Overlay> mpoverlays = mp.getOverlays();
            Drawable d = this.getResources().getDrawable(R.drawable.poin1);
            AddItemizedOverlay itemizeOverlay = new AddItemizedOverlay(d,this);
            OverlayItem over = new OverlayItem(point1, "State Bank Of India", "Here is State Bank");
            itemizeOverlay.addOverlay(over);
            mpoverlays.add(itemizeOverlay);

            //for Navrangpura Bus Stop
            double bus_lat = Double.parseDouble("23.035626");
            double bus_lon = Double.parseDouble("72.5641536");
            GeoPoint point2 = new GeoPoint((int)(bus_lat*1E6), (int)(bus_lon*1E6));
            mpc.animateTo(point2);
            mpc.setZoom(15);
            mp.invalidate();

            List<Overlay> mboverlays = mp.getOverlays();
            Drawable d1 = this.getResources().getDrawable(R.drawable.bus);
            AddItemizedOverlay itemizOverlay = new AddItemizedOverlay(d1,this);
            OverlayItem over1 = new OverlayItem(point2, "Navrangpura Bus Stop", "Here is Bus Stop");
            itemizOverlay.addOverlay(over1);
            mboverlays.add(itemizOverlay);

        }
        protected boolean isRouteDisplayed() {
            return true;
        }

    }


    ****Here AddItemizedOverlay.java**
    -----------------------------------**
   package com.example.mapapp;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.Log;

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

public class AddItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();
    private Context context;
    public AddItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));
        // TODO Auto-generated constructor stub
    }
     public AddItemizedOverlay(Drawable defaultMarker, Context context) {
         this(defaultMarker);
         this.context = context;
    }

    @Override
    protected OverlayItem createItem(int i) {
        // TODO Auto-generated method stub
        return mapOverlays.get(i);
    }

    @Override
    public int size() {
        // TODO Auto-generated method stub
        return mapOverlays.size();
    }
      @Override
      protected boolean onTap(int index) {
          OverlayItem item = mapOverlays.get(index);
          AlertDialog.Builder dialog = new AlertDialog.Builder(context);
          dialog.setTitle(item.getTitle());
          dialog.setMessage(item.getSnippet());
          dialog.show();
          return true;
      }
      public void addOverlay(OverlayItem overlay) {
          mapOverlays.add(overlay);
           this.populate();
       }
    }
**源代码:MainActivity.java
----------------------------------**
包com.example.mapapp;
导入java.util.List;
导入com.google.android.maps.*;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapController;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.OverlayItem;
导入android.os.Bundle;
导入android.app.Activity;
导入android.content.Intent;
导入android.graphics.drawable.drawable;
导入android.view.Menu;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
公共类MainActivity扩展了MapActivity{
地图控制器;
//巴顿酒店、剧院、银行;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*酒店=(按钮)findViewById(R.id.BTN酒店);
hotels.setOnClickListener(新OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意向i=新意向(MainActivity.this,Hotels.class);
星触觉(i);
}
});
剧院=(按钮)findViewById(R.id.btntheaters);
theaters.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意图i1=新意图(MainActivity.this,Theaters.class);
星触觉(i1);
}
});
银行=(按钮)findViewById(R.id.btnbank);
bank.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意向i2=新意向(MainActivity.this,Bank.class);
星触觉(i2);
}
});*/
MapView mp=(MapView)findViewById(R.id.MapView);
mp.SetBuiltinzoomControl(真);
mp.固定卫星(真);
mp.setTraffic(真实);
mp.setStreetView(真);
mpc=mp.getController();
//对于RL Web解决方案
double rl_lat=double.parseDouble(“23.0355018”);
double rl_lon=double.parseDouble(“72.5630625”);
地质点=新的地质点((int)(rl_lat*1E6),(int)(rl_lon*1E6));
mpc.animateTo(点);
mpc.setZoom(15);
mp.invalidate();
List mapoverlays=mp.getOverlays();
Drawable Drawable=this.getResources().getDrawable(R.Drawable.redpin);
AddItemizedOverlay itemizedOverlay=新的AddItemizedOverlay(可绘制,此);
OverlayItem OverlayItem=新的OverlayItem(点,“Rl Websolution”,“这里是Rl Websolutions”);
itemizedOverlay.addOverlay(overlayitem);
添加(itemizedOverlay);
//印度国家银行
double stb_lat=double.parseDouble(“23.066519”);
double stb_lon=double.parseDouble(“72.56956000000002”);
地质点1=新的地质点((int)(stb_lat*1E6),(int)(stb_lon*1E6));
mpc.animateTo(第1点);
mpc.setZoom(15);
mp.invalidate();
List mpoverlays=mp.getOverlays();
Drawable d=this.getResources().getDrawable(R.Drawable.poin1);
AddItemizedOverlay itemizeOverlay=新的AddItemizedOverlay(d,this);
OverlayItem over=新的OverlayItem(第1点,“印度国家银行”,“这里是国家银行”);
itemizeOverlay.addOverlay(覆盖);
mpoverlays.add(itemizeOverlay);
//纳夫兰普拉公共汽车站
双总线_lat=double.parseDouble(“23.035626”);
双总线长度=双.parseDouble(“72.5641536”);
地质点2=新的地质点((int)(总线横向*1E6),(int)(总线纵向*1E6));
mpc.animateTo(第2点);
mpc.setZoom(15);
mp.invalidate();
List mboverlays=mp.getOverlays();
Drawable d1=this.getResources().getDrawable(R.Drawable.bus);
AddItemizedOverlay itemizOverlay=新的AddItemizedOverlay(d1,this);
OverlayItem over1=新的OverlayItem(第2点,“纳夫兰普拉公交车站”,“这里是公交车站”);
itemizOverlay.addOverlay(超过1);
mboverlays.add(itemizOverlay);
}
受保护的布尔值isRouteDisplayed(){
返回true;
}
}
****这里是AddItemizedOverlay.java**
-----------------------------------**
包com.example.mapapp;
导入java.util.ArrayList;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.content.Intent;
导入android.graphics.drawable.drawable;
导入android.net.Uri;
导入android.util.Log;
导入com.google.android.maps.ItemizedOverlay;
导入com.google.android.maps.OverlayItem;
公共类AddItemizeOverlay扩展了ItemizeOverlay{
私有ArrayList mapOverlays=新ArrayList();
私人语境;
公共AddItemizedOverlay(可绘制默认标记){
super(boundCenterBottom(defaultMarker));
//TODO自动生成的构造函数存根
}
公共AddItemizedOverlay(可提取默认值MA