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

百度地圖SDK for Android【Demo Place詳情頁】

系統 2122 0

Place詳情展示頁面可以幫助開發者便捷的展示Poi詳情信息,此外通過詳情展示頁面您還可以實現電話的撥打等功能。今天將向大家介紹Place詳情頁的具體使用方法。

第一步,創建工程,并放置基礎地圖mapview控件(詳細介紹請參考: 百度地圖SDK for Android【Demo地圖展示】 )。布局文件代碼及主程序中的代碼如下:

        <!-- 放入百度地圖的mapview -->
    <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:clickable="true"/>
  
    		// 初始化管理對象,注意要在setContentView(R.layout.activity_main)之前初始化,否則會報錯
		bMapManager = new BMapManager(getApplication());
		bMapManager.init("你的key", null);
		
		setContentView(R.layout.activity_main);
		
		// 初始化mapview對象,并且設置顯示縮放控件
		mapView = (MapView) findViewById(R.id.bmapsView);
		mapView.setBuiltInZoomControls(true);
		
		// 定義地圖控件,獲取mapview的控制,并把地圖范圍定位北京市
		MapController mapController = mapView.getController();
		GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
		mapController.setCenter(point);
		mapController.setZoom(12);
		mapController.enableClick(true);  // 注意添加可點擊屬性,用于隨后的place頁面展示入口
  

第二步,在布局文件中添加輸入框及用于搜索的按鈕。代碼如下:

        <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/button1"
        android:text="餐廳"
        android:ems="50" >
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="《點擊搜索》" />
  

第三步,在主程序中對應的建立控件變量,用于控制所添加的控件。代碼如下:

    		editText = (EditText) findViewById(R.id.editText1);
		button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String key = editText.getText().toString();
				if(key.equals(""))
				{
					Toast.makeText(MainActivity.this, "檢索關鍵詞不能為空!", Toast.LENGTH_SHORT).show();
				}
				else 
				{
					mkSearch.poiSearchInCity("北京", key);
				}
			}
		});
  

第四步,定義并初始化檢索變量和監聽接口。代碼如下:

    	MKSearchListener mkSearchListener = new MKSearchListener() {
		
		@Override
		public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
			// TODO Auto-generated method stub
			// 錯誤號可參考MKEvent中的定義
            if (arg2 != 0 || arg0 == null) {
                Toast.makeText(MainActivity.this, "抱歉,未找到結果", Toast.LENGTH_LONG).show();
                return;
            }
            // 將地圖移動到第一個POI中心點
            if (arg0.getCurrentNumPois() > 0) {
                // 將poi結果顯示到地圖上
                PlacePoiOverlay poiOverlay = new PlacePoiOverlay(MainActivity.this, mapView, mkSearch);
                poiOverlay.setData(arg0.getAllPoi());
                mapView.getOverlays().clear();
                mapView.getOverlays().add(poiOverlay);
                mapView.refresh();
                
                for( MKPoiInfo info : arg0.getAllPoi() ){
                	if ( info.pt != null ){
                		mapView.getController().animateTo(info.pt);
                		break;
                	}
                }
            }
            
		}
		
		@Override
		public void onGetPoiDetailSearchResult(int arg0, int arg1) {
			// TODO Auto-generated method stub
			if (arg1 != 0) {
                Toast.makeText(MainActivity.this, "抱歉,未找到結果", Toast.LENGTH_SHORT).show();
            }
            else {
                Toast.makeText(MainActivity.this, "成功,查看詳情頁面", Toast.LENGTH_SHORT).show();
            }
		}
		
		@Override
		public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
			// TODO Auto-generated method stub
			
		}
	};
  
    		mkSearch = new MKSearch();
		mkSearch.init(bMapManager, mkSearchListener);
  

第五步,定義并初始化地圖點擊事件的監聽,并注冊此監聽。代碼如下:

    	MKMapViewListener mapListener = new MKMapViewListener() {
		
		@Override
		public void onMapMoveFinish() {
			// TODO Auto-generated method stub
			
		}
		
		@Override
		public void onClickMapPoi(MapPoi arg0) {
			// TODO Auto-generated method stub
			String title = "";
			if (arg0 != null){
				title = arg0.strText;
				Toast.makeText(MainActivity.this,title,Toast.LENGTH_SHORT).show();
			}
		}
	};
  
    		mapView.regMapViewListener(bMapManager, mapListener);
  

第六步,定義繼承自PoiOverlay的類,用于顯示Place詳情頁。代碼如下:

    public class PlacePoiOverlay extends PoiOverlay {

	MKSearch mSearch;

    public PlacePoiOverlay(Activity activity, MapView mapView, MKSearch search) {
        super(activity, mapView);
        mSearch = search;
    }

    @Override
    protected boolean onTap(int i) {
        super.onTap(i);
        MKPoiInfo info = getPoi(i);
        if (info.hasCaterDetails) {
            mSearch.poiDetailSearch(info.uid);
        }
        return true;
    }
}
  

第七步,執行程序,輸入關鍵詞點擊搜索即可得到如下圖所示的結果展示界面:

百度地圖SDK for Android【Demo Place詳情頁】
第八步,點擊Poi點,即可跳轉至Place詳情展示頁面,如下圖所示:

百度地圖SDK for Android【Demo Place詳情頁】


點擊下載原工程文件。



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

百度地圖SDK for Android【Demo Place詳情頁】


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久天天影视 | 99视频在线精品 | 99毛片| 日韩成人综合网 | 四虎影视成人永久在线观看 | 99v视频国产在线观看免费 | 九九在线精品 | 99热成人精品热久久669 | 国产欧美久久久精品影院 | 四虎国产精品永久地址99新强 | 亚洲成人精品久久 | 成人亚洲天堂 | 成人99| 日韩亚洲欧美一区二区三区 | 亚洲综合网在线观看首页 | 97天天做天天爱夜夜爽 | 亚洲成人免费在线观看 | 奇米影视在线视频 | 4虎影院午夜在线观看 | 国产亚洲一欧美一区二区三区 | 亚洲一区综合在线播放 | 亚洲日日夜夜 | 国产精品久久久久久久久免费hd | 久久免费在线观看 | 97在线免费观看视频 | 亚洲欧美久久精品1区2区 | 亚洲和欧美毛片久久久久 | 麻豆国产原创 | 国产成人亚洲综合无 | 九九热在线视频播放 | 久久久久久久一精品 | 在线播放91 | 狠狠狠色丁香婷婷综合久久88 | 免费观看黄色 | 久久精品视频一区二区三区 | 免费a大片| www.亚洲 | 91在线免费公开视频 | 欧美a在线视频 | 中文字幕一区二区三区亚洲精品 | 国产一区二区三区四区在线 |