1. Trang chủ
  2. » Giáo án - Bài giảng

Android + Map API full

25 951 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 25
Dung lượng 699 KB

Nội dung

Android + Map API full tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh...

MỤC LỤC LỜI NÓI ĐẦU .2 CHƯƠNG 1: GIỚI THIỆU CHUNG 3 CHƯƠNG 2: GOOGLE MAP API .11 CHƯƠNG 3: HỆ THỐNG BẢN ĐỒ TRỰC TUYẾN SỬ DỤNG GOOGLE MAP API .32 TỔNG KẾT 47 LỜI NÓI ĐẦU Như chúng ta đã biết bản đồ từ thời xa xưa giúp con người có thể xác định được phương hướng, vị trí chính xác nơi mình muốn đến, cần đến, giúp cho họ có thể hiểu biết đầy đủ về vùng địa lý mà họ tìm hiểu. Ngày nay với sự giúp đỡ của công nghệ thông tin người ta có thể ngồi tại một chỗ và tìm kiếm chính xác đến một vùng nào đó trên thế giới bằng bản đồ trực tuyến.Hiện nay, bản đồ trực tuyến là một trong những lĩnh vực phát triển mạnh mẽ được hầu hết các nơi trên thế giới xây dựng và Việt Nam không nằm ngoài số đó. Trên thế giới google đã xây dựng được một bản đồ trực tuyến của toàn thế giới và cung cấp các API cho người lập trình để có thể tự xây dựng bản đồ trực tuyến ở đất nước mình. Với sự phát triển mạnh mẽ trong lĩnh vực bản đồ các công ty ở Việt Nam như bamboo, địa danh đã xây dựng cơ sở dữ liệu của mình, hiển thị thông tin dựa trên bản đồ của google. Chúng ứng dụng bởi rất nhiều công nghệ khác nhau như .NET, PHP, JSP…Cùng xu hướng đó tôi đã xây dựng một trang web về lĩnh vực bản đồ trực tuyến cho việc hiển thị thông tin gồm thông tin text, hình ảnh và video của tất cả các thủ đô trên thế giới. Ở đây tôi sử dụng công nghệ .NET trên nền Web 2.0 kết hợp với Google Map API. CHƯƠNG 1: GIỚI THIỆU CHUNG .1.1. Giới thiệu các công nghệ 1.1.1. Bản đồ trực tuyến 1.1.1.1.1 Bản đồ Theo wikipedia Bản đồ là bản vẽ đơn giản miêu tả một không gian, địa điểm và hiển thị những thông số liên quan trực tiếp đến vị trí ấy có liên quan đến khu vực xung quanh. Theo các nhà bản đồ: Bản đồ là sự miêu tả khái quát, thu nhỏ bề mặt trái đất hoặc bề mặt thiên thể khác trên mặt phẳng trong một phép chiếu xác định, nội dung của bản đồ được biểu thị bằng hệ thống ký hiệu quy ước. Bản đồ thường dùng nhất trong địa lý. Theo nghĩa này bản đồ thường có hai chiều mà vẫn biểu diễn một không gian có ba chiều đúng đắn. Môn bản đồ là khoa học và nghệ thuật vẽ bản đồ. 1.1.1.1.2 Bản đồ trực tuyến Theo Trung tâm Thông tin (CIREN thuộc Bộ Tài nguyên - Môi trường) cơ quan cung cấp DV này: Ngoài việc cung cấp thông tin cho người truy cập, hệ bản đồ này còn có ý nghĩa như là cơ sở dữ liệu quan trọng phục vụ hoạt động của các cơ quan Chính phủ, các cơ quan nghiên cứu khoa học và phục vụ việc phổ cập thông tin cộng đồng. DV này của CIREN được thiết lập theo đúng tiêu chuẩn OGC WMS. Do vậy, có thể sử dụng bản đồ trực tuyến VN kết hợp với rất nhiều dịch vụ WMS của các tổ chức và quốc gia trên thế giới. CIREN có hướng dẫn phương pháp kết hợp dịch vụ bản đồ trực tuyến VN với nguồn ảnh vệ tinh của Microsoft Virtual Earth và Yahoo Map. Người sử dụng có thể bổ sung các nguồn dữ liệu của riêng mình trên nền dữ liệu địa lý toàn cầu mà không cần phải có dữ liệu gốc. Đặc biệt, hiện CIREN đang cung cấp một ứng dụng miễn phí là Gaia 3.0 để khai thác dịch vụ WMS. Trong thời gian tới, CIREN cung cấp các đường liên kết tới các dịch vụ WMS và đường link tới các dịch vụ WMS quốc tế. 1.1.2. Công nghệ Web 2.0 Sẽ thật tuyệt với nếu vào một ngày nào đó, chỉ với một chiếc máy tính được cài đặt một hệ điều hành và một trình duyệt web duy nhất mà bạn Maps Dr David Janzen Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License Maps • Google Maps API is widely used on the web • The Android SDK provides support for easily integrating the Google Maps API Using Google Maps in our apps • Configure – Maps require the Google API as the project build target – Maps require a Map API Key in order to be deployed – http://code.google.com/android/addons/google-apis/maps-overview.html • Code – Create a MapView in a MapActivity – Create Map Overlays Add Google API in Eclipse http://developer.android.com/sdk/adding-components.html Add Google API in Eclipse • Use API for SDK 1.6 http://developer.android.com/guide/appendix/api-levels.html Add Google API in Eclipse • Set the Google API as the Project Build Target – Right-click on the project, select Properties Keys • As we learned in lab section 6, https://sites.google.com/site/androidappcourse/labs/lab-1 our apps must be signed in order to deploy them on a device • Eclipse automatically creates a signed debug keystore that is used when launching our app from Eclipse • In order to deploy our app to the public, we must create a signed keystore See http://developer.android.com/guide/publishing/appsigning.html#ExportWizard Find your keystore http://code.google.com/android/add-ons/google-apis/mapkey.html Find your debug keystore http://code.google.com/android/add-ons/google-apis/mapkey.html Get your certificate fingerprint http://code.google.com/android/add-ons/google-apis/mapkey.html Register your certificate with Google http://code.google.com/android/maps-api-signup.html What’s in the legal agreement? • Read the Terms of Service (sections 1-11) – http://code.google.com/android/maps-apisignup.html • Examples – Maps may include ads in future – Google may limit number of transactions – Cannot use for turn-by-turn directions or autonomous driving Add the Map API Key to your Application Configure AndroidManifest.xml Finally, we can start coding • MapView – Contains a map • via Google Maps API • Map tile retrieval and caching is all done for you – Includes pan – Includes zoom • use setBuiltInZoomControls(true); MapView Modes • MapView – You determine mode • setSatellite(true); • setTraffic(true); • setStreetView(true); MapActivity • MapView can only be constructed or inflated in a MapActivity public class MyActivity extends MapActivity { … @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); … MapView myMap = (MapView)findViewById(R.id.myMap); myMap.setBuiltInZoomControls(); myMap.setSatellite(true); MapController • You can pan and zoom the map programmatically MapView myMap = (MapView)findViewById(R.id.myMap); MapController mapController = myMap.getController(); mapController.setZoom(1); //widest zoom/far away … mapController.setZoom(21); //narrowest zoom/close in mapController.zoomIn(); //one level mapController.zoomOut(); //one level GeoPoint • You can move to a particular point MapView myMap = (MapView)findViewById(R.id.myMap); MapController mapController = myMap.getController(); Double lat = 37.123456 * 1E6; Double long = -122.123456 * 1E6; GeoPoint point = new GeoPoint(lat.intValue(), long.intValue()); mapController.setCenter(point); //jump to point … mapController.animateTo(point); //smooth transition to point Reverse Geocoding • Find address from longitude/latitude location = locationManager.getLastKnownLocation( LocationManager.GPS_PROVIDER); double lat = location.getLatitude(); double lng = location.getLongitude(); Geocoder gc = new Geocoder(this, Locale.getDefault()); List addresses = null; try { addresses = gc.getFromLocation(lat, lng, 10); } catch (IOException e) {} Forward Geocoding • Find longitude/latitude (and more) from address Geocoder gc = new Geocoder(this, Locale.US); List addresses = null; try { addresses = gc.getFromLocationName( “123 Main St., Newton, Kansas”, 10); } catch (IOException e) {} double lat = addresses.get(0).getLatitude(); String zip = addresses.get(0).getPostalCode(); Geolocation • Options – GPS, cell network – Wifi-based • Skyhook Wireless • http://www.skyhookwireless.com/developers/ Android_Integration_Manual.php Setting up location services public MyActivity() { criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); }; private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { updateWithNewLocation(location); } public void ... ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM KHÓA LUẬN TỐT NGHIỆP NGHIÊN CỨU GOOGLE MAP API VÀ XÂY DỰNG ỨNG DỤNG TRÊN ANDROID Giáo viên hướng dẫn: PGS.TS. VŨ THANH NGUYÊN CH. TRẦN ANH DŨNG Sinh viên thực hiện: NGUYỄN MINH TUẤN TRƯƠNG DUY Lớp : CNPM02 Khoá: 02 TP. Hồ Chí Minh, tháng 1 năm 2012 GVHD: PGS.TS. Vũ Thanh Nguyên SVTH: Nguyễn Minh Tuấn CH. Trần Anh Dũng Trương Duy LỜI MỞ ĐẦU Ngày nay với sự phát triển không ngừng của xã hội thì nhu cầu của con người cũng ngày càng tăng, đặc biệt là nhu cầu về việc sử dụng công nghệ hỗ trợ cho cuộc sống hằng ngày. Nắm bắt được nhu cầu đó mà các công ty không ngừng đổi mới, tạo ra nhiều công nghệ hơn. Trong đó ta thấy nổi bật nhất hiện nay đó là công nghệ di động, các ứng dụng trên di động. Từ ý nghĩa trên nhóm đã quyết định nghiên cứu và xây dựng một ứng dụng áp dụng công nghệ đi động để đơn giản hóa việc tìm đường, tra cứu thông tin trên bản đồ. Với ứng dụng này người sử dụng có thể dễ dàng biết được vị trí của mình, cũng như tìm đường đi và địa điểm một cách nhanh chóng và chính xác tại bất kỳ nơi nào. Ứng dụng đặc biệt thích hợp với khách du lịch vì chỉ cần cài đặt ứng dụng trên chiếc điện thoại của mình là có thể sử dụng được. Khóa luận “Nghiên cứu Google Map Api và xây dựng ứng dụng trên Android” bao gồm 8 chương: Chương 1: Giới thiệu: Giới thiệu khái quát về khóa luận và mục đích của khóa luận. Chương 2: Tổng quan hệ điều hành Android. Chương 3: Kiến trúc và thành phần hệ điều hành Android. Chương 4: Google Map API & các dịch vu Google Map trên Anroid. Chương 5: Giới thiệu phần mềm MapPro. Chương 6: Phân tích thiết kế hệ thống. Chương 7: Thiết kế giao diện. Chương 8: Đánh giá kết quả và kết luận. LỜI CẢM ƠN Trong quá trình thực hiện bài khóa luận này, nhóm đã may mắn nhận được sự giúp đỡ rất nhiều từ quý thầy cô. Trước hết, nhóm xin gửi lời tri ân sâu sắc nhất đến quý thầy cô khoa Công nghệ phần mềm, cũng như quý thầy cô của các khoa và bộ môn trường Đại học Công nghệ thông tin - ĐHQG HCM đã nhiệt tình truyền đạt kiến thức và các kinh nghiệm thực tế, đặc biệt là Thầy PGS.TS Vũ Thanh Nguyên và Thầy Trần Anh Dũng, người đã hết sức quan tâm và nhiệt tình hướng dẫn nhóm hoàn thành bài khóa luận này. Cuối cùng, nhóm xin gửi lời chúc sức khỏe và thành công đến quý thầy cô trường Đại học Công nghệ thông tin. Mặc dù nhóm đã rất cố gắng nhưng trong quá trình làm khóa luận sẽ không tránh khỏi những thiếu sót. Rất mong nhận được sự góp ý quý báu của quý thầy cô và bạn bè để khóa luận được hoàn chỉnh hơn. Thành phố Hồ Chí Minh, ngày 31 tháng 12 năm 2011 Nhóm thực hiện Nguyễn Minh Tuấn – Trương Duy GVHD: PGS.TS. Vũ Thanh Nguyên SVTH: Nguyễn Minh Tuấn CH. Trần Anh Dũng Trương Duy NHẬN XÉT (Của giảng viên hướng dẫn) . . . . . . . . . . . Trung tâm Tin học – ĐH KHTN GAME CARÔ Sau đây mình sẽ viết 1 game carô hoàn chỉnh nhưng cũng rất đơn giản, 1/ Các bạn tạo 1 project như sau: Project name: TicTacToe Build Target: Android 2.3.3 Application name: TicTacToe Package name: org.example.TicTacToe Create Activity: TicTacToe 2/ Để chuẩn bị cho trò chơi các bạn tạo 1 folder: drawable trong phần res và thêm 3 hình sau vào và đặt tên lần lượt là: bola,cruz, vazio 3/ Các bạn tạo class Cell.java: package org.example.TicTacToe; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Point; public abstract class Cell extends Point{ public Cell(int x, int y) { super(x, y); } abstract public void draw(Canvas g,Resources res, int x, int y, int w, int h); } Lập trình Android – http://laptrinhdidong.vn Page 1 Trung tâm Tin học – ĐH KHTN 4/ Tiếp theo các bạn tạo class Cross.java và code như sau: package org.example.TicTacToe; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; public class Cross extends Cell { public Cross(int x, int y) { super(x, y); } public void draw(Canvas g, Resources res, int x, int y, int w, int h) { Bitmap im = BitmapFactory.decodeResource(res, R.drawable.cruz); g.drawBitmap(im, null, new Rect(x*w, y*h, (x*w)+w, (y*h)+h), new Paint()); } public boolean equals(Object obj) { if (obj instanceof Cross) { return true; } else { return false; } } Lập trình Android – http://laptrinhdidong.vn Page 2 Trung tâm Tin học – ĐH KHTN @Override public String toString() { return "X"; } } 5/ Tiếp theo các bạn tạo file Empty.java và code như sau: package org.example.TicTacToe; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; public class Empty extends Cell { public Empty(int x, int y) { super(x, y); } public void draw(Canvas g, Resources res, int x, int y, int w, int h) { Bitmap im = BitmapFactory.decodeResource(res, R.drawable.vazio); g.drawBitmap(im, null, new Rect(x*w, y*h, (x*w)+w, (y*h)+h), new Paint()); } Lập trình Android – http://laptrinhdidong.vn Page 3 Trung tâm Tin học – ĐH KHTN public boolean equals(Object obj) { if (obj instanceof Empty) { return true; } else { return false; } } @Override public String toString() { return " "; } } 6/ Kế tiếp các bạn tạo file Ball.java có code như sau: package org.example.TicTacToe; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; public class Ball extends Cell{ public Ball(int x, int y) { Lập trình Android – http://laptrinhdidong.vn Page 4 Trung tâm Tin học – ĐH KHTN super(x, y); } public void draw(Canvas g, Resources res, int x, int y, int w, int h) { Bitmap im = BitmapFactory.decodeResource(res, R.drawable.bola); g.drawBitmap(im, null, new Rect(x*w, y*h, (x*w)+w, (y*h)+h), new Paint()); } public boolean equals(Object obj) { if (obj instanceof Ball) { return true; } else { return false; } } public String toString() { return "O"; } } 7/ Tiếp theo các bạn tạo file Game.java và code như sau: package org.example.TicTacToe; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Handler; Lập trình Android – http://laptrinhdidong.vn Page 5 Trung tâm Tin học – ĐH KHTN import android.os.Message; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; public class Game extends View { private Cell[][] singlesquare = null; int x = 3; int y = 3; private int l; private int a; private boolean whatdrawn = false; private int playerwin = 3; private  1.PHẦN 1: GIỚI THIỆU VỀ DỰ ÁN PHẦN MỀM 2 1.1.Phạm vi và đối tượng sử dụng phần mềm: 3 1.2.Phương pháp nghiên cứu: 3 2.PHẦN 2: XÁC ĐỊNH NHU CẦU NGƯỜI DÙNG: 3 2.1.Phương pháp xác định nhu cầu: 3 2.2.Danh mục và mô tả chi tiết các nhu cầu người dùng: 4 3.PHẦN 3: PHÂN TÍCH BÀI TOÁN: 4 3.1.Lập sơ đồ trình tự thực hiện bài toán: 4 3.2.Phân tích kỹ thuật cho từng bước thực hiện bài toán: 5 4.PHẦN 4: SƠ ĐỒ LUỒNG DỮ LIỆU 6 5.PHẦN 5: THIẾT KẾ CƠ SỞ DỮ LIỆU 6 5.1.Thiết kế các bảng dữ liệu: 6 5.2.Lập sơ đồ quan hệ giữa các bảng dữ liệu: 9 6.PHẦN 6: THIẾT KẾ GIAO DIỆN 9 6.1.Các trang giao diện: 9 6.2.Quan hệ giữa các trang: 11 7.PHẦN 7 : KẾT LUẬN VÀ KIẾN NGHỊ 12 7.1.Kết luận của đề tài: 12 7.2.Kiến nghị: 12 7.3.Tài liệu tham khảo : 13 7.4.Hướng phát triển của phần mềm : 13 8.PHẦN 8: PHỤ LỤC GIỚI THIỆU VỀ GOOGLE MAP API 14 1    ! SVTH"#$ GVHD"!%&'(! )! *)"+,-*, Ở nước ta, số lượng các công trình giao thông đã và đang được xây dựng ngày càng nhiều. Vì vậy công tác theo dõi, quản lý khai thác công trình, quản lý hồ sơ thiết kế, đánh giá chất lượng và khả năng chịu lực của chúng ngày càng khó khăn, phức tạp. Để làm tốt các công tác này thì trước hết phải quản lý chặt chẽ hồ sơ của công trình, bao gồm hồ sơ thiết kế gốc và các thông tin được cập nhật trong suốt quá trình khai thác sử dụng công trình cũng như những thay đổi qua mỗi lần duy tu hoặc sửa chữa. Đặc điểm của hồ sơ thiết kế các công trình giao thông, nhất là ở nước ta, thường hay bị thay đổi do nhiều nguyên nhân khác nhau dẫn đến làm sai lệch, độ tin cậy không cao. Công tác lưu trữ, bảo quản cũng như phân loại chúng cũng gặp rất nhiều khó khăn. Vì vậy việc nghiên cứu ứng dụng công nghệ thông tin để quản lý các hồ sơ này đang trở thành rất cấp thiết. Ngày nay sự phát triển của mạng Internet đã khiến người ta rất khó để từ chối sử dụng nó. Vì vậy, tạo một ứng dụng hoạt động trên internet sẽ tạo sự thuận lợi cho người sử dụng. Mặc khác, với dữ liệu về bản đồ được Google cung cấp miễn phí thì ta khó có thể từ chối để “nhúng” nó vào ứng dụng của mình. Để đưa Google Map lên website cá nhân, bạn không cần phải có khả năng lập trình "siêu hạng", chỉ cần vài bước đơn giản và một ít kiến thức về HTML là có thể thực hiện điều này. Yếu tố cần thiết để đưa Google Map lên website là khai thác giao diện lập trình ứng dụng API (Application Programming Interface) của Google Map được Google cung cấp cho người dùng. Nhiệm vụ đặt ra là xây dựng một chương trình quản lý hồ sơ các công trình cầu trên cơ sở sử dụng GOOGLE MAP API. Qua đó nâng cao kỹ năng ứng dụng tin h‡c vào công tác thiết kế, quản lý và khai thác các công trình cầu đường. 2 Cuối cùng, tôi xin cảm ơn các thầy cô thuộc bộ môn Tự động hóa, đặc biệt là thầy Lê Đắc Chỉnh đã tận tâm hướng dẫn tôi hoàn thành đề tài trong thời gian qua. Do hạn chế về thời gian và năng lực nên đề còn sơ sài và nhiều thiếu xót, mong quí thầy cô thông cảm và giúp đỡ để đề tài này được hoàn thiện hơn. Tôi xin chân thành cám ơn! )!)! ./012134526789:;<=>9:?.@90A0" 1.1.1. Phạm vi của bài toán: Hệ thống trợ giúp việc lưu trữ và cung cấp thông tin về hồ sơ thiết kế các công trình cầu. 1.1.2. Đối tượng sử dụng phần mềm: Vì đây là phần mềm chuyên nghành nên đối tượng sử dụng chủ yếu mà phần mềm muốn hướng tới là: • Các cơ quan quản lí công trình giao thông. • Các kỹ sư công trình. • Những người dân quan tâm. )!B! .7C9:?.D?9:.2E9FGH" • Nghiên cứu cách thức sử dụng Google Map API. • Nghiên cứu cấu trúc của hồ sơ thiết kế cầu. • Nghiên cứu ngôn ngữ lập trình Javascript. • Nghiên cứu ASP.NET để thiết kế ứng dụng Web. B! *B"I&J*KLM" B!)! .7C9:?.D?NDF4O9.9.HF@H" Phương pháp sử dụng để xác định nhu cầu người dùng là điều tra và khảo sát kết hợp với phỏng vấn người dùng với các câu hỏi đưa [...]... android: id="@+id/myMap" android: layout_width="fill_parent" android: layout_height="fill_parent" android: clickable="true" android: apiKey="@string/mapApiKey"/> Configure AndroidManifest.xml Finally, we can start coding • MapView – Contains a map • via Google Maps API • Map tile retrieval and... http://code.google.com /android/ maps -api- signup.html What’s in the legal agreement? • Read the Terms of Service (sections 1-11) – http://code.google.com /android/ maps-apisignup.html • Examples – Maps may include ads in future – Google may limit number of transactions – Cannot use for turn-by-turn directions or autonomous driving Add the Map API Key to your Application ... Configure AndroidManifest.xml... myMap.setSatellite(true); MapController • You can pan and zoom the map programmatically MapView myMap = (MapView)findViewById(R.id.myMap); MapController mapController = myMap.getController(); mapController.setZoom(1);... Finally, we can start coding • MapView – Contains a map • via Google Maps API • Map

Ngày đăng: 22/04/2016, 10:06

TỪ KHÓA LIÊN QUAN

w