Chúng ta đã quen thuộc với SDK Google Map và khi muốn tìm hiểu về một vector map khác cho Android, câu trả lời là SDK Mapbox
Bạn đang xem: Giới thiệu về Mapbox SDK
1. Tạo MapboxDemoApp trong Android Studio
- Trước tiên, bạn cần tạo MapboxDemoApp trong Android Studio với các thiết lập mặc định (chỉ cần vài bước Click Tiếp theo) Như Ảnh:
2. Tạo Access token
- Tiếp theo, bạn cần có một access token:
- Mở Trang chủ >> Đăng ký một tài khoản >> Lấy Access Token
- Trong trường hợp bạn muốn tạo một access token riêng cho từng ứng dụng: nhấp vào Tạo một token mới
đánh dấu một số tùy chọn bạn muốn + nhập tên của token.
Chỉ cần nhấp mở rộng tên token bạn vừa tạo, bạn sẽ thấy token cần lấy.
3. Cài đặt Mapbox
Cài đặt trong Ứng dụng >> Gradle như sau:
dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, { exclude group: ‘com.android.support’, module: ‘support-annotations’ }) compile ‘com.android.support:appcompat-v7:25.0.0’ testCompile ‘junit:junit:4.12’ // SDK Mapbox compile (‘com.mapbox.mapboxsdk:mapbox-android-sdk:4.2.0-beta.4@aar’){ transitive=true } }
Xem qua compile cho mapbox, chúng ta thấy phiên bản đang sử dụng trong ứng dụng là bản beta 4.2 đây là phiên bản thử nghiệm mới nhất của nhà phát hành.
Nếu bạn muốn sử dụng bản ổn định nhất hiện tại, bạn làm như sau: mở Trang chủ >> xem Gradle >> nhấp vào Đáng tin cậy
Kết quả:
Xem thêm : Biến tần là gì? Inverter là gì? Rectifier là gì? Chỉnh lưu, nghịch lưu là gì?
compile (‘com.mapbox.mapboxsdk:mapbox-android-sdk:4.1.1@aar’){ transitive=true }
4. Code và Xây dựng dự án
- Thêm một số quyền và dịch vụ cần thiết vào AndroidManifest.xml
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” /> <uses-permission android:name=”android.permission.INTERNET” /> <uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION” /> <uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” /> <application android:allowBackup=”true” android:icon=”@mipmap/ic_launcher” android:label=”@string/app_name” android:supportsRtl=”true” android:theme=”@style/AppTheme”> <activity android:name=”.MainActivity”> <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> </activity> <!-đối với Android Marshmallow (API 23) trở lên, cần yêu cầu quyền tại thời điểm chạy.-> <service android:name=”com.mapbox.mapboxsdk.telemetry.TelemetryService” /> </application>
- Nhập access token trong string.xml
<resources> <string name=”app_name”>MapboxDemoApp</string> <string name=”access_token”>pk.eyJ1IjoibWFwaW9uIiwiYSI6ImNpdzB1MG9rZDAwM2QyenBqeWc2cmx3eXQifQ.9l4QV3KaEQ_xWEMg7Y8YaQ</string> </resources>
- Cần thêm MapboxAccountManager
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MapboxAccountManager.start(this, getString(R.string.access_token)); setContentView(R.layout.activity_main); …
- Chỉnh sửa giao diện và sử dụng MapView cho activity_main.xml
Ngay lúc này, bạn sẽ thấy một giao diện mẫu của Mapbox hiển thị
Xử lý MapView
Bạn có thể thay đổi style, tùy chỉnh style, thay đổi vị trí, vị trí máy ảnh, thêm đánh dấu…
-
Phương thức vòng đời:
onCreate();
onResume();
Xem thêm : [TK 153] Kết cấu và nội dung tài khoản 153 (tài khoản công cụ, dụng cụ)
onPause();
onSaveInstanceState();
onLowMemory();
onDestroy();
-
Chỉnh sửa lại MainActivity như sau:
@Override protected void onCreate(Bundle savedInstanceState) { // Tạo một mapView mapView = (MapView) findViewById(R.id.mapview); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { Override public void onMapReady(MapboxMap mapboxMap) { // Tùy chỉnh bản đồ với đánh dấu, đường nối, v.v. mapboxMap.setStyleUrl(Style.LIGHT); } }); } Override public void onResume() { super.onResume(); mapView.onResume(); } Override public void onPause() { super.onPause(); mapView.onPause(); } Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); } Override public void onLowMemory() { super.onLowMemory(); mapView.onLowMemory(); } Override protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); }
- Thay đổi vị trí bằng cách sau:
Hà Nội: (lat = 21.027764 , long = 105.834160)
Nhật Bản: (lat = 36.204824 , long = 138.252924)
- Chỉnh sửa activity_main.xml
<com.mapbox.mapboxsdk.maps.MapView mapbox:center_latitude=”21.027764″ mapbox:center_longitude=”105.834160″ mapbox:style_url=”@string/style_mapbox_streets” mapbox:tilt=”20″ mapbox:zoom=”12″ … />
- Cách thay đổi style cho mapbox đơn giản như sau: thêm vào string.xml
<string name=”mapbox_style_url”>mapbox://styles/mapbox/light-v9</string>
Sau đó, bạn có thể thiết lập trong tệp layout của mình. (ghiền đấy)