實驗十五:標記目前位置.

Slides:



Advertisements
Similar presentations
开发入门 一个 android 初学者的心得与体会. 前言 两周前张老师通知我说,让我根据教练助手的学习与开发的过程讲下 android 开发的心得与体会,我觉得自己在这么多 Android 前辈大佬面前讲 android 简 直是班门弄斧。由于是刚入门的初学者,水平有限,很多方面还很不足,对 错误或不周到之处欢迎批评指正。顺便还得提下,我这个标题有抄袭积聚童.
Advertisements

JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
第一單元 建立java 程式.
第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
Ch22 Google Map.
四資二甲 第三週作業 物件導向程式設計.
Android环境搭建 倚动软件工厂实验室 网络课程地址:
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
第二章 B4A程式語言的開發環境 課程名稱:程式設計 授課老師:李春雄 博士
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
手持式裝置之隨身照護應用 Android開發環境設定 鐘國家 老師.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
臺北市立大學 資訊科學系(含碩士班) 賴阿福
實驗十三:顯示目前經緯度位置.
Java簡介.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
Android程式開發準備 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
第10章 App微信分享的实现 倚动实验室.
安裝與設置 Android 發展環境 靜宜大學資工系 蔡奇偉副教授 ©.
第11章 Android GPS位置服务与地图编程
第9章 位置服务与地图应用.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Ch5 Android應用程式的主要組成.
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
安裝JDK 安裝Eclipse Eclipse 中文化
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
指導教授:【李博明】老師 組員: 4A13A017 紀家郁 4A 邱建傑 4A 白智仁 4A 簡宗胤
Android 專案建立、編譯與執行.
Android 视频教程简介.
使用Android模拟器 本讲大纲: 1、模拟器概述 2、Android虚拟设备和模拟器 3、Android模拟器启动与停止 4、控制模拟器
第10章 GPS位置服务与地图编程.
Java程式設計 Eclipse.
第一單元 建立java 程式.
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
App Inventor 2初體驗 靜宜大學資管系 楊子青
實驗九:延續實驗八, 製作一個完整音樂播放器
課程網站
Location Based Services - LBS
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
實驗十六:匯出APK安裝檔與軟體上架.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
2012清大資工系 「頂尖企業暑期實習」 經驗分享心得報告 實習企業:工研院(ITRI) 實習學生:資工系 李東恩.
實驗十:影片播放.
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
實驗七:分頁程式.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
東吳大學『樂齡大學』 外雙溪環境與生態 產業 黃顯宗 東吳大學 微生物學系 101.
加速感測器 靜宜大學資管系 楊子青.
SQLite資料庫 靜宜大學資管系 楊子青.
InputStreamReader Console Scanner
Presentation transcript:

實驗十五:標記目前位置

實驗十五 主題 目的 環境需求 本實驗為練習使用在Google Map地圖上增加標記 學習如何使用在Google Map地圖上增加標示 Java SE Development Kit (JDK) Android SDK Google play services SDK Eclipse ADT 實體裝置 此範例在地圖上標記目前的位置,並移動地圖中心點到目前位置,標記不做清除,會依使用者位置不停在地圖上標示出目前位置,使用者點選地圖標記時會出現標記的經緯度

實驗十五範例

金鑰與環境建立 Step1.開通Google Maps Android服務與獲取金鑰,將google-play-services_lib專案匯入至工作區中並在專案中加入參考 Step2.在專案的AndroidManifest.xml檔案中加入相關使用權限 除地圖相關權限外,尚需額外增加定位的權限,如下: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 或 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

畫面佈局 Step3.將佈局檔預設相對佈局改為垂直線性佈局,並放入元件於佈局中 將佈局檔res/layout/activity_main.xml打開,先將TextView元件刪除,將根節點佈局改為垂直線性佈局LinearLayout(Vertical),將1個Fragment拖曳到概要視窗的垂直線性佈局中,Fragment代號為fragment1。 Step4. 打開Java程式,找出XML佈局中的地圖元件並註冊事件 將程式src/MainActivity.java打開,宣告一個GoogleMap物件googleMap變數,程式如src/MainActivity.java第2行。在onCreate()方法中的setContentView(R.layout.activity_main);下方,先利用GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);方法判斷Google Play Services在裝置中是否可使用,若不可使用,跳出對話視窗顯示錯誤原因 若可使用,利用FragmentManager類別中的getFragmentManager()方法取得FragmentManager物件,再利用其findFragmentById()方法找出MapFragment物件,最後利用MapFragment的getMap()方法取出GoogleMap物件。設定GoogleMap的setMyLocationEnabled(true)方法,將目前定位圖層打開,註冊GoogleMap的onMyLocationChange事件

src/MainActivity.Java Step5.實作onMyLocationChange()方法內容 當使用者位置改變時,此時程式會跳去執行onMyLocationChange()方法,從location參數可知目前座標位置,利用location的getLatitude()和getLongitude()方法取得經緯度,並依據此經緯度產生LatLng物件,利用CameraUpdateFactory的newLatLng()方法,產生CameraUpdate物件,並呼叫GoogleMap類別的animateCamera()方法將地圖中心點移至目前座標位置。利用MarkerOptions的相關方法設定標記的位置、圖示、資訊視窗的標題和內容,最後利用GoogleMap類別的addMarker ()方法將標記加入地圖上 Step6.實作onCancel()方法內容 若Google Play Services在裝置中不可使用,會跳出對話視窗,對話視窗消失時,會執行onCancel()方法,呼叫Activity類別中的finish()方法,關閉視窗應用程式

protected void onCreate(Bundle savedInstanceState) { public class MainActivity extends Activity implements OnCancelListener, OnMyLocationChangeListener { GoogleMap googleMap; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int errorCode=GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if(errorCode!=ConnectionResult.SUCCESS) GooglePlayServicesUtil.showErrorDialogFragment(errorCode,this,2,this); else{ MapFragment frag=(MapFragment) getFragmentManager().findFragmentById(R.id.fragment1); googleMap=frag.getMap(); googleMap.setMyLocationEnabled(true);//開啟目前位置圖層 googleMap.setOnMyLocationChangeListener(this);//註冊位置改變事件 } public void onMyLocationChange(Location location) { LatLng latLng=new LatLng(location.getLatitude(), location.getLongitude()); CameraUpdate update=CameraUpdateFactory.newLatLng(latLng); googleMap.animateCamera(update);//移動地圖中心點到目前位置 MarkerOptions options=new MarkerOptions();//產生標記 options.position(latLng); options.title("標記"); options.snippet(latLng.toString()); BitmapDescriptor bitmapdsr=BitmapDescriptorFactory.defaultMarker( BitmapDescriptorFactory.HUE_GREEN); options.icon(bitmapdsr); Marker marker=googleMap.addMarker(options);//加入標記 Toast.makeText(this, "目前位置改變", Toast.LENGTH_LONG).show(); public void onCancel(DialogInterface arg0) { finish(); Note:若在模擬器(需Google APIs 4.2以上)上執行,透過Emulator Control發送GPS位置資訊到模擬器中,需將模擬器的設定(Settings)定位(Location)模式(Mode)改為高精確度(High Accuracy)