標籤:android 百度地圖
百度基本地圖使用1
關於百度地圖申請開發人員key 可以參考前面的部落格
百度地圖API使用系列1-準備工作
關於搭建工程的可以參考前面的部落格
百度地圖API使用系列2-顯示地圖
這一篇部落格介紹基本地圖使用裡面的地圖類型、顯示即時交通圖、在地圖顯示一個Marker。
這裡要注意的是關於地圖的操作不是有顯示地圖的控制項直接去完成,百度為他添加了一個屬性BaiduMap可以把這個屬性理解為是 地圖的管理器
我們可以通過對應 的 get 方法 擷取這個屬性
baiduMap = baiduMapView.getMap();
地圖類型
百度地圖提供 了倆種類型的地圖資源(普通向量地圖和衛星地圖)
BaiduMap.MAP_TYPE_NORMAL 普通向量地圖
BaiduMap.MAP_TYPE_SATELLITE 衛星地圖
baiduMap.setMapType(MAP_TYPE);
/** * 設定顯示的地圖類型 * * @param currentMapType 地圖類型 */
private void setDisplayMapType(int currentMapType) { switch (currentMapType) { case MAP_NORMAL: // 顯示地圖的類型 分為倆類 1.普通向量地圖 2.衛星地圖 baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); break; case MAP_SATELLITE: baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); break; default: baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); break;}
顯示即時交通路況圖
百度地推目前 已經支援多個城市的交通路況圖了
baiduMap.setTrafficEnabled(boolean);
/** * 設定顯示實施交通圖 * @param isChecked 是否顯示 true顯示 false不顯示 */private void setDisplayTraffic(boolean isChecked) { if (isChecked) { // 顯示 即時交通圖 baiduMap.setTrafficEnabled(true); } else { baiduMap.setTrafficEnabled(false); }}
在地圖上面顯示一個Marker
/** * 通過經緯度在地圖上面顯示標註物 * @param longitude 經度 * @param latitude 緯度 */private void setLatlng(double longitude, double latitude) { // 構建 標註物 的 座標 通過經緯度 // 這個地方需要注意一下 執行個體化 LatLng 類的時候 在傳遞參數的時候 是 緯經度 LatLng point = new LatLng(latitude, longitude); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); // 通過 bitmap 構建 標註物的 顯示 表徵圖 BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap); // 建立一個 覆蓋層 // 設定標註物的 座標 position // 設定標註物的 表徵圖 icon // 設定標註物的 標題 title // 設定標註物是否可拖拽 draggable true可以拖拽 false不可以拖拽 長按起作用 可以監聽拖拽事件 OverlayOptions options = new MarkerOptions().position(point).icon(bitmapDescriptor).title("豪景大廈").draggable(true); baiduMap.setOnMarkerDragListener(this); // 將 覆蓋層 添加 帶地圖上面 // 這個方法 有一個 返回值的 Overlay marker = (Marker) baiduMap.addOverlay(options); // 顯示預設的 覆蓋物位置 displayMarker("預設", marker);}
對於已經添加的標註覆蓋物可以通過 remove() 從地圖上面移除。
下面附上整個程式的原始碼點擊開啟連結
百度地圖API使用系列3-基本地圖1