編輯:關於Android編程
實現將一組GPS模塊獲取的經緯度數據在百度地圖上繪制軌跡
1.將經緯度轉換成百度地圖坐標
/** * 標准的GPS經緯度坐標直接在地圖上繪制會有偏移,這是測繪局和地圖商設置的加密,要轉換成百度地圖坐標 * * @return 百度地圖坐標 */ public GeoPoint gpsToBaidu(String data) {//data格式 nmea標准數據 ddmm.mmmmm,ddmm.mmmm 如3030.90909,11449.1234 String[] p = data.split(","); int lat = (int) (((int) (Float.valueOf(p[0]) / 100) + (100 * (Float//將ddmm.mmmm格式轉成dd.ddddd .valueOf(p[0]) / 100.0 - (int) (Float.valueOf(p[0]) / 100)) / 60.0)) * 1E6); int lon = (int) (((int) (Float.valueOf(p[1]) / 100) + (100 * (Float .valueOf(p[1]) / 100.0 - (int) (Float.valueOf(p[1]) / 100)) / 60.0)) * 1E6); GeoPoint pt = new GeoPoint(lat, lon); return CoordinateConvert.fromWgs84ToBaidu(pt);//轉成百度坐標 }
/** * 繪制點線 * */ public void addCustomElementsDemo(String[] data) { GraphicsOverlay graphicsOverlay = new GraphicsOverlay(mMapView); mMapView.getOverlays().add(graphicsOverlay); // 添加折線 graphicsOverlay.setData(drawLine(data));//軌跡 // 添加點 graphicsOverlay.setData(drawPoint(data[0]));//起點 graphicsOverlay.setData(drawPoint(data[count - 1]));//終點 // 執行地圖刷新使生效 mMapView.refresh(); } /** * 繪制單點,該點狀態不隨地圖狀態變化而變化 * * @return 點對象 */ public Graphic drawPoint(String data) { GeoPoint pt1 = gpsToBaidu(data); // 構建點 Geometry pointGeometry = new Geometry(); // 設置坐標 pointGeometry.setPoint(pt1, 10); // 設定樣式 Symbol pointSymbol = new Symbol(); Symbol.Color pointColor = pointSymbol.new Color(); pointColor.red = 0; pointColor.green = 126; pointColor.blue = 255; pointColor.alpha = 255; pointSymbol.setPointSymbol(pointColor); // 生成Graphic對象 Graphic pointGraphic = new Graphic(pointGeometry, pointSymbol); return pointGraphic; } /** * 繪制折線,該折線狀態隨地圖狀態變化 * * @return 折線對象 */ public Graphic drawLine(String[] data) { // 構建線 Geometry lineGeometry = new Geometry(); // 設定折線點坐標 GeoPoint[] linePoints = new GeoPoint[count]; for (int i = 0; i < count; i++) { linePoints[i] = gpsToBaidu(data[i]); } lineGeometry.setPolyLine(linePoints); // 設定樣式 Symbol lineSymbol = new Symbol(); Symbol.Color lineColor = lineSymbol.new Color(); lineColor.red = 33; lineColor.green = 99; lineColor.blue = 255; lineColor.alpha = 255; lineSymbol.setLineSymbol(lineColor, 10); // 生成Graphic對象 Graphic lineGraphic = new Graphic(lineGeometry, lineSymbol); return lineGraphic; }
最近在學自定義View,無意中看到鴻洋大神以前寫過的2048,看起來很不錯,所以自己在他的基礎上做一個加強版的2048。先看圖: 功能除了正常的2048外,還支
博主在剛剛在學習過程中發現了一個關於android往sdcard讀寫的問題, 配置了該配置的提示無讀寫權限。 在AndroidManifest.xml文件中配置清單如下
作為Android應用開發者,不得不面對一個尴尬的局面,就是自己辛辛苦苦開發的應用可以被別人很輕易的就反編譯出來。Google似乎也發現了這個問題,從SDK
關於沉浸式狀態欄相信大家都不陌生,IOS系統很早就有,android5.0及以後版本都支持給狀態欄著色,而目前android主流版本還是4.4,網上通用實現4.4(API