亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

百度地圖SDK for Android【Demo自定義圖層】

系統 1945 0

今天將和大家分享的是如何構建自定義圖層并顯示自定義的覆蓋物。

首先,我們要構建一個最基本的地圖應用,具體介紹請參考: 百度地圖SDK for Android【Demo地圖展示】

在此基礎之上,我們對工程文件做一定的修改。

第一步,修改布局文件,添加button控件,用于控制添加自定義覆蓋物。代碼如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <!-- 放入百度地圖的mapview -->
    <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:clickable="true"/>

    <!-- 添加按鈕 -->
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="《添加自定義覆蓋物》" />

</RelativeLayout>
  

第二步,定義繼承自ItemizedOverlay<OverlayItem>的自定義圖層。代碼如下:

    public class MyOverLay extends ItemizedOverlay<OverlayItem> {

	private List<OverlayItem> GeoList = new ArrayList<OverlayItem>();
	private Context mContext;

	private double mLat1 = 39.90923;//39.9022; // point1緯度
	private double mLon1 = 116.397428;//116.3822; // point1經度

	private double mLat2 = 39.9022;
	private double mLon2 = 116.3922;

	private double mLat3 = 39.917723;
	private double mLon3 = 116.3722;

	public MyOverLay(Drawable marker, Context context){
		super(marker);
		this.mContext= context;
		// 用給定的經緯度構造GeoPoint,單位是微度 (度 * 1E6)
		GeoPoint p1 = new GeoPoint((int)(mLat1 * 1E6), (int)(mLon1 * 1E6));
		GeoPoint p2 = new GeoPoint((int)(mLat2 * 1E6), (int)(mLon2 * 1E6));
		GeoPoint p3 = new GeoPoint((int)(mLat3 * 1E6), (int)(mLon3 * 1E6));

		GeoList.add(new OverlayItem(p1, "P1", "point1"));
		GeoList.add(new OverlayItem(p2, "P2", "point2"));
		GeoList.add(new OverlayItem(p3, "P3", "point3"));		
		populate();//createItem(int)方法構造item。一旦有了數據,在調用其它方法前,首先調用這個方法
	}

	@Override
	protected OverlayItem createItem(int i){
		return GeoList.get(i);
	}

	@Override
	public int size(){
		return GeoList.size();
	}

	@Override
	// 處理當點擊事件
	protected boolean onTap(int i){
		Toast.makeText(this.mContext, GeoList.get(i).getSnippet(), Toast.LENGTH_SHORT).show();
		return true;
	}

}
  

第三步,在主類中定義并初始化button控件,設置相應的點擊事件。代碼如下:

    		// 初始化button并設置點擊操作事件
		button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Drawable marker =getResources().getDrawable(R.drawable.ic_launcher);
				mapView.getOverlays().add(new MyOverLay(marker, MainActivity.this));
				mapView.refresh(); 
			}
		});
  

第四步,運行,顯示結果如下:

百度地圖SDK for Android【Demo自定義圖層】

點擊下載原工程文件。



更多詳細信息請登錄百度地圖API官方網站: http://developer.baidu.com/map/
百度地圖API論壇: http://bbs.lbsyun.baidu.com/

百度地圖SDK for Android【Demo自定義圖層】


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 777奇米影视久久激情日韩欧美 | 台湾一级毛片免费播放 | 成人国产午夜在线视频 | 欧美视频在线一区 | 亚洲欧美日韩国产精品网 | 最新地址四虎www4hutv | 天天搞夜夜操 | 欧美日韩加勒比一区二区三区 | 在线观看www成人影院 | 99爱这里只有精品 | 国产成人精品本亚洲 | 97啪啪| 久久成人精品免费播放 | 久久免费国产 | 国产乱子伦视频大全 | 成人伊人网 | 欧美日韩亚毛片免费观看 | 亚洲一欧洲中文字幕在线 | 香蕉视频免费在线看 | 久久影视免费体验区午夜啪啪 | 久草在现视频 | 91国高清视频 | 毛片大片 | 亚洲 国产精品 日韩 | 久久久99视频 | 性欧美久久 | 欧美性猛交xxx嘿人猛交 | 亚洲综合在线另类色区奇米 | 日本特黄特色aaa大片免费 | 92精品国产成人观看免费 | 国产a级一级久久毛片 | 日本在线不卡免 | 天天射天天怕 | 成熟女人50岁一级毛片不卡 | 一本大道香蕉中文在线高清 | 全免费午夜一级毛片一级毛 | 亚洲香蕉视频 | 天天干天天操 | 欧毛片 | 日本一级毛片免费播放 | 欧美性猛交xxxxx按摩欧美 |