1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình androi với GoogleMap

14 320 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 2,79 MB

Nội dung

Hướng dẫn chi tiết sử dụng máp trong khi lập trình androi Hướng dẫn chi tiết sử dụng máp trong khi lập trình androi Hướng dẫn chi tiết sử dụng máp trong khi lập trình androi Hướng dẫn chi tiết sử dụng máp trong khi lập trình androi Hướng dẫn chi tiết sử dụng máp trong khi lập trình androi

Google Map API v2 Cài đặt API máy ảo Google play Service Vào Android SDK Manager chọn máy ảo check vào GoogleAPI (nếu chưa check) Cuộn xuống, phần Extras check vào Google Play services Nhấn vào nút Install , chọn accept gói install Import “google-play-services_lib” Trên Eclipse chọn File -> Import Trong cửa sổ import chọn tab Android (không phải General) Chọn Existing Android Code into Workspace Next nguyendoanhkhoa@yahoo.com Trong cửa sổ import Project dẫn đường dẫn đến: android-sdk\extras\google\google_play_services\libproject\google-play-services_lib Check vào Copy projects into workspase nhấn Finish Tạo project nhúng thư viện Tạo project tên GoogleMapv2 (version từ 3.0 trở lên) Click phải project vừa tạo chọn Properties Cửa sổ properties mở chọn mục Android nguyendoanhkhoa@yahoo.com Trong phần “Library” nhấn vào nút “Add” Khi cửa sổ project Selection chọn google-playservices_lib nhấn OK Thấy phần Reference có dấu check màu xanh Nhấn OK nguyendoanhkhoa@yahoo.com Để ý thấy project thư mục Android Dependencies Lấy Key Tìm đường dẫn debug.keystore Tìm đường dẫn file “debug.keystore” cách chọn Window -> Preferences -> Android -> Build Nhìn vào Default debug keystore để thấy đường dẫn đến debug.keystore Lấy SHA1 Mở command line cách window chọn start -> run gõ: cmd Enter Dùng lệnh CD để vào jdk thư mục hình nguyendoanhkhoa@yahoo.com Gõ lệnh theo cú pháp keytool –v –list –keystore “” hỏi password enter Copy lại dòng SHA1 Máy : CE:33:FE:81:C9:03:1D:C7:F3:93:2A:62:2B:67:3F:C1:9C:BC:DA:88 Lấy google api key để dùng cho chương trình Truy cập vào địa : https://code.google.com/apis/console Dùng tài khoản Gmail để login Nhấn vào nút Create Project nguyendoanhkhoa@yahoo.com Trong Servies cuộn xuống kiếm mục “Google Maps Android API v2 nhấn vào OFF để chuyển sang trạng thái On Cửa sổ nói điều khoản (khỏi đọc) kéo xuống check vào “I agree to these terms” nhấn nút Accept Nó quay cửa sổ services ta thấy mục On lên Mục bên trái ta chọn qua API Access Cuộn xuống nhấn nút nguyendoanhkhoa@yahoo.com Cửa sổ Configure mở lên ta paste SHA1 thêm ; Create Vd: đến tên project vào ô nhập chọn nút BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexampl e Cửa sổ popup đóng lại ta thấy có API key là: AIzaSyDmLbAdM-rgr29VWy0GD-TSddgi0vnY3rY nguyendoanhkhoa@yahoo.com Cài google service packages; gms and vending Tạo máy ảo có target la googleAPIs Chạy máy ảo vừa tạo Copy file com.google.android.gms-19032013.apk com.android.vending-19032013.apk vào thư mục “\android-sdk\platform-tools” (C:\Program Files (x86)\Android\android-sdk\platformtools) Start -> run -> gõ: cmd để vào command line Dùng lệnh CD để đến thư mục platform-tools Gõ lệnh để cài adb install com.google.android.gms-19032013.apk Và adb install com.android.vending-19032013.apk Nếu báo tồn nguyendoanhkhoa@yahoo.com Tạo map Mở tập tin AndroidManifest, thẻ uses-sdk ta cấp thêm permission code bên quyền có ý nghĩa sau: INTERNET: Sử dụng API để download đồ từ server Google Map ACCESS_NETWORK_STATE: cho phép API kiểm tra trạng thái kết nối để định xem có download liệu hay không READ_GSERVICES: cho phép API truy cập Google web-based services WRITE_EXTERNAL_STORAGE: Cho phép API cache liệu đồ vào external storage ACCESS_COARSE_LOCATION: cho phép API dùng wifi định vị thiết bị ACCESS_FINE_LOCATION: cho phép API dùng Global Positioning System (GPS) để định vị thiết bị phạm vi nhỏ Dưới thẻ permission ta viết thêm thẻ để dùng openGL sau: Trong thẻ Application, thẻ Activity ta thêm thẻ meta-data bên thay thuộc tính android:value với API key mà ta lấy nguyendoanhkhoa@yahoo.com Mở file layout thêm vào the fragment bên Chạy chương trình xem kết Chú ý map không lên xem thông báo có lỗi “Google Maps Android API v2 only supports device with OpenGL ES 2.0 and above yên tâm chương trình chạy máy thật, máy ảo chạy không PC không support OpenGL ES2.0 Map Object Lớp làm việc với Map có tên GoogleMap Bên UI Map biểu diễn MapFragment MapView GoogleMap làm thao tác tự động gồm: • • • • • Kết nối với Google Maps service Download đồ Hiển thị đồ lên Hiển thị control khác pan zoom Pan Zoom hỗ trợ gestures nguyendoanhkhoa@yahoo.com 10 Tạo đối tượng map mã cách: Khai báo biến toàn cục GoogleMap tên vd: map Trong hàm onCreate ta gán cho đối tượng map cách Dùng getFragmentManager() để lấy điều khiển Fragment, gọi hàm findFragmentById để ánh xạ đến fragment chứa map Sau ép toàn đối tượng MapFragment cuối gọi hàm getMap để có đối tượng GoogleMap GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); map= ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap(); } UI Control Map API có sẵn số ui-control tương tự chương trình google map Ta bật/tắt control cách dùng lớp UiSettings gọi GoogleMap.getUiSettings để lấy tùy chỉnh Thay đổi đối tượng thực thi map Zoom Control setZoomControlsEnabled(boolean) : ẩn/hiện nút zoom-in/zoom-out Compass setCompassEnabled(boolean): ẩn/hiện la bàn góp bên trái map La bàn ta dùng ngón tay để quay (bearing) nghiêng (tilt) map Khi ta click vào la bàn, độ quay độ nghiêng map (mặc định) Ta cho la bàn luôn hiển thị nguyendoanhkhoa@yahoo.com 11 Nút My Location setMyLocationButtonEnabled(boolean) Nút My Location xuất góp bên phải map thị thuộc tính mylocation gán true Khi hiển thị ta click vào camera di chuyển đến vị trí (GPS) thiết bị định vị Zoom gestures (cảm ứng cử chỉ) Hành động zoom dựa vào hành vi sau: • • • • Chạm tay lần (double tap) để phóng to mức (zoom-in) ngón tay chạm lần để thu nhỏ mức (zoom-out) ngón tay bóp / căng (pinch/stretch) để zoom-in/zoom-out ngón chạm giữ yên, ngón chạm trược lên xuống để zoom-in/zoom-out Ta bật tắt hành vi setZoomGesturesEnabled(boolean) Scroll (pan) gestures Ta di chuyển camera map cách dùng ngón tay chạm vào di chuyển bật tắt hành vi setScrollGesturesEnabled(boolean) Tilt gestures Ta chạm ngón tay vào kéo lên xuống đồng thời để nghiêng map Bật/tắt setTiltGesturesEnabled(boolean) nguyendoanhkhoa@yahoo.com 12 Rotate gestures Chạm ngón tay quay để quay map Bật/tắt setRotateGesturesEnabled(boolean) Demo bật/tắt control UI Tiếp theo trước Trong onCreate thêm lệnh sau: UiSettings uisetting=map.getUiSettings(); uisetting.setCompassEnabled(true); uisetting.setZoomControlsEnabled(true); uisetting.setScrollGesturesEnabled(true); uisetting.setTiltGesturesEnabled(true); uisetting.setMyLocationButtonEnabled(true); map.setMyLocationEnabled(true); Map Type Có nhiều Map type (loại đồ) Google Maps Android API Một map type thể hiển cách hiển thị đồ VD đồ thông thường hiển thị đồ hình vẽ với đường biên giới quốc gia, đồ dạng road map hiển thị đường thành phố hay vùng Thông thường ta dùng loại là: • • • • • Normal : đồ đường Đường xá, công trình số đặc điểm tự nhiên ví dụ sông ngòi v.v… hiển thị Tên đường hiển thị Hybrid: đồ ảnh vệ tinh với đường xá thêm vào, thông tin đường xá thêm Satellite: đồ ảnh vệ tinh đường xá thông tin đường xá Terrain: đồ địa hình Bao gồm màu sắc thể cho địa hình, số đường thông tin thêm vào None: nạp lên lưới rỗng Muốn thay đổi map tye ta dùng hàm setMapType() truyền vào map type Thay đổi map type Mở file “menu/main.xml” thêm item sau: Mở file java override lên phương thức onOptionsItemSelected viết sau: @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.normal: map.setMapType(GoogleMap.MAP_TYPE_NONE); break; case R.id.hybrid: map.setMapType(GoogleMap.MAP_TYPE_HYBRID); break; case R.id.satellite: map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); break; case R.id.terrain: map.setMapType(GoogleMap.MAP_TYPE_TERRAIN); break; default: break; } return super.onOptionsItemSelected(item); } nguyendoanhkhoa@yahoo.com 14 [...]... 2 Mở file java chính và override lên phương thức onOptionsItemSelected và viết như sau: @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.normal: map.setMapType (GoogleMap. MAP_TYPE_NONE); break; case R.id.hybrid: map.setMapType (GoogleMap. MAP_TYPE_HYBRID);... R.id.normal: map.setMapType (GoogleMap. MAP_TYPE_NONE); break; case R.id.hybrid: map.setMapType (GoogleMap. MAP_TYPE_HYBRID); break; case R.id.satellite: map.setMapType (GoogleMap. MAP_TYPE_SATELLITE); break; case R.id.terrain: map.setMapType (GoogleMap. MAP_TYPE_TERRAIN); break; default: break; } return super.onOptionsItemSelected(item); } nguyendoanhkhoa@yahoo.com 14 ... thường ta dùng 4 loại là: • • • • • Normal : bản đồ về đường đi Đường xá, công trình và một số đặc điểm tự nhiên ví dụ sông ngòi v.v… được hiển thị Tên đường cũng được hiển thị Hybrid: bản đồ ảnh vệ tinh với đường xá được thêm vào, thông tin của đường xá cũng được thêm Satellite: bản đồ ảnh vệ tinh không có đường xá và thông tin đường xá Terrain: bản đồ địa hình Bao gồm màu sắc thể hiện cho địa hình, một

Ngày đăng: 11/05/2016, 14:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w