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