android實現進入百度地圖後自動顯示興趣點

本來已經實現點擊一個按鈕,然後根據屏幕中心坐標顯示周圍興趣點的功能。

現在想實現進入app之後直接顯示興趣點的功能(粗略一想,很簡單嘛,就觸發類似一個click事件嘛),思路: 進入地圖,1.等待地圖加載完成(在地圖加載好的回調函數中寫接下去的代碼)—-2.獲取屏幕經緯度—-3.興趣點搜索

後來發現還是會在

GeoPoint pPoint=mMapView.getProjection().fromPixels(0,0);
                                float la=(float) (pPoint.getLatitudeE6()/1000000.0);
                                float lo=(float) (pPoint.getLongitudeE6()/1000000.0);

中報空指針錯誤。後來在百度開發者論壇中提問發現,獲取屏幕坐標函數需要opengl繪制完成才行。

後來想瞭種方法就是:在地圖加載完成後,延遲兩秒鐘加載取屏幕坐標函數。

		@Override
			public void onMapLoadFinish() {
				//TODO:		
				 new Handler().postDelayed(new Runnable(){

						@Override
						public void run() {
							showLoggingIntheScreen();
							
						}}, 2000);
			
			}

有興趣的話可以看下 showLoggingIntheScreen()

	private void showLoggingIntheScreen() {
		//取得屏幕中心點的屏幕坐標偏移.
		Point p=mMapView.getCenterPixel();
		//取得屏幕中心點的坐標
		GeoPoint pPoint=mMapView.getProjection().fromPixels(p.x,p.y);
		float la=(float) (pPoint.getLatitudeE6()/1000000.0);
		float lo=(float) (pPoint.getLongitudeE6()/1000000.0);
		System.out.println("可能中心點:"+la+"long:"+lo);
		String pixsCenterPoint=""+lo+","+la;
		//附近搜索menu
		//清除pop   居然解決瞭 點擊圖片,不彈出的問題
		if(popImageview!=null)
			popImageview.hidePop();
		if(pop!=null)
			pop.hidePop();		
		//清理地圖
		 mMapView.getOverlays().clear();
		 //清除圖片,    圖片在	 mMapView.getOverlays().clear();中居然不能清除
		 mMapView.removeView(imageView_popPhoto);
		 mMapView.refresh();
		 //畫自己所在的位置
	        mylocationOverlay=new MyLocationOverlay(mMapView);  
	        mylocationOverlay.enableCompass();	    	
	        mMapView.getOverlays().add(mylocationOverlay);
		 
		NearbySearchInfo info = new NearbySearchInfo();
		info.ak = "4674a004717700fd5be7173f20142683";
		//info.geoTableId =47633 ;
		info.geoTableId =47911 ;
		//當前坐標位置
		/*String NowLocation=""+locData.longitude+","+locData.latitude;*/
		//屏幕中心坐標位置		
		info.location=pixsCenterPoint;
		/**
		 * 這裡可以填寫關鍵字,進行搜多,暫時覺得這個搜索沒用 info.q
		 * */

	
		//info.location = "120.110141,30.269475";
		
		info.radius = searchWidth;
		info.pageSize=50;
		CloudManager.getInstance().nearbySearch(info);	
		
	}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *