android百度地圖:在地圖上繪製點、線、多邊形、圓形和文字
轉載自:http://blog.csdn.net/rt77777/article/details/9186691
首先介紹一個類:GraphicsOverlay
這是一個在地圖上繪製圖形的overlay。GraphicsOverlay通過呼叫setData(Graphic g) 完成圖形繪製。
Graphic 通過構造方法Graphic(Geometry g, Symbol s) 獲得。Geometry 是幾何圖形,而Symbol是幾何圖形的樣式,
設定線的樣式:setLineSymbol(Symbol.Color color, int width)
設定點的樣式:setPointSymbol(Symbol.Color color)
設定面的樣式:setSurface(Symbol.Color color, int status, int linewidth)
Geometry 就是一個幾何圖形,
繪製圓:setCircle(GeoPoint geoPoint, int radius)
繪製矩形:setEnvelope(GeoPoint geoPoint1, GeoPoint geoPoint2)
繪製點:setPoint(GeoPoint geoPoint, int pixel)
繪製多邊形:setPolygon(GeoPoint[] geoPoints)
繪製線:setPolyLine(GeoPoint[] geoPoints)
2.1.2還新增了Textoverlay,可以在地圖上新增文字。
- TextOverlay textOverlay = new TextOverlay(mMapView);
- mMapView.getOverlays().add(textOverlay);
- textOverlay.addText(drawText()); //drawText()返回的是TextItem 類
具體來看看程式碼怎麼寫:
繪製線:
- /**
- * 繪製折線,該折線狀態隨地圖狀態變化
-
* @return 折線物件
- */
- public Graphic drawLine(){
- double mLat = 39.97923;
- double mLon = 116.357428;
- int lat = (int) (mLat*1E6);
- int lon = (int) (mLon*1E6);
- GeoPoint pt1 = new GeoPoint(lat, lon);
- mLat = 39.94923;
- mLon = 116.397428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt2 = new GeoPoint(lat, lon);
- mLat = 39.97923;
- mLon = 116.437428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt3 = new GeoPoint(lat, lon);
- //構建線
- Geometry lineGeometry = new Geometry();
- //設定折線點座標
- GeoPoint[] linePoints = new GeoPoint[3];
- linePoints[0] = pt1;
- linePoints[1] = pt2;
- linePoints[2] = pt3;
- lineGeometry.setPolyLine(linePoints);
- //設定樣式
- Symbol lineSymbol = new Symbol();
- Symbol.Color lineColor = lineSymbol.new Color();
- lineColor.red = 255;
- lineColor.green = 0;
- lineColor.blue = 0;
- lineColor.alpha = 255;
- lineSymbol.setLineSymbol(lineColor, 10);
- //生成Graphic物件
- Graphic lineGraphic = new Graphic(lineGeometry, lineSymbol);
- return lineGraphic;
- }
繪製多邊形:
- /**
- * 繪製多邊形,該多邊形隨地圖狀態變化
- * @return 多邊形物件
- */
- public Graphic drawPolygon(){
- double mLat = 39.93923;
- double mLon = 116.357428;
- int lat = (int) (mLat*1E6);
- int lon = (int) (mLon*1E6);
- GeoPoint pt1 = new GeoPoint(lat, lon);
- mLat = 39.91923;
- mLon = 116.327428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt2 = new GeoPoint(lat, lon);
- mLat = 39.89923;
- mLon = 116.347428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt3 = new GeoPoint(lat, lon);
- mLat = 39.89923;
- mLon = 116.367428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt4 = new GeoPoint(lat, lon);
- mLat = 39.91923;
- mLon = 116.387428;
- lat = (int) (mLat*1E6);
- lon = (int) (mLon*1E6);
- GeoPoint pt5 = new GeoPoint(lat, lon);
- //構建多邊形
- Geometry polygonGeometry = new Geometry();
- //設定多邊形座標
- GeoPoint[] polygonPoints = new GeoPoint[5];
- polygonPoints[0] = pt1;
- polygonPoints[1] = pt2;
- polygonPoints[2] = pt3;
- polygonPoints[3] = pt4;
- polygonPoints[4] = pt5;
- polygonGeometry.setPolygon(polygonPoints);
- //設定多邊形樣式
- Symbol polygonSymbol = new Symbol();
- Symbol.Color polygonColor = polygonSymbol.new Color();
- polygonColor.red = 0;
- polygonColor.green = 0;
- polygonColor.blue = 255;
- polygonColor.alpha = 126;
- polygonSymbol.setSurface(polygonColor,1,5);
- //生成Graphic物件
- Graphic polygonGraphic = new Graphic(polygonGeometry, polygonSymbol);
- return polygonGraphic;
- }
繪製點:
- /**
- * 繪製單點,該點狀態不隨地圖狀態變化而變化
- * @return 點物件
- */
-
相關推薦
Android 百度定位及地圖SDK
一 、Android 百度定位SDK 1 、開發文件 1.2:配置環境: 1.2.1 :新增庫檔案 a) 在 相關下載下載最新 庫檔案。 b)使用Eclipse開發的開發者,將SO檔案的壓縮檔案解壓出來,把對應架構下的SO檔案放入開發者自己APP的對應架構下的資料夾中
android百度地圖:在地圖上繪製點、線、多邊形、圓形和文字
轉載自:http://blog.csdn.net/rt77777/article/details/9186691 首先介紹一個類:GraphicsOverlay 這是一個在地圖上繪製圖形的overlay。GraphicsOverlay通過呼叫setDa
Android百度地圖繪製圓形,圓形半徑可動態變化
問題:百度地圖繪製圓形,圓形半徑可隨進度拖動條發生改變 思路:圓形本身是一個覆蓋物,可參考百度地圖Demo中的OverlayDemo.java這個類進行實現。完成畫圓之後,圓形半徑如何隨著進度條的拖動進行變化?進度條與畫圓方法聯動,隨著進度條的拖動首先清除掉上次繪製的圓形重
[android] 百度地圖開發 (一).申請AK顯示地圖及解決顯示空白網格問題
定義 gps 官方 應用程序 2.x lns settings sap xmlns 近期做android百度地圖,可是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so顯示百度地圖時總是遇到問題——僅僅顯示
android 百度地圖(具體請看百度開放平臺)
int over layout tco pap 平臺 jar pil inter compile files(‘libs/BaiduLBS_Android.jar‘) compile ‘com.android.support:appcompat-v7:26.+‘
Android百度地圖(二)結合方向傳感器我們自己定位哪裏走
troy 真機 pretty 刪除文件 RR tap 大神 素材 near Android百度地圖(二)結合方向傳感器我們自己定位哪裏走 本文代碼在http://b
android百度地圖基礎定位不用開啟許可權也可以獲取經緯度成功?什麼鬼
最近專案中需要使用百度地圖sdk,發現一個問題,手機未開啟地圖定位許可權,在地圖定位監聽裡面竟然可以返回狀態碼為161的正確定位返回,是不是很神奇。 測試了百度demo,把定位許可權關閉,也是可以定位成功的。看來確實不需要定位許可權,就可以獲取定位資訊呀。 這就讓我暈了,那這個許可權什麼時候
Android百度地圖開發定位和路線導航
在寫之前要先加入百度地圖sdk的jar包從百度地圖開發者官網上就能下載 百度地圖sdk下載 官網(可翻牆選擇):http://developer.android.com/sdk/index.html 不可翻牆選擇:http://www.androiddevtools.cn/ 而其中用
Android 百度地圖自定義地圖覆蓋物(Marker)
理論和高德地圖一模一樣,換個sdk而已,換湯不換藥,詳情可以參考上一篇高德地圖https://blog.csdn.net/Crystal_xing/article/details/84314359,下面只給出核心程式碼: //自定義佈局 Vie
Android 百度地圖如何讓所有的Marker都顯示在螢幕範圍內。
前言: 高德地圖有方法直接呼叫就可以,總結下百度地圖的(直接複製就可以) 程式碼: LatLngBounds.Builder builder = new LatLngBounds.B
Android百度地圖開發之取消後臺持續定位
網上的方法 1:注掉option.setScanSpan(1000);//注掉後只定位一次,感覺不太好 2:呼叫mLocClient.unRegisterLocationListener方法。//取消監聽的方法不讓後臺定位,樓主只成功過一次所以不太靠譜不推薦使用 3 :
Android百度地圖開發-自定義地圖的使用和坑
設定個性化地圖config檔案路徑 */ public static void setMapCustomFile(Context context, String PATH) { FileOutputStream out = null; InputStream inputStream = null; Strin
Android百度地圖坑之Error inflating class com.baidu.mapapi.map.MapView
今天開始研究百度SDK,根據開發文件一步步操作,坑出現了,我添加了一個MapView顯示地圖,活動中getMap,它閃退!!!! 報錯指向這一行 報錯如下 百度了一下,有幾個比較常見的問題: 1、沒有初始化context,即沒有在setContentView(R.layout.act
android百度地圖開發之完善版
鑑於前段時間接了了小專案,一直沒時間完善百度地圖餘下的工作,現在終於完善出來了。現在給大家分享下。。。以下是部分功能截圖 這裡面做語音的時候測試了,提示沒語音裝置,在網上看說下一個google voice就可以了,但是我始終沒成功,所以語音那裡沒實現, 如果有朋友知道,可以
Android百度地圖api呼叫
1.首先,準備工作。前往百度地圖開放平臺 註冊百度開發者賬號,建立應用,獲取API key 地址:http://lbsyun.baidu.com/apiconsole/key 建立應用需要應用的數字簽名SHA1和包名 SHA1可以通過雙擊gradle裡面的signingRe
Android 百度地圖開發(一)如何呼叫百度地圖介面和在專案中顯示百度地圖以及實現定位
二、下載百度地圖API庫 然後新增到專案中即可。 三、在專案清單AndroidMainifest.xml配置百度地圖API key和新增相關許可權 四、在專案呼叫百度地圖專案功能,這篇文章就首先講講顯示地圖和定位的功能 首先
android 百度地圖系列之新增覆蓋物和覆蓋物的點選事件
之前講了百度地圖定位和地圖基本操作,這篇部落格講一下,怎麼去給地圖新增覆蓋物,並當點選覆蓋物的時候顯示詳細資訊。 要給地圖新增覆蓋物,首先需要覆蓋物的經緯度,如果還要實現點選事件,顯示詳細的資訊,還需要覆蓋物的描述資訊(如圖片,位置名稱等),所以先新建一個實體
Android 百度地圖兩點畫弧線
import android.support.annotation.NonNull; import com.baidu.mapapi.map.ArcOptions; import com.baidu.mapapi.map.OverlayOptions; import com.baidu.m
android 百度地圖
一、基本概念: (一)、百度地圖: 百度地圖 Android SDK是一套基於Android 2.1及以上版本裝置的應用程式介面。 您可以使用該套 SDK開發適用於Android系統移動裝置的地圖應用,通過呼叫地圖SDK介面,您可以輕鬆訪問百度地圖服務和資料, 構建功能豐富、互動性強的地圖類
android 百度地圖 marker設定忽明忽暗閃爍點
說下思路 百度地圖設定marker的時候可以這是icon和icons 思路就是設定幾個不同透明度的相同的圖片的bitmap作為icons 話不多說 直接上碼 1。這是核心程式碼 //閃爍點 bb