Thứ Năm, 27 tháng 9, 2018

Android - Google Maps

Lập trình Android cho phép chúng tôi tích hợp bản đồ google trong ứng dụng của chúng tôi. Bạn có thể hiển thị bất kỳ vị trí nào trên bản đồ hoặc có thể hiển thị các tuyến đường khác nhau trên bản đồ, vv Bạn cũng có thể tùy chỉnh bản đồ theo lựa chọn của mình.

Google Map - Tệp bố cục

Bây giờ bạn phải thêm mảnh bản đồ vào tệp bố cục xml. Cú pháp của nó được đưa ra dưới đây
<fragment
   android:id="@+id/map"
   android:name="com.google.android.gms.maps.MapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>

Google Map - Tệp AndroidManifest

Điều tiếp theo bạn cần làm là thêm một số quyền cùng với khóa API Google Map trong tệp AndroidManifest.XML. Cú pháp của nó được đưa ra dưới đây
<!--Permissions-->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.
   READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!--Google MAP API key-->

<meta-data
   android:name="com.google.android.maps.v2.API_KEY"
   android:value="AIzaSyDKymeBXNeiFWY5jRUejv6zItpmr2MVyQ0" />        

Tùy chỉnh Google Map

Bạn có thể dễ dàng tùy chỉnh bản đồ google từ chế độ xem mặc định của nó và thay đổi nó theo nhu cầu của bạn.

Thêm điểm đánh dấu

Bạn có thể đặt một nhà sản xuất với một số văn bản trên nó hiển thị vị trí của bạn trên bản đồ. Nó có thể được thực hiện bằng phương thức addMarker () . Cú pháp của nó được đưa ra dưới đây
final LatLng TutorialsPoint = new LatLng(21 , 57);
Marker TP = googleMap.addMarker(new MarkerOptions()
   .position(TutorialsPoint).title("TutorialsPoint")); 

Thay đổi loại bản đồ

Bạn cũng có thể thay đổi loại MAP. Có bốn loại bản đồ khác nhau và mỗi loại cung cấp một cái nhìn khác nhau về bản đồ. Các loại này là Bình thường, Lai, Vệ tinh và địa hình. Bạn có thể sử dụng chúng như bên dưới
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

Bật / Tắt thu phóng

Bạn cũng có thể bật hoặc tắt cử chỉ thu phóng trên bản đồ bằng cách gọi phương thức setZoomControlsEnabled (boolean) . Cú pháp của nó được đưa ra dưới đây
googleMap.getUiSettings().setZoomGesturesEnabled(true);
Ngoài các tùy chỉnh này, còn có các phương pháp khác có sẵn trong lớp GoogleMap, giúp bạn tùy chỉnh bản đồ hơn. Chúng được liệt kê dưới đây

Sr.NoPhương pháp & mô tả
1addCircle (tùy chọn CircleOptions)

Phương pháp này thêm vòng tròn vào bản đồ
2addPolygon (Các tùy chọn PolygonOptions)

Phương thức này thêm một đa giác vào bản đồ
3addTileOverlay (Tùy chọn TileOverlayOptions)

Phương pháp này thêm lớp phủ lát gạch vào bản đồ
4animateCamera (Cập nhật CameraUpdate)
Phương thức này Di chuyển bản đồ theo bản cập nhật bằng một hoạt ảnh
5thông thoáng()
Phương pháp này xóa mọi thứ khỏi bản đồ.
6getMyLocation ()
Phương thức này trả về vị trí người dùng hiện đang được hiển thị.
7moveCamera (Cập nhật CameraUpdate)

Phương pháp này định vị lại máy ảnh theo hướng dẫn được xác định trong bản cập nhật
số 8setTrafficEnabled (kích hoạt boolean)

Phương pháp này Bật hoặc tắt lớp giao thông.
9ảnh chụp nhanh (GoogleMap.SnapshotReadyCallback gọi lại)
Phương pháp này Chụp nhanh bản đồ
10stopAnimation ()

Phương pháp này dừng hoạt ảnh của máy ảnh nếu có

Thí dụ

Dưới đây là ví dụ minh họa việc sử dụng lớp GoogleMap. Nó tạo ra một ứng dụng M cơ bản cho phép bạn điều hướng thông qua bản đồ.

Để thử nghiệm với ví dụ này, bạn có thể chạy nó trên một thiết bị thực tế hoặc trong một trình giả lập.

Tạo một dự án với hoạt động bản đồ google như hình dưới đây

Học lập trình Android

Nó sẽ mở ra màn hình sau đây và sao chép url giao diện điều khiển cho Khóa API như hình dưới đây

Sao chép và dán nó vào trình duyệt của bạn. Nó sẽ cung cấp cho màn hình sau đây -

Nhấp vào tiếp tục và nhấp vào Tạo khóa API sau đó nó sẽ hiển thị màn hình sau

Đây là nội dung của activity_main.xml .
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:map="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/map"
   android:name="com.google.android.gms.maps.SupportMapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.example.tutorialspoint7.myapplication.MapsActivity" />
Đây là nội dung của MapActivity.java .

Trong đoạn mã dưới đây, chúng tôi đã cung cấp các chi tiết về vĩ độ và kinh độ mẫu
package com.example.tutorialspoint7.myapplication;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

   private GoogleMap mMap;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_maps);
      // Obtain the SupportMapFragment and get notified when the map is ready to be used.
      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
         .findFragmentById(R.id.map);
      mapFragment.getMapAsync(this);
   }
   
   /**
      * Manipulates the map once available.
      * This callback is triggered when the map is ready to be used.
      * This is where we can add markers or lines, add listeners or move the camera.
      * In this case, we just add a marker near Sydney, Australia.
      * If Google Play services is not installed on the device. 
      * This method will only be triggered once the user has installed 
         Google Play services and returned to the app.
   */
  
   @Override
   public void onMapReady(GoogleMap googleMap) {
      mMap = googleMap;
      // Add a marker in Sydney and move the camera
      LatLng TutorialsPoint = new LatLng(21, 57);
      mMap.addMarker(new 
         MarkerOptions().position(TutorialsPoint).title("Tutorialspoint.com"));
      mMap.moveCamera(CameraUpdateFactory.newLatLng(TutorialsPoint));
   }
}
Sau đây là nội dung của tệp AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tutorialspoint7.myapplication">

   <!--
      The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
      Google Maps Android API v2, but you must specify either coarse or fine
      location permissions for the 'MyLocation' functionality. 
   -->
    
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">

      <!--
         The API key for Google Maps-based APIs is defined as a string resource.
         (See the file "res/values/google_maps_api.xml").
         Note that the API key is linked to the encryption key used to sign the APK.
         You need a different API key for each encryption key, including the release key 
         that is used to sign the APK for publishing.
         You can define the keys for the debug and 
            release targets in src/debug/ and src/release/. 
      -->
      
      <meta-data
         android:name="com.google.android.geo.API_KEY"
         android:value="AIzaSyAXhBdyKxUo_cb-EkSgWJQTdqR0QjLcqes" />

      <activity
         android:name=".MapsActivity"
         android:label="@string/title_activity_maps">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>

</manifest>
Đầu ra phải như thế này

Học lập trình Android

Không có nhận xét nào:

Đăng nhận xét

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...