เริ่มต้นใช้งาน
Longdo Map SDK ช่วยให้นักพัฒนาสามารถนำแผนที่ Longdo Map ไปแสดงในแอพลินเคชั่น Android โดยเขียนโค้ดเพียงไม่กี่บรรทัดเท่านั้น SDK รองรับภาพแผนที่รูปแบบ WMS, WMTS, WMTS_REST, TMS และแบบกำหนดเอง (custom URL) รวมถึง แสดงภาพแผนที่จาก Longdo Box และ ArcGIS Server
การใช้งานเบื้องต้น
- สร้าง Android projcet บน Android Studio
แก้ไขไฟล์
build.gradle
ของโมดูล app โดยเพิ่ม maven repository ของ Longdo เข้าไปrepositories { ... // other repositories maven { url 'http://maven.longdo.com/artifactory/libs-release-public' } }
แก้ไขไฟล์เดิม โดยเพิ่ม dependency ของ Longdo Map SDK
dependencies { ... // other dependencies implementation 'com.longdo.map:sdk:1.0.0' }
- สร้าง Longdo Map API key (ถ้ายังไม่มี) วิธีสร้าง
แก้ไขไฟล์
AndroidMenifest.xml
เพื่อขอ permission ให้ SDK โดยเพิ่มโค้ดด้านล่างนี้ไว้ในแท็ก manifest<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.VIBRATE" />
เพิ่มแท็ก meta ภายในแท็ก application โดนแทนที่ข้อความ
YOUR_API_KEY
ด้วย API Key จากข้อ 4<application ... > <meta-data android:name="longdo.map.key" android:value="YOUR_API_KEY" /> ...
เพิ่ม View ของแผนที่ในไฟล์ layout ที่ต้องการ เช่น ในไฟล์
app/res/layout/activity_main.xml
<com.longdo.api.MapGLSurfaceView android:id="@+id/my_map" android:layout_width="match_parent" android:layout_height="match_parent"/>
กด Run แอพพลิเคชั่น
เพียงเท่านี้นักพัฒนาก็สามารถนำแผนที่ไปวางในแอพพลิเคชั่นได้แล้ว!
การควบคุมแผนที่เบื้องต้น
ขั้นตอนด้านบนทั้งหมด ทำให้แอพพลิเคชั่นสามารถแสดงแผนที่ได้ แต่แอพพลิเคชั่นยังไม่สามารถสั่งงานแผนที่ได้ เพื่อที่จะสั่งงานแผนที่ เช่น การขยับ การเพิ่ม layer หรือการปักหมุด นักพัฒนาจำเป็นต้องเก็บตัวแปร 1 ตัวที่ได้จาก SDK เพื่อเอาไว้ใช้สั่งงานแผนที่ โดย
สร้างตัวแปรชี้ไปที่ View ของแผนที่ โดยแก้ไขไฟล์ Activity ที่มีแผนที่อยู่
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapGLSurfaceView mapGLSurfaceView = findViewById(R.id.my_map); } }
สร้าง Listener เพื่อให้ SDK เรียกเมื่อแผนที่พร้อมใช้งานแล้ว โดย SDK จะส่งตัวแปร Map มาด้วย เพื่อให้แอพพลิเคชั่นใช้ควบคุมแผนที่ต่อไป
public class MainActivity extends AppCompatActivity { private Map ldmap; // for controlling a map @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MapGLSurfaceView mapGLSurfaceView = findViewById(R.id.my_map); mapGLSurfaceView.setListener(new IMapListener() { @Override public void onMapCreated(Map map) { ldmap = map; } }); } }
แอพพลิเคชั่นสามารถใช้ตัวแปร
ldmap
เพื่อสั่งงานแผนที่ ตัวอย่างเช่นldmap.setZoom(14); // zoom to level 14 ldmap.setLocation(new MapLocation(13,100)); // move a map to a specific location
สำหรับ Android เวอร์ชั่น 6.0 ขึ้นไป SDK จะขอ permission ที่จำเป็นในขณะ runtime (เช่น เขียนอ่านไฟล์ในเครื่อง และ ขอตำแหน่งปัจจุบัน) และเพื่อให้ SDK รู้ว่าแอพพลิเคชั่นได้รับ permission หรือยัง ให้เพิ่มโค้ดด้านล่างนี้ใน Activity ด้วย
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { ldmap.onRequestPermissionResult(); super.onRequestPermissionsResult(requestCode, permissions, grantResults); }