【高德地图开发3】---地图显示
地圖顯示
地圖顯示的關鍵類是 AMap 類。在您的應用程序中,AMap 是地圖的對象。AMap 地圖將會通過 MapFragment 或 MapView 容器類來表現。
AMap 類自動處理以下操作:
1.連接到高德地圖服務
2.下載地圖數據
3.在設備屏幕上顯示地圖
4.顯示各種控件,如縮放控件
5.支持各種手勢,如平移和縮放手勢
下面以 MapView 顯示地圖為例進行說明:
MapView 是 Android View 類的一個子類,它可以幫助您在 Android View 中放置地圖,它是應用程序和窗口部件的基本構建類。MapView 作為地圖的容器,通過 AMap 對象顯示地圖。使用 MapView 類,必須重載 Activity 生命周期的所有方法,有 onCreate(),onDestroy(),onResume(),onPause(),onSaveInstanceState()。
地圖顯示效果如下:
示例代碼如下(詳細信息,請參考示例工程“基礎地圖”案例):
顯示3D地圖時,布局文件(res/layout/basicmap_activity.xml):
<?xml version="1.0" encoding="utf-8"?> <!-- 引入布局文件 --> <com.amap.api.maps.MapViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent" />顯示2D地圖時,布局文件(res/layout/basicmap_activity.xml):
<?xml version="1.0" encoding="utf-8"?> !-- 引入布局文件 --> <com.amap.api.maps2d.MapView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/map"android:layout_width="fill_parent"android:layout_height="fill_parent" />程序代碼(com.amapv2.apis.basic. BasicMapActivity.java):
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | /** ?* AMapV2地圖中介紹如何使用mapview顯示地圖 ?*/ public class BasicMapActivity extends Activity { ????private MapView mapView; ????private AMap aMap; ????@Override ????protected void onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????// R 需要引用包import com.amapv2.apis.R; ????????setContentView(R.layout.basicmap_activity); ????????mapView = (MapView) findViewById(R.id.map); ????????mapView.onCreate(savedInstanceState);// 必須要寫 ????????init(); ????} ????/** ?????* 初始化AMap對象 ?????*/ ????private void init() { ????????if (aMap == null) { ????????????aMap = mapView.getMap(); ????????} ????} ????/** ?????* 方法必須重寫 ?????*/ ????@Override ????protected void onResume() { ????????super.onResume(); ????????mapView.onResume(); ????} ????/** ?????* 方法必須重寫 ?????*/ ????@Override ????protected void onPause() { ????????super.onPause(); ????????mapView.onPause(); ????} ????? ????/** ?????* 方法必須重寫 ?????*/ ????@Override ????protected void onSaveInstanceState(Bundle outState) { ????????super.onSaveInstanceState(outState); ????????mapView.onSaveInstanceState(outState); ????} ????/** ?????* 方法必須重寫 ?????*/ ????@Override ????protected void onDestroy() { ????????super.onDestroy(); ????????mapView.onDestroy(); ????} } |
以屏幕某個像素點旋轉地圖(3D)
高德地圖 Android SDK 允許用戶在屏幕的某個像素點旋轉地圖。具體實現是使用 AMap 類的 setPointToCenter() 方法將某個屏幕像素點設置為地圖中心點,然后使用 CameraUpdate 類的 changeBearing(float bearing) 方法改變地圖的旋轉角度。
如:aMap.setPointToCenter(100,0) 設置屏幕像素點(100,0)為地圖中心點,cameraupdate.changeBearing(90) 改變地圖的旋轉角度,即表示地圖以屏幕像素點旋轉地圖。
線面設置在地圖底圖文字上方或下方(3D)
高德地圖 Android SDK 允許用戶將添加的線、面等覆蓋物設置在地圖底圖文字的上方或下方。
具體實現是使用 AMap 類的 setMapTextZIndex() 方法來設置地圖底圖文字的z軸指數。地圖底圖文字和覆蓋物的z軸指數默認為0,此時地圖底圖文字在覆蓋物的下方,如果使用 aMap.setMapTextZIndex(2) 可以將地圖底圖文字設置在添加的覆蓋物之上。
轉載于:https://www.cnblogs.com/dongdong230/p/4183018.html
總結
以上是生活随笔為你收集整理的【高德地图开发3】---地图显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: storyboard 如何用代码调用
- 下一篇: 怎样 获取 ios的系统版本