Android and Google API
-
Upload
cong-thanh-nguyen -
Category
Technology
-
view
1.325 -
download
1
Transcript of Android and Google API
05/03/2023 1
TÌM HIỂU ANDROID VÀ GOOGLE API
Chung Nhật Trường – 11110153Phạm Xuân Lộc - 11110073
2
Nội Dung
JSON
Tổng quan về Android OS
Goole API
Chương trình minh họa
3
I. Tổng Quan Về Android OS
Được phát triển bởi Google
Là hệ điều hành mã nguồn mở cho thiết bị di động
Dựa trên nền tảng Linux
4
Các Phiên Bản
5
Những Điểm Nổi Bật
Khả năng tùy biến(Customize)
6
Những Điểm Nổi Bật
Kho ứng dụng phong phú
(Android market)
7
Hỗ trợ tối đa các chức năng của Google(Google maps, Google Latitude, Gmail, Youtube…)
Những Điểm Nổi Bật
8
Công cụ và môi trường phát triển
• Một môi trường hoàn chỉnh để có thể phát triển các ứng dụng trên nền tảng Android gồm có:– Cài Java Development Kit (JDK)http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html - Công cụ lập trình Android http://developer.android.com/sdk/index.html
05/03/2023 9
Máy Ảo
Trong Eclipse chọn Window –> Android SDK ManagerCheck các phiên bản muốn cài đặt sau đó chọn Install Packages.
05/03/2023 10
Máy Ảo
Trong Eclipse chọn Window –> Android Virtual Device Manager –> New
05/03/2023 11
II. JSON
JSON (JavaScript Object Notation) : là cú pháp để lưu trữ và trao đổi thông tin văn bản. Cũng giống như XML.JSON là nhỏ hơn so với XML, và nhanh hơn và dễ dàng hơn để phân tích (parse)
05/03/2023 12
Một số thư viện JSON
JSON
05/03/2023 13
Phân Tích Json
Phân tích Json thành đối tượngCách làm gồm 3 bước:• Tạo đối tượng JSONParser• Parser chuỗi JSON về một JSONObject• Lấy các giá trị trong jsonObject thông qua các Key
Phân tích Json thành tập đối tượngCách làm gồm 3 bước:• Tạo đối tượng JSONParser• Parser chuỗi JSON về một JSONArray• Lấy các giá trị trong jsonObject thông qua các Key
05/03/2023 14
Google Place API
Google Places API là một dịch vụ cung cấp thông tin về các địa điểm trên toàn thế giới như các địa điểm kinh doanh, vị trí địa lý, hoặc các địa danh nổi tiếng… bằng cách sử dụng yêu cầu thông qua HTTP
05/03/2023 15
Sử Dụng
API Key:http://code.google.com/apis/console
05/03/2023 16
Goole Place Autocomplete
Google Places Autocomplete API là một dịch vụ web cung cấp bởi Google, giúp tự động hoàn chỉnh từ khóa tìm kiếm bằng cách trả về danh sách các địa điểm kinh doanh, địa chỉ,.. gần với từ khóa nhận được nhất.
05/03/2023 17
Request
Một yêu cầu của Places Autocomplete là một đường dẫn HTTP URL có dạng:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
Trong đó, output có thể có các giá trị:• json • xml
Parameters là các tham số được phân biệt nhau bởi dấu &. Bao gồm các tham số bắt buộc và các tham số không bắt buộc:
05/03/2023 18
Parameters
Tham Số Mô TảInput (bắt buộc) từ khóa tìm kiếmSensor (bắt buộc) biết yêu cầu được gửi có sử dụng thiết bị định vị để xác
định ví trí gửi yêu cầu khôngKey (bắt buộc) API key của ứng dụng
https://maps.googleapis.com/maps/api/place/autocomplete/json?location=10.823099,106.629664&radius=1000&types=establishment|geocode&key=AIzaSyBfLO4nm9nDdZV4NZGAGlLgTnnoU7ry1Pk&language=en&sensor=true&input=vo%20van
05/03/2023 19
Response
Kết quả trả về dạng JSON gồm hai phần tử gốc sau:• status – chứa siêu dữ liệu thể hiện trạng thái của request• predictions – chứa một danh sách các địa điểm tìm được kèm
theo thông tin từng địa điểm
05/03/2023 20
Status
Status Mô tảZERO_RESULTS không tìm thấy kết quả nào phù
hợpOVER_QUERY_LIMIT quá giới hạn gửi yêu cầu trong
một ngàyREQUEST_DENIED yêu cầu bị từ chốiINVALID_REQUEST yêu cầu không hợp lệ OK không có lỗi nào xảy ra và có ít
nhất một kết quả được trả về.
05/03/2023 21
Predictions
predictions Mô tả
description tên của kết quả
reference chứa mã duy nhất dùng để lấy thêm thông tin về địa điểm thông qua một API khác đó là Place Detail API.
id mã duy nhất để xác định địa điểm này
terms là một mảng chứa từng phần (section) của kết quả tìm được trong chuỗi description (value và offset)
matched_substring hai phần tử offset và lengh, dùng để xác định vị trí và độ dài của đoạn văn bản (input) trong kết quả tìm được
05/03/2023 22
Place Searches
05/03/2023 23
Request
Một yêu cầu của Places Autocomplete là một đường dẫn HTTP URL có dạng:
https://maps.googleapis.com/maps/api/place/search/output?parameters
Trong đó, output có thể có các giá trị:• json • xml
Parameters là các tham số được phân biệt nhau bởi dấu &. Bao gồm các tham số bắt buộc và các tham số không bắt buộc
05/03/2023 24
Các Tham Số
Tham Số Mô Tảlocation (bắt buộc) tâm của khu vực muốn tìm kiếmRadius (bắt buộc) bán kính khu vực tìm kiếm (m)Key (bắt buộc) API key của ứng dụng
https://maps.googleapis.com/maps/api/place/search/json?location=10.823099,106.629664&radius=5000&&types=atm&key=AIzaSyBfLO4nm9nDdZV4NZGAGlLgTnnoU7ry1Pk&language=en&sensor=true
05/03/2023 25
Response
Kết quả trả về dạng JSON gồm các phần tử gốc • status, • html_attributions, • results
05/03/2023 26
StatusStatus Mô tả
ZERO_RESULTS không tìm thấy kết quả nào phù hợp
OVER_QUERY_LIMIT quá giới hạn gửi yêu cầu trong một ngày
REQUEST_DENIED yêu cầu bị từ chốiINVALID_REQUEST yêu cầu không hợp lệ OK không có lỗi nào xảy ra và có ít
nhất một kết quả được trả về.
05/03/2023 27
Html_attributions
Chứa các thông tin về nhà cung cấp phải được hiển thị cho người dùng.
05/03/2023 28
Results
results Mô tảname tên của địa điểm.
viciniy các địa điểm lân cận
geometry chứa thông tin về vị trí địa lý của địa điểm
icon chứa URL của icon cho địa điểm
types[] chứa một mảng các loại địa điểm mô tả cho các địa điểm.
reference chứa mã duy nhất dùng để lấy thêm thông tin về địa điểm thông qua một API khác đó là Place Detail API.
id chứa mã duy nhất để xác định địa điểm này
Place Detail
• Cung cấp thông tin chi tiết về 1 địa điểm trên Map
Place Detail - Request
https://maps.googleapis.com/maps/api/place/details/output?parametersOutput:• JSON• XML
Place Detail – Request – Parameter
• Required:• key: API key dùng cho trình duyệt• placeid: duy cho mỗi địa điểm, lấy từ place searches• reference: duy cho mỗi địa điểm, lấy từ place searches
(deprecated).
• Optional:• language: ngôn ngữ cho kết quả trả về• sensor: cho biết yêu cầu được gửi đến từ thiết bị có sử
dụng thiết bị định vị hay không, có giá trị true hoặc false.
• …
Place Detail – Request – Parameter
• Ví dụ:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=10.849938333333334,106.77168666666667&radius=5000&types=hospital&sensor=true&key=AIzaSyAZE2NHm-bgBqY6qLorYaNHZeUKV6eLuF4
Place Detail – Request – Parameter
05/03/2023 34
Kết quả trả về dạng JSON gồm các phần tử gốc:• Status• html_attributions,• Results.
Place Detail – Response
Place Detail – Response
Tham số Mô tảname Tên của địa điểm.
viciniyCác địa điểm lân cận, thường thì các đường phố hoặc vùng lân cận nằm trong phạm vi các kết quả.
types[]Chứa một mảng các loại địa điểm mô tả cho các địa điểm.
formated_phone_number Số điện thoại của địa điểm.
formated_address Địa chỉ của địa điểm.
Place Detail – Response
address_components[]
Là một mảng các thành phần địa chỉ, ví dụ: “111 8th Avenue, New York, NY" bao gồm 3 thành phần "111" (số nhà), "8th Avenue" (đường), "New York" (thành phố) and "NY" (tiểu bang). Mỗi address_component bao gồm:
type[] – mảng các loại địa điểm. long_name – tên đầy đủ của add_component. short_name – tên viết tắt, ví dụ “Alaska” thành
“AK”.
geometry Chứa location (lat, long) của địa điểm.
Place Detail – Response
url Địa chỉ trang thông tin chi tiết của địa điểm (Google Place Page).
rating Điểm đánh giá của người dùng cho địa điểm (từ 0 đến 5).
reference
Mã dùng để truy vấn đên Details service trong tương lai. Mã này có thể khác mã reference được sử dụng để yêu cầu đến Detail service trước đó. Mã này là để cập nhật thêm thông tin.
id
Chứa mã duy nhất để xác định địa điểm này. id này không được dùng để lấy thông tin về địa điểm, nhưng có thể được sử dụng để hợp nhất dữ liệu của một địa điểm. id này thỉnh thoảng có thể bị thay đổi.
05/03/2023 38
Google Map API
Dịch vụ bản đồ trực tuyến
Google Map API
• Google Maps là một dịch vụ bản đồ trực tuyến miễn phí • Được cung cấp bởi Google• Hỗ trợ bản đồ: đường sá, bản đồ vệ tinh, hướng dẫn đường đi,
địa điểm,…• Có thể tích hợp vào website, ứng dụng,…
Google Map API
• 2006, Google giới thiệu công nghệ Google Maps cho Mobile
• Android platform là một nền tảng hỗ trợ tối đa cho Google Maps
• Dễ dàng nhúng nó vào ứng dụng của mình một cách dễ dàng và hiệu quả
Google Map API
• Để sử dụng Google Map cho Android, cần cài đặt Google APIs
05/03/2023 42
Google Map API
05/03/2023 43
Google Map Key (Android key)
Google Map API
05/03/2023 44
Google Map API
Bổ sung một số quyền vào AndroidManifest.xml
Thư viện OpenGL ES version 2
Thành phần google map API:• Map Objects– MapFragment– MapView
• Map Types• Map Padding
Google Map API
Map Objects
• Trong giao diện,để hiển thị bản đồ ta sử dụng đối tượng MapFragment hoặc MapView
• GoogleMap xử lý các tác vụ sau tự động:– Kết nối với dịch vụ Google Map– Tải bản đồ– Hiển thị các ô bản đồ lên màn hình thiết bị– Hiển thị những điều khiển như pan và zoom– Hồi đáp lại pan và zoom khi di chuyển bản đồ hoặc phóng to thu
nhỏ• Ngoài các xử lý tự động, ta có thể kiểm soát bản đồ như: xử
lý khi chạm lên bản đồ, vẽ các biểu tượng đánh dấu trên bản đồ
MapFragment
• Đối tượng MapFragment như một container cho bản đồ, và cung cấp truy cập vào các đối tượng GoogleMap.
<?xml version="1.0" encoding="utf-8"?><fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:name="com.google.android.gms.maps.MapFragment" android:layout_width="match_parent" android:layout_height="match_parent" />
• Khai báo một fragment trong giao diện:
MapView
• Giống như một MapFragment, các MapView đóng vai trò như một container cho bản đồ, xử lý chức năng bản đồ thông qua các đối tượng GoogleMap.
• Sdụng các lớp này phải thông qua tất cả phương thức trong chu kỳ sống của Activity - như onCreate (), onDestroy (), onResume (), và onPause ()
• Khai báo MapView trong giao diện:
MapView
Map types
Các API Google Maps Android cung cấp bốn loại bản đồ, cũng như một tùy chọn để không có bản đồ ở tất cả:
• Normal:Bản đồ đường đặc trưng. Gồm đường
giao thông, một số tính năng nhân tạo, và đặc điểm tự nhiên quan trọng như dòng sông,….
• Hybrid:Bản đồ được chụp từ vệ tinh, có thêm đường và nhãn được hiển thị như trạm xe bus,đánh dấu địa điểm…
• SatelliteCũng là bản đồ chụp từ vệ tinh, nhưng đường và nhãn không được hiển thị.
• Terrain :Bản đồ địa hình. Bản đồ bao màu sắc địa hình, các tuyến đườngvà các nhãn.
GoogleMap map;...// Sets the map type to be "hybrid"map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
• Chọn loại bản đồ hiển thị:
05/03/2023 55
Chức Năng Cơ Bản
1. Biến GoogleMap
Biến dùng để điều khiển bản đồ, tác động tới giao diện của bản đồ. Khởi tạo bằng cách:
GoogleMap mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
2. Biến LatLng
Biến để lưu tọa độ 1 điểm, gồm kinh độ và vĩ độ
LatLng latlngPhamHung = new LatLng(21.009642, 105.788684);
05/03/2023 56
3. Phóng to, thu nhỏ bản đồ (Zoom in, zoom out)Bản đồ có độ zoom từ 0->19, số càng lớn thì bản đồ càng phóng to
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlngPhamHung, 16));
Chức Năng Cơ Bản
4. Đánh dấu 1 điểm trên bản đồĐể đánh dấu điểm trên bản đồ và khi người dùng chạm vào điểm đánh dấu sẽ hiện lên 1 khung nhỏ ghi tên đường thì làm như sau:
mMap.addMarker(new MarkerOptions().position(latlngPhamHung).title("Phạm Hùng"));
Google Directions API
• Để tính toán đường đi giữa hai địa điểm, bao gồm cả cách đi (lộ trình), thời gian và khoảng cách ngắn nhất, ta có thể dùng Google Maps API Direction Service
Direction - Request
• http://maps.googleapis.com/maps/api/directions/output?parameters
Output:• JSON• XML
Direction - Request
• Required:• origin: Địa chỉ hoặc tọa độ địa lý (latitude/longitude) từ
nơi cần tính đường đi (nguồn).• destination: Địa chỉ hoặc tọa độ địa lý
(latitude/longitude) nơi cần đến (đích).• sensor:
Direction - Request
• Optional:• mode: Xác định cách thức di chuyển (driving,
walking, bicycling) để tính đường đi cho phù hợp• language: Ngôn ngữ thể hiện trong kết quả• …
Direction – Request
• Ví dụ:https://maps.googleapis.com/maps/api/directions/json?origin=10.819742431522862,106.62718333303928&destination=10.833911896665953,106.62622578442097&sensor=false
Direction – Response
Direction – Response
• Một route bao gồm cả lộ trình đường đi màu xanh ở trên.
• Từ A đến B là một leg, và từ B đến C là một leg.
• Một step là một đoạn đường, trên hình là từ A đến 2.Vo Van Ngan là một step.
Direction – Response
Direction – ResponseTên thuộc tính Giá trị và ý nghĩa
status
OK Kết quả trả về hợp lệ
NOT_FOUNDNguồn, đích hoặc một trong các điểm trung gian không xác định được
ZERO_RESULT Không tìm được đường đi nào
MAX_WAYPOINTS_EXCEEDED
Có quá nhiều waypoint được cung cấp trong request. Số waypoint tối đa là 8.
INVALID_REQUEST Request không hợp lệ
OVER_QUERY_LIMITQuá số request bị giới hạn trong một khoảng thời gian
REQUEST_DENIED Bị từ chối yêu cầu bởi nhà cung cấp
UNKNOWN_ERRORRequest không được xử lý bởi lỗi server, có thể thử lại sẽ thành công.
routes Là một mảng các “lộ trình” mà server tìm được để đi từ điểm gốc tới đích.
Direction – Response - RoutesTên thuộc tính Giá trị và ý nghĩa
summaryMột chuỗi mô tả ngắn gọn về lộ trình. Có thể dùng để đặt tên cho lộ trình.
legs[]Một mảng chứa những thông tin về một nhánh đi giữa hai địa điểm trong lộ trình. Một lộ trình nếu không được cung cấp các waypoint thì chỉ có 1 leg.
waypoint_orderChứa một mảng các waypoint theo thứ tự trong các waypoint được tính toán trong route.
overview_polylineChứa đối tượng giữ một mảng những points được mã hóa và levels thể hiện đường đi gần đúng của kết quả.
bounds Đường bao chứa lộ trình (route) trên bản đồ.
copyrights Chuỗi thể hiện bản quyền của lộ trình.
warnings[] Mảng các cảnh báo có thể xảy ra trong lộ trình.
Direction – Response - Legs
Tên thuộc tính Ý nghĩa
steps[]Mảng các step. Mỗi step là một tập các thông tin trên một đoạn đường trong lộ trình.
distance Tổng khoảng cách trong một leg.
durationTổng thời gian trong một leg. Thời gian này được tính toán dựa theo travel_mode cung cấp trong request.
start_location Tọa độ điểm bắt đầu trên leg
end_location Tọa độ điểm đích trên leg
start_address Địa chỉ điểm bắt đầu bằng chữ dựa vào start_location
end_address Địa chỉ điểm đích bằng chữ dựa vào end_location
Direction – Response - Steps
Tên thuộc tính Ý nghĩa
html_instructionHướng dẫn đi bằng lời trên đoạn này, đã được định dạng theo html.
distanceTổng khoảng cách trên một step (đoạn đường). Cũng có 2 thuộc tính con giống distance trong leg.
durationTổng thời gian trong một step. Cũng có 2 thuộc tính con giống duration trong leg.
start_location Điểm bắt đầu của một step
end_location Điểm kết thúc của một step