Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
2,73 MB
Nội dung
XÂY DỰNG ỨNG DỤNG CUNG CẤP THÔNG TIN VỀ CÁC ĐỊA ĐIỂM DU LỊCH BỤI TRÊN NỀN TẢNG ANDROID Niên khóa: 2011-2015 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CƠNG NGHỆ THÔNG TIN ĐỖ THÀNH LONG LÊ ANH TUẤN XÂY DỰNG ỨNG DỤNG CUNG CẤP THÔNG TIN VỀ CÁC ĐỊA ĐIỂM DU LỊCH BỤI TRÊN NỀN TẢNG ANDROID Chuyên ngành: Công nghệ thông tin ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2015 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐỖ THÀNH LONG LÊ ANH TUẤN XÂY DỰNG ỨNG DỤNG CUNG CẤP THÔNG TIN VỀ CÁC ĐỊA ĐIỂM DU LỊCH BỤI TRÊN NỀN TẢNG ANDROID Chuyên ngành: Công nghệ thông tin Giảng viên hƣớng dẫn: Nguyễn Thanh Tùng ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2015 MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT LỜI CẢM ƠN PHÂN CÔNG CÔNG VIỆC TÓM TẮT ĐỒ ÁN Chƣơng 1: MỞ ĐẦU 1.1 Giới thiệu đề tài 1.2 Mục đích đề tài 1.3 Cách thức ứng dụng hoạt động 1.4 Mục tiêu đề tài 1.4.1 Lý thuyết 1.4.2 Thực tiễn Chƣơng 2: TỔNG QUAN ĐỀ TÀI 2.1 Khảo sát 2.2 Các công cụ sử dụng 10 2.2.1 Hệ điều hành Android 10 2.2.2 GoogleMap API google play services 13 Chƣơng 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 20 3.1 Biểu đồ phân rã chức 20 3.2 Sơ đồ ngữ cảnh 21 3.3 Sơ đồ luồng liệu mức đỉnh dƣới đỉnh 22 3.4 Sơ đồ E-R 24 3.5 Cơ sở liệu vật lý 24 Chƣơng 4: XÂY DỰNG CHƢƠNG TRÌNH 27 4.1 Xây dựng sở liệu 27 4.2 Xây dựng giao diện 28 4.2.1 Giao diện hình 28 4.2.2 Giao diện chức tƣơng ứng vơi item menu……………… 30 4.2.3 Giao diện chi tiết địa điểm 34 4.3 Xây dựng chức 34 4.3.1 Chức tìm kiếm địa điểm 34 4.3.2 Chức hiển thị vị trí địa điểm 37 4.3.3 Chức cài đặt hiển thị đồ 42 4.3.4 Chức đƣờng 44 Chƣơng 5: CÀI ĐẶT VÀ CHẠY THỬ CHƢƠNG TRÌNH 47 5.1 Cài đặt 47 5.2 Chạy thử chƣơng trình 49 5.3 Kết luận 54 TÀI LIỆU THAM KHẢO 55 DANH MỤC HÌNH ẢNH Hình 2.1.1: Giao diện ứng dụng điểm đến Việt Hình 2.1.2: Giao diện đƣờng chọn loại địa điểm Hình 2.1.3: Giao diện ứng dụng Cẩm nang du lịch Hình 2.1.4: Giao diện ứng dụng Cẩm nang du lịch Hình 2.1.5: Giao diện ứng dụng Du lịch Việt Nam Hình 2.1.6: Giao diện ứng dụng Du lịch Việt Nam Hình 2.2.1.1: Hệ điều hành Android 10 Hình 2.2.2.1: Trang đăng ký Key Console Google 14 Hình 2.2.2.2: Google map API V2 for Android 15 Hình 2.2.2.3: Google place API 16 Hình 2.2.4: Google direction API 17 Hình 3.1.1: Biểu đồ phân rã chức 21 Hình 3.2.1: Sơ đồ ngữ cảnh 21 Hình 3.3.1: Sơ đồ luồng liệu mức đỉnh 22 Hình 3.3.2: Sơ đồ luồng liệu mức dƣới đỉnh chức quản lý địa điểm 22 Hình 3.3.3: Sơ đồ luồng liệu mức dƣới đỉnh chức tìm kiếm 23 Hình 3.3.4: Sơ đồ luồng liệu mức dƣới đỉnh chức đƣờng 23 Hình 3.3.5: Sơ đồ luồng liệu mức dƣới đỉnh chức cài đặt 24 Hình 3.4.1: Sơ đồ thực thể liên kết 24 Hình 4.1.1: Bảng địa điểm 27 Hình 4.1.2: Ảnh đƣợc lƣu trữ server 28 Hình 4.2.1: Giao diện hình 29 Hình 4.2.2.1: Giao diện Du lịch miền bắc 29 Hình 4.2.2.2: Giao diện Có thể bạn chƣa biết 32 Hình 4.2.2.3: Giao diện tìm kiếm 33 Hình 4.2.3.1: Giao diện chi tiết địa điểm 34 Hình 4.3.1.1: Chức tìm kiếm 35 Hình 4.3.2.1: Chức hiển thị vị trí địa điểm 35 Hình 4.3.2.2: Lấy chuỗi SHA1 37 Hình 4.3.2.3: Lấy google API 39 Hình 4.3.2.4: Lấy google API 40 Hình 4.3.2.5: Hiển thị vị trí địa điểm 40 Hình 4.3.3.1: Chức chọn định dạng hiển thị cho đồ 43 Hình 4.3.4.1: Chức đƣờng 43 Hình 5.1.1: Cài đặt ứng dụng điện thoại 45 Hình 5.1.2: Cài đặt ứng dụng 48 Hình 5.2.1: Giao diện menu 49 Hình 5.2.2: Giao diện danh mục địa điểm chƣa kết nối internet 50 Hình 5.2.3: Giao diện danh mục địa điểm kết nối internet 51 Hình 5.2.4: Giao diện chi tiết địa điểm 52 Hình 5.2.5: Giao diện vị trí địa điểm 53 Hình 5.2.6: Giao diện danh mục bạn chƣa biết 54 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Ký hiệu, chữ viết tắt JSON SQLite CSDL SDK API Tên đầy đủ JavaScript Object Noattion Structured Query Language Dịch tiếng việt Ký hiệu đối tƣợng JavaScript Hệ quản trị sở liệu tự nguồn mở Cơ sở liệu Software Development Kit Application Programming Interface Bộ công cụ phát triển phần mềm Giao diện lập trình ứng dụng LỜI CẢM ƠN Trƣớc tiên, nhóm chúng em xin bày tỏ lịng biết ơn sâu sắc tới thầy giáo Nguyễn Thanh Tùng, ngƣời hƣớng dẫn, giúp đỡ nhóm chúng em q trình học tập hồn thiện đề tài Em xin chân thành cảm ơn đến thầy cô giáo khoa Công nghệ thông tin Viện Đại học Mở Hà Nội dìu dắt , dạy dỗ chúng em kiến thức chuyên môn tƣ duy, ý tƣởng, tinh thần học tập sáng tạo để chúng em hồn thiện tốt đề tài Trong q trình thực đồ án , chúng em học hỏi đƣợc nhiều kiến thức chuyên môn nhƣ cách làm việc nhóm Mặc dù cố gắng nỗ lực hồn thành tốt đồ án nhƣng khơng thể tránh khỏi sai sót Kính mong q thầy đóng góp ý kiến để đồ án chúng em hồn thiện tốt Hà Nội, tháng năm 2014 Sinh viên thực Đỗ Thành Long Lê Anh Tuấn PHÂN CƠNG CƠNG VIỆC Cơng việc Khảo sát Phân tích thiết kế hệ thống Xây dựng giao diện tổng quan Thiết kế sở liệu Xây dựng giao diện menu Xây dựng giao diện du lịch miền bắc Xây dựng giao diện du lịch miền trung Xây dựng giao diện du lịch miền nam Xây dựng giao diện du lịch mùa xuân Xây dựng giao diện du lịch mùa hè Xây dựng giao diện du lịch mùa thu Xây dựng giao diện du lịch mùa đơng Xây dựng giao diện bạn chua biết Xây dựng chức hiển thị danh sách địa điểm Xây dựng chức hiển thị danh sách bạn chƣa biết Xây dựng chức tìm kiếm Xây dựng chức hiển thị thông tin chi tiết địa điểm Xây dựng chức hiển thị vị trí địa điểm đồ Xây dựng chức đƣờng Lê Anh Tuấn x Đỗ Thành Long x x x x x x x x x x x x x x x x x x TÓM TẮT ĐỒ ÁN Họ tên: Lê Anh Tuấn, Đỗ Thành Long Chuyên ngành: Cơng nghệ thơng tin Khóa: 11 Giảng viên hƣớng dẫn: Nguyễn Thanh Tùng Đề tài: Xây dựng ứng dụng cung cấp thông tin địa điểm du lịch bụi tảng android Tóm tắt: Nghiên cứu xây dựng ứng dụng cung cấp thông tin địa điểm du lịch bụi tảng android Ứng dụng cho phép ngƣời dùng tra cứu thông tin địa điểm theo vùng miền theo mùa Cung cấp thông tin chi tiết địa điểm, đƣờng 41 Để vị trí địa điểm du lịch lên map ta sử dụng đối tƣợng Markeroptions BanDo.java public class BanDo extends FragmentActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ban_do); SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager() findFragmentById(R.id.map); map = supportMapFragment.getMap(); map.moveCamera(CameraUpdateFactory.newLatLngZoom(MarkerPosi tion, 15)); map.animateCamera(CameraUpdateFactory.zoomTo(20), 2000, null); Marker markerCustom = map.addMarker(new MarkerOptions() position(MarkerPosition) snippet(c.getString(c.getColumnIndex("DiaChi"))) title(c.getString(c.getColumnIndex("TenDD")))); markerCustom.showInfoWindow(); } 42 Hình 4.3.2.5: Hiển thị vị trí địa điểm 4.3.3 Chức cài đặt hiển thị đồ 43 Hình 4.3.3.1: Chức chọn định dạng hiển thị cho đồ Cho phép ngƣời dùng lựa chọn định dạng hiển thị đồ: normal, satellite, hybrid,… Class BanDo.java public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present getMenuInflater().inflate(R.menu.ban_do, menu); MenuItem item = menu.findItem(R.id.action_caidat); item.setOnMenuItemClickListener(new OnMenuItemClickListener() { int type; @Override public boolean onMenuItemClick(MenuItem item) { AlertDialog.Builder AlertDialog.Builder( builder = new 44 BanDo.this); builder.setIcon(R.drawable.ic_map); builder.setTitle("Chọn kiểu map"); builder.setItems(R.array.map_type, new DialogInterface.OnClickListener() { public dialog, int i) { void @Override onClick(DialogInterface switch (i) { case 0: type = GoogleMap.MAP_TYPE_NONE; break; case 1: type = GoogleMap.MAP_TYPE_NORMAL; break; case 2: type = GoogleMap.MAP_TYPE_SATELLITE; break; case 3: type = GoogleMap.MAP_TYPE_HYBRID; break; case 4: type = GoogleMap.MAP_TYPE_TERRAIN; break; } map.setMapType(type); } }); builder.show(); return false; } }); return true; } 4.3.4 Chức đƣờng Chỉ đƣờng từ vị trí ngƣời dùng đến bị trí đia điểm ngƣời dùng chọn 45 Hình 4.3.4.1: Chức đƣờng Hàm lấy vị trí ngƣời dùng private void getMyLocation() { LocationManager locationManager getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); Location lastLocation = locationManager = (LocationManager) getLastKnownLocation(locationManager.getBestProvider(criteria, false)); if (lastLocation != null) { map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng( lastLocation.getLatitude(), lastLocation.getLongitude()),13)); CameraPosition cameraPosition = new CameraPosition.Builder() target(new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude())) zoom(15).bearing(90).tilt(40).build(); map.animateCamera(CameraUpdateFactory newCameraPosition(cameraPosition)); 46 Để vẽ đƣợc đƣờng điểm ta cần lấy đƣợc tập hợp điểm nằm điểm rơi nối chúng lại với Hàm lấy danh sách điểm nằm điểm bắt đầu kết thúc đƣợc share public mạng 47 Chƣơng CÀI ĐẶT VÀ CHẠY THỬ CHƢƠNG TRÌNH 5.1 Cài đặt Cách 1: Nếu sử dụng máy thật bạn cần download ứng dụng từ chợ phần mề xuống coppy file apk vào máy cài đặt Hình 5.1.1: Cài đặt ứng dụng điện thoại 48 Hình 5.1.2: Cài đặt ứng dụng Cách 2: Nếu sử dụng máy ảo cần phải import project vào cơng cụ lập trình Eclipse Android studio Sau cần phải lấy API nhƣ cách làm chỉnh sửa lại thƣ mục AndroidMainfest chạy đƣợc chƣơng trình 49 5.2 Chạy thử chƣơng trình Hình 5.2.1: Giao diện menu 50 Hình 5.2.2: Giao diện danh mục địa điểm chƣa kết nối internet 51 Hình 5.2.3: Giao diện danh mục địa điểm kết nối internet 52 Hình 5.2.4: Giao diện chi tiết địa điểm 53 Hình 5.2.5: Giao diện vị trí địa điểm 54 Hình 5.2.6: Giao diện danh mục bạn chƣa biết 5.3 Kết luận Ƣu điểm - Ứng dụng nhẹ: 2.2 MB,7.17 MB cài đặt xong chƣơng trinh - Chạy ổn định, giao diện đơn giản, dễ nhìn - Có thể sử dụng mà không cần phải kết nối internet Nhƣợc điểm - Chức đƣờng chƣa hoàn thiện 55 TÀI LIỆU THAM KHẢO [1] Hƣớng dẫn sử dụng googlemap api v2 Website: http://android.vn/threads/bai-2-huong-dan-su-dung-google-mapsapi-v2-lay-vi-tri-va-add-maker.24967/ [2] The google direction api Website: https://developers.google.com/maps/documentation/directions/ [3] Tạo đồ qua ví dụ cụ thể Website: http://fsd14.com/post/78-tao-ban-do-google-map-qua-vi-du-thuc-te [4] Android SQLite Database Tutoral Website: http://www.androidhive.info/2011/11/android-sqlite-databasetutorial/