Giới thiệu về Mapbox SDK

cover_mapbox.jpg

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

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:
Có Thể Bạn Quan Tâm :   Meme là gì? Tổng hợp 10+ meme được sử dụng nhiều nhất hiện nay

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

dialog_createatoken.jpg

đá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ả:

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
Có Thể Bạn Quan Tâm :   Dependency injection (DI) trong C# với ServiceCollection

<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

activity_layout.jpg

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…

Có Thể Bạn Quan Tâm :   Edx là gì? Chúng ta cùng nhau tìm hiểu nhé

@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)

Với bài chia sẻ của mình trên đây, hy vọng có thể giúp được các bạn khi cần sử dụng bản đồ

– Hết –

You May Also Like

About the Author: admin