如何另一个叠加项添加到Android的MapView类 [英] How to add another overlay item to a android mapview
本文介绍了如何另一个叠加项添加到Android的MapView类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要另一个覆盖项添加到MapView类。我已经使用了标准的Android开发人员指南,谷歌地图。我现在有一个选项卡中的MapView。我真的AP preciate任何想法。谢谢你。
下面是我的java类:
公共类MapView类扩展MapActivity { 保护布尔isRouteDisplayed(){
返回false;
} @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.mapview); MapView类MapView类=(图形页面)findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(真); // JD体育标志开始
清单<&叠加GT; mapOverlays =调用MapView.getOverlays();
可绘制可绘制= this.getResources()
.getDrawable(R.drawable.jd_sports_logo);
//通行证绘制(JD体育标志)到HelloItemizedOverlay类
HelloItemizedOverlay itemizedoverlay =
新HelloItemizedOverlay(绘制); 双纬度= 51.545538;
双经度= -0.477247;
的GeoPoint点=新的GeoPoint((int)的(纬度* 1e6个电子),
(中间体)(经度* 1e6个电子)); OverlayItem overlayitem =新OverlayItem(点,JD体育
这是一个体育用品商店); itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
// JD体育标记结束 //健身第一标志开始
清单<&叠加GT; mapOverlays1 =调用MapView.getOverlays();
可绘制drawable1 = this.getResources()
.getDrawable(R.drawable.fitness_first_logo);
HelloItemizedOverlay itemizedoverlay1 =
新HelloItemizedOverlay(绘制); 双latitude1 = 51.545157;
双longitude1 = -0.477247;
的GeoPoint点1 =新的GeoPoint((int)的(纬度* 1e6个电子),
(中间体)(经度* 1e6个电子)); OverlayItem overlayitem1 =新OverlayItem(点,JD体育
这是一个体育用品商店); itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
//健身第一末端标记
}}
我HelloItemizedOverlay类:
公共类HelloItemizedOverlay扩展ItemizedOverlay { 私人的ArrayList< OverlayItem> mOverlays =新的ArrayList< OverlayItem>();
私人的ArrayList< OverlayItem> mOverlays1 =新的ArrayList< OverlayItem>(); 公共HelloItemizedOverlay(可绘制defaultMarker){
超(boundCenterBottom(defaultMarker)); } 公共无效addOverlay(OverlayItem叠加){ mOverlays.add(覆盖);
填充();
} 公共HelloItemizedOverlay(可绘制defaultMarker,上下文的背景下){
超(defaultMarker);
上下文mContext =语境;
} @覆盖
保护OverlayItem createItem中(int i)以{
// TODO自动生成方法存根
返回mOverlays.get(ⅰ);
} @覆盖
公众诠释大小(){
// TODO自动生成方法存根
返回mOverlays.size();
} @覆盖
保护布尔中的onTap(INT指数){
OverlayItem项目= mOverlays.get(指数);
上下文mContext = NULL;
AlertDialog.Builder对话框=新AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
返回true;
}}
解决方案
OverlayItem overlayitem1 =新OverlayItem(点,JD体育,...
应该读
OverlayItem overlayitem1 =新OverlayItem(点1,JD体育,...
不应该吗?
I need to add another overlay item to a mapview. I have used the standard android developers guide to google maps. I currently have the mapview within a tab. I would really appreciate any ideas. Thanks.
Below are my java classes:
public class Mapview extends MapActivity {
protected boolean isRouteDisplayed(){
return false;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
// JD sports marker begin
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources()
.getDrawable(R.drawable.jd_sports_logo);
//Passes drawable(jd sports logo) into HelloItemizedOverlay class
HelloItemizedOverlay itemizedoverlay =
new HelloItemizedOverlay(drawable);
double latitude = 51.545538;
double longitude = -0.477247;
GeoPoint point = new GeoPoint((int)(latitude * 1e6),
(int)(longitude * 1e6));
OverlayItem overlayitem = new OverlayItem(point, "JD Sports",
"This is a sports shop");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
// JD sports marker ends
// Fitness first marker begin
List<Overlay> mapOverlays1 = mapView.getOverlays();
Drawable drawable1 = this.getResources()
.getDrawable(R.drawable.fitness_first_logo);
HelloItemizedOverlay itemizedoverlay1 =
new HelloItemizedOverlay(drawable);
double latitude1 = 51.545157;
double longitude1 = -0.477247;
GeoPoint point1 = new GeoPoint((int)(latitude * 1e6),
(int)(longitude * 1e6));
OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports",
"This is a sports shop");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
// Fitness first marker ends
}
}
My HelloItemizedOverlay class:
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private ArrayList<OverlayItem> mOverlays1 = new ArrayList<OverlayItem>();
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
super(defaultMarker);
Context mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
Context mContext = null;
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
解决方案
OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports, ...
Should read
OverlayItem overlayitem1 = new OverlayItem(point1, "JD Sports", ...
Shouldn't it?
这篇关于如何另一个叠加项添加到Android的MapView类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文