地图_Android SDK_开发指南
(完整版)ArcGIS Runtime SDK for Android开发入门

保存地图至Portal
前提
• Map必须处于Loaded状态 • 要保存的Layer必须处于Loaded状态 • 被授权连接至Portal
参考资料
ArcGIS runtime SDK
https:///android/latest
ArcGIS runtime samples android
27
地理分析:GeometryEngine
GeometryEngine用于进行常规的几何分析
area
intersects
touches
。。。
buffer
labelPoint
union
clip
length
within
cut
overlaps
relate
densify
project
crosses
generalize
• 几何 • 属性
2 在线和离线
• ServiceFeatureTable • GeodatabaseFeatureTable
23
概述
构建FeatureTable 交互事件获取要素
编辑操作
提交编辑内容
Add Update
Delete
24
地图数据的查询和分析
25
查询1:利用Query属性查询
目标:对地图服务中的单个图层进行属性查询 步骤:
31
浅谈离线
32
离线数据源
1 栅格切片包 tpk 和矢量切片包vtpk
ArcGISTiledLayer, ArcGISVectorTiledLayer
2 Runtime geodatabase
Geodatabase, GeodatabaseFeatureTable, FeatureLayer
基于Android平台下基于百度地图API的地图导航设计毕业论文

本科毕业论文(设计)题目Android平台下基于百度地图API的地图导航设计专业电子信息科学与技术作者姓名刘茂强学号**********单位物理科学与信息工程学院指导教师郎丰法2014 年 05月教务处编原创性声明本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。
除文中已经引用的内容外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。
对本文的研究作出重要贡献的个人和集体,均在文中以明确的方式表明。
本人承担本声明的相应责任。
学位论文作者签名:日期:指导教师签名:日期:目录前言 (9)1.绪论 (10)1.1 背景及意义 (10)1.2 研究现状 (10)1.3 研究课题主要内容 (11)1.3.1 地点搜索和位置定位 (11)1.3.2 附近搜索 (11)1.3.3 路线规划 (11)1.3.4 公交线路查询 (11)1.3.5 GPS导航 (11)1.4 论文结构 (11)2.Android平台与开发环境 (13)2.1 Android系统 (13)2.1.1 后缀简介 (13)2.1.2 应用组件 (13)2.1.3 系统运行库 (14)2.2 Eclipse (14)2.2.1 基本介绍 (14)2.2.2 主要组成 (15)2.2.3 软件开发包 (15)2.3 Android开发环境搭建 (15)3.相关配置和框架结构 (16)3.1 工程配置 (16)3.1.1 Android SDK的配置 (16)3.1.2 定位SDK的配置 (16)3.1.3 导航SDK的配置 (16)3.2 密钥申请 (17)3.2.1 密钥简介 (17)3.2.2 申请步骤 (17)3.3 配置AndroidManisfet.xml (19)3.3.1权限配置 (19)3.3.2 添加对应的开发密钥 (19)3.3.3 声明service组件 (19)3.4 程序结构 (19)4.主页面设计 (21)4.1 基本配置 (21)4.1.1 配置main.xml (21)4.1.2 配置AndroidManifest.xml (21)4.2 MainActivity代码设计 (21)4.2.1创建地图MainActivity,并import相关类 (22)4.2.2 MainActivity变量定义 (22)4.2.3 MainActivity主要变量初始化 (22)4.2.4 各控件设置 (22)4.2.5 选择菜单 (23)4.2.6 搜索事件处理 (24)4.2.7 定位事件处理 (25)5.附近搜索设计 (26)5.1 基本配置 (26)5.1.1 配置near.xml (26)5.1.2 AndroidManifest.xml (26)5.2 NearActivity代码设计 (26)5.2.1 创建地图NearActivity,并import相关类 (26)5.2.2 NearActivity变量定义 (26)5.2.3 NearActivity主要变量初始化 (27)5.2.4 各控件设置 (27)5.2.5 事件处理 (27)6.路线规划设计 (29)6.1 基本配置 (29)6.1.1 配置way.xml (29)6.1.2 AndroidManifest.xml (29)6.2 WayActivity代码设计 (29)6.2.1 创建地图WayActivity,并import相关类 (29)6.2.2 WayActivity变量定义 (29)6.2.3 WayActivity主要变量初始化 (30)6.2.4 各控件设置 (30)6.2.5 搜索结果处理 (31)6.2.6 节点浏览 (31)7.公交查询设计 (34)7.1 基本配置 (34)7.1.1 配置bus.xml (34)7.1.2 AndroidManifest.xml (34)7.2 BusActivity代码设计 (34)7.2.1 创建地图BusActivity,并import相关类 (34)7.2.2 BusActivity变量定义 (35)7.2.3 WayActivity主要变量初始化 (35)7.2.4 各控件设置 (35)7.2.5 事件处理 (35)8.驾车导航设计 (38)8.1 基本配置 (38)8.1.1 配置navigation.xml (38)8.1.2 AndroidManifest.xml (38)8.2 NavigationActivity代码设计 (38)8.2.1 创建地图NavigationActivity,并import相关类 (38)8.2.2 NavigationActivity变量定义 (39)8.2.3 NavigationActivity主要变量初始化 (39)8.2.4 设置单击事件 (39)总结 (42)致谢 (43)参考文献 (44)附录 (45)摘要在近年来移动设备智能化、轻便化的趋势下,地图导航已经成为人们出行必不可少的工具,给人们的生活带来了极大的便利。
百度地图定位开发——Android地图sdk开发

百度地图定位开发——Android地图sdk开发百度地图Android定位SDK是为Android移动端应⽤提供的⼀套简单易⽤的定位服务接⼝,专注于为⼴⼤开发者提供最好的综合定位服务。
通过使⽤百度定位SDK,开发者可以轻松为应⽤程序实现智能、精准、⾼效的定位功能。
打开百度地图sdk开发,输⼊应⽤名称这⾥需要输⼊SHA1,具体寻找SHA1过程可以参考官⽅的⽂档创建成功后,下载官⽅的jar包,将解压后的所有⽂件添加到申请AK时使⽤的项⽬⽂件中的lib⽬录中。
然后在app⽬录下的build.gradle⽂件中android块中配置sourceSets标签,内容如下:sourceSets {main {jniLibs.srcDir 'libs'}}此时就能将部分⽬录添加到项⽬视图中,现在需要将jar⽂件添加到项⽬视图中。
在app⽬录的build.gradle的dependencies块中添加以下代码,然后右键⽬标jar⽂件,选择Add as library,就能将其加⼊到项⽬视图中。
implementation files('libs\\BaiduLBS_Android.jar')然后打开AndroidManifest.xml⽂件,在<application>中加⼊如下代码配置开发密钥AK,并且根据官⽅⽂档,添加权限显⽰地图我们在xml⽂件的代码中直接输⼊<com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="411dp"android:layout_height="662dp"android:clickable="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:ignore="MissingClass" />然后我们需要初始化地图,创建⼀个activitypackage com.example.zty_map;import androidx.appcompat.app.AppCompatActivity;import android.app.Application;import android.os.Bundle;import com.baidu.mapapi.CoordType;import com.baidu.mapapi.SDKInitializer;public class MAPZTY1 extends Application {@Overridepublic void onCreate() {super.onCreate();//在使⽤SDK各组件之前初始化context信息,传⼊ApplicationContextSDKInitializer.initialize(this);//⾃4.3.0起,百度地图SDK所有接⼝均⽀持百度坐标和国测局坐标,⽤此⽅法设置您使⽤的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
如何进行Android应用的离线地图和导航开发(六)

Android应用的离线地图和导航开发随着智能手机的普及和GPS定位技术的发展,移动导航已经成为我们生活中不可或缺的一部分。
然而,移动导航依赖于互联网连接,这在某些情况下会带来困扰,比如在地下车库、山区或网络信号弱的地方。
为了解决这个问题,开发者可以考虑使用离线地图和导航技术来开发Android应用。
本文将介绍如何进行Android应用的离线地图和导航开发。
一、选择地图SDK在进行离线地图和导航开发前,首先需要选择一款适合的地图SDK。
目前市面上有许多知名的地图SDK供开发者选择,如百度地图、高德地图和谷歌地图等。
开发者可以根据自己的需求和应用场景选择合适的地图SDK。
二、地图数据下载和加载离线地图开发的核心就是将地图数据下载到本地,并在没有网络连接的情况下加载和显示地图。
开发者可以通过SDK提供的API来实现地图数据的下载和加载功能。
一般地图数据分为矢量地图数据和栅格地图数据两种格式,开发者可以根据地图SDK的要求选择相应的数据格式。
三、导航算法和路径规划离线导航的关键是实现导航算法和路径规划。
导航算法是指根据起点和终点的位置,计算出最优的导航路径的算法。
路径规划是指根据地图数据和导航算法,选择最佳的路径来实现导航。
开发者可以使用SDK提供的导航算法和路径规划API来实现导航功能。
四、地图显示和用户交互离线地图的显示是通过地图SDK提供的地图控件来实现的。
开发者需要将下载的地图数据加载到地图控件中,并根据用户的操作进行地图的缩放、平移和旋转等操作。
同时,开发者还可以通过地图SDK提供的API实现一些附加功能,如地图标记、地图搜索和周边兴趣点等。
五、地图更新和缓存管理地图数据的更新是离线地图开发中需要考虑的一个问题。
开发者需要设计合理的缓存管理策略,及时更新地图数据,保证用户使用最新的离线地图。
同时,为了避免地图数据的过度占用存储空间,开发者还可以根据实际情况设置缓存大小和清理策略。
六、优化和性能调优在实际的离线地图和导航开发过程中,开发者还需要考虑一些性能优化的问题。
ANDROID地图SDK

一、Android地图SDK概述1.Android 地图SDK v3.7.3百度地图Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。
您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
2.功能介绍1)地图(1)地图展示包括:普通地图(2D,3D)、卫星图和实时交通图(2)地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。
2)POI检索(1)周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行POI检索;(2)区域检索:在指定矩形区域内、根据关键词进行POI检索;(3)城市内检索:在某一城市内,根据用户输入的关键字进行POI检索;(4)POI详情检索:根据POI的ID信息,检索该兴趣点的详情。
3)地理编码(1)正向地理编码:实现了将中文地址或地名描述转换为地球表面上相应位置的功能;(2)反向地理编码:将地球表面的地址坐标转换为标准地址的过程。
4)线路规划(1)公交信息查询:可对公交详细信息进行查询;(2)公交换乘查询:根据起、终点,查询策略,进行线路规划方案;(3)驾车线路规划:提供不同策略,规划驾车路线;(支持设置途经点)(4)步行路径检索:支持步行路径的规划。
(5)骑行路径检索:支持跨城骑行路径规划。
5)地图覆盖物百度地图SDK支持多种地图覆盖物,帮助您展示更丰富的地图。
目前所支持的地图覆盖物有:定位图层、地图标注(Marker)、几何图形(点、折线、弧线、多边形等)、地形图图层、POI检索结果覆盖物、线路规划结果覆盖物、热力图图层、瓦片图层等。
6)定位采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
7)离线地图用户可以通过SDK在线下载离线包接口,下载离线地图包,使用离线地图可节省用户流量,提供更好的地图展示效果。
移动应用开发中的地图与导航SDK选择

移动应用开发中的地图与导航SDK选择随着智能手机和移动应用的普及,地图与导航功能成为了现代人生活中不可或缺的一部分。
无论是在旅游、出行还是日常生活中,我们都离不开地图导航来提供准确的定位和导航服务。
对于开发人员来说,选择合适的地图与导航SDK是开发高质量应用的关键一步。
在移动应用开发中,地图与导航SDK可以帮助开发人员实现地图的显示、定位信息的获取以及路径规划等功能。
选择合适的SDK对于应用的用户体验和开发效率都十分重要。
下面将重点讨论移动应用开发中地图与导航SDK选择的相关因素。
首先,一个好的地图与导航SDK需要提供准确的地图数据和可靠的导航功能。
地图数据的准确性直接影响着应用的可用性和用户体验。
因此,选择具备高质量地图数据的SDK是非常重要的。
此外,导航功能的准确性也是用户非常关注的。
能够准确识别道路、提供实时交通信息以及灵活适应各种路况的导航功能将极大地提升用户的出行体验。
其次,SDK的易用性与文档的完善度也是选择的重要因素。
开发人员希望能够快速上手,并能够轻松地集成到自己的应用中。
因此,选择提供简洁、清晰的接口和文档完善的SDK将大大降低开发难度。
一份好的文档可以解决许多开发过程中的疑问,提供使用示例和详细说明,从而加快开发速度。
此外,SDK的性能和稳定性也是选择的重要考量。
一个高性能的SDK能够提供流畅的地图显示和响应快速的导航服务,为用户提供良好的交互体验。
而稳定性则是保证应用正常运行的基础。
选择具有高度稳定性和优化性能的SDK能够减少应用崩溃和卡顿的概率,提升应用整体的质量。
不同的应用需求对地图与导航SDK的选择也有一定的差异。
例如,一些应用可能更注重定位功能的精确度,而另一些应用可能更关注路径规划算法的高效性。
因此,在选择SDK时,开发人员需要综合考虑自己的应用需求和SDK的特点,选择最适合自己的SDK。
除了以上因素外,还可以考虑一些其他因素,例如SDK的价格、开发商的声誉以及技术支持等等。
android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)

android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)2013-10-11 07:57:05 我来说两句作者:ab6326795一、吐槽在百度地图看了几个小时的教程,发现种种问题,很大部分是百度对于定位API 网页上的DEMO代码一大堆错误!这极可能是定位SDK升级后而网页上的DEMO部分代码沿用旧版导致的。
错误1:在该示例中取了个变量叫mLocationClient,后面居然叫mLocClient,我找了半天,说这变量哪来的呢错误2:这个错误是最致命的,在网页上的DEMO(开发指南)里居然连开始定位这个函数至始至终都没调用过!!!新手咋看以为调用这个就可以定位了,擦,其实还应该调用mLocClient.start(); 才行,否则压根就没启动定位。
二、使用百度地图V2.2和定位V4.0实现地图和定位功能1、首先将必要的库文件导入到你的项目里,具体参看这里/map/sdkandev-2.htm/map/geosdk-android-developv4.0.htm2、编写代码(MainActivity.java)package com.android.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.map.LocationData;import com.baidu.mapapi.map.MapController;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationOverlay;import api.basestruct.GeoPoint;public class MainActivity extends Activity {//百度Keyprivate static final String BD_KEY="请在这里输入你的百度地图Key,这里我删除了我自己的,你自己填";//地图管理器private BMapManager mBMapMan=null;//地图视图private MapView mMapView=null;private LocationClient mLocationClient=null;//我的位置覆盖物private MyLocationOverlay myOverlay;//位置在图层中的索引private int myOverlayIndex=0;//是否定位到我的位置private boolean bmyLocal=true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication());mBMapMan.init(BD_KEY, null);setContentView(yout.activity_main);//注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(yout.activity_main);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapController mMapController=mMapView.getController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别////////////////////////定位功能代码开始mLocationClient=new LocationClient(this);mLocationClient.setAK(BD_KEY);myOverlay=new MyLocationOverlay(mMapView);LocationClientOption option=new LocationClientOption();option.setOpenGps(true);option.setAddrType("all");//返回的定位结果包含地址信息option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02//当不设此项,或者所设的整数值小于1000(ms)时,采用一次定位模式。
百度定位SDKV3.30的使用

百度定位SKDV3.30的使用一.获取key值Android SDK安全码组成:数字签名+;+包名。
(查看详细配置方法,百度地图API)二.配置key值打开AndoidManifest.xml文件<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="SBjTxSzNLj1Xl2wMOm6rbBZW"/> //key值</application>三.配置权限<uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"> </uses-permission><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"> </uses-permission><uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission><!-- <uses-permissionandroid:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permissionandroid:name="uncher.permission.READ_SETTINGS"/> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_GPS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.READ_SMS"/><uses-permission android:name="android.permission.SEND_SMS"/><!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --><uses-permission android:name="android.permission.GET_TASKS"/><uses-permission android:name="android.permission.CAMERA"></uses-permission><uses-permission android:name="android.permission.RECORD_AUDIO"> </uses-permission><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission><uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS"/> <!-- 来电消音 --><uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"> </uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/><supports-screens android:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:resizeable="true"android:anyDensity="true"/><!-- 添加屏幕支持 -->四.activity_main.xml文件的配置<RelativeLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.newmap.MainActivity" ><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"/></RelativeLayout>五.配置jar包从百度地图里下载jar包,连带armebi文件夹里的内容一起放进项目里的libs包里,然后build path 把百度jar包添加进来六.使用百度地图,先要初始化百度地图SDKSDKInitializer.initialize(getApplicationContext());// 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContextsetContentView(yout.activity_main); //布局文件要SDKInitializer初始化之后,否则不能加载布局文件,闪退七.初始化地图引擎管理类,监听输入的key值得正确性bMapManager.init(new MKGeneralListener(){ //监听key是否正确@Overridepublic void onGetPermissionState(int arg0) {// TODO Auto-generated method stubSystem.out.println(arg0);if (arg0==300) {System.out.println("key值错误!请检查! ");}System.out.println("key值正确! ");}});八.初始化地图// 地图初始化mMapView = (MapView) findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();@Overrideprotected void onPause() {mMapView.onPause();super.onPause();}@Overrideprotected void onResume() {mMapView.onResume();super.onResume();}@Overrideprotected void onDestroy() {// 退出时销毁定位mLocClient.stop();// 关闭定位图层mBaiduMap.setMyLocationEnabled(false);mMapView.onDestroy();mMapView = null;super.onDestroy();}九.配置定位// 开启定位图层mBaiduMap.setMyLocationEnabled(true);// 定位初始化mLocClient = new LocationClient(this);LocationClientOption option = newLocationClientOption();option.setOpenGps(true);// 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(3000);mLocClient.setLocOption(option);//配置定位mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.button_j_01);//自定义小图标mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, mCurrentMarker));mLocClient.registerLocationListener(newBDLocationListener(){十.开启监听定位mLocClient.registerLocationListener(new BDLocationListener(){@Overridepublic void onReceiveLocation(BDLocation location) { }});以上就是百度地图SDK的使用步骤,下面贴出文件具体的代码AndroidManifest.xml<?xml version="1.0"encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.newmap"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="21"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="SBjTxSzNLj1Xl2wMOm6rbBZW"/><activityandroid:name=".MainActivity"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden"android:screenOrientation="portrait"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="UNCHER" /></intent-filter></activity><serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote"></service></application><uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"> </uses-permission><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"> </uses-permission><uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission><!-- <uses-permissionandroid:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permissionandroid:name="uncher.permission.READ_SETTINGS"/> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_GPS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_CONTACTS"/><uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.READ_SMS"/><uses-permission android:name="android.permission.SEND_SMS"/><!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --><uses-permission android:name="android.permission.GET_TASKS"/><uses-permission android:name="android.permission.CAMERA"></uses-permission><uses-permission android:name="android.permission.RECORD_AUDIO"> </uses-permission><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission><uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS"/> <!-- 来电消音 --><uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"> </uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/><supports-screens android:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:resizeable="true"android:anyDensity="true"/><!-- 添加屏幕支持 --></manifest>activity_main.xml<RelativeLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.newmap.MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"/></RelativeLayout>MainActivity.javapackage com.example.newmap;import com.baidu.lbsapi.BMapManager;import com.baidu.lbsapi.MKGeneralListener;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationConfiguration;import com.baidu.mapapi.map.MyLocationData;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.WindowManager;import android.widget.ZoomControls;public class MainActivity extends Activity {//地图基本控件private MapView mMapView;private BaiduMap mBaiduMap;private BMapManager bMapManager;//地图定位private LocationClientOption option;private LocationClient mLocClient;//自定义图片BitmapDescriptor mCurrentMarker;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 在使用SDK 各组间之前初始化context 信息,传入ApplicationContextSDKInitializer.initialize(getApplicationContext());bMapManager=new BMapManager(getApplicationContext());bMapManager.init(new MKGeneralListener(){ //监听key是否正确@Overridepublic void onGetPermissionState(int arg0) {// TODO Auto-generated method stubSystem.out.println(arg0);if (arg0==300) {System.out.println("key值错误!请检查!");}System.out.println("key值正确!");}});//布局文件要在SDKInitializer初始化之后,否则不能加载setContentView(yout.activity_main);// 地图初始化mMapView = (MapView) findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();// 开启定位图层mBaiduMap.setMyLocationEnabled(true);// 定位初始化mLocClient = new LocationClient(this);LocationClientOption option = new LocationClientOption();option.setOpenGps(true);// 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(3000);mLocClient.setLocOption(option);//配置定位mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.button_j_01);//自定义小图标mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true,mCurrentMarker));mLocClient.registerLocationListener(new BDLocationListener(){@Overridepublic void onReceiveLocation(BDLocation location) {// TODO Auto-generated method stub// map view 销毁后不在处理新接收的位置if (location == null || mMapView == null)return;MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(100).latitude(location.getLatitude()).longitude(location.getLongitude()).build();mBaiduMap.setMyLocationData(locData);mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.button_j_01);//自定义小图标mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(MyLocationConfiguration.LocationMode.FOLLOWING, true, mCurrentMarker));System.out.println("58955");System.out.println(location);System.out.println(location.getLatitude());System.out.println(location.getLongitude());System.out.println(location.getRadius());System.out.println(location.getSatelliteNumber());}});mLocClient.start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overrideprotected void onPause() {mMapView.onPause();super.onPause();}@Overrideprotected void onResume() {mMapView.onResume();super.onResume();}@Overrideprotected void onDestroy() {// 退出时销毁定位mLocClient.stop();// 关闭定位图层mBaiduMap.setMyLocationEnabled(false);mMapView.onDestroy();mMapView = null;super.onDestroy();}}定位的最终的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android平台开发环境搭建
运行Hello World项目
在HelloWorld上点右键,Run As->Android Application,接下来选 择刚刚创建的AVD,确定,第一次启动可能需要几分钟,请耐心等待:
高德地图Android SDK
简介
高德地图 Android SDK 版是一套简单的地图应用开发调用接口,可支 持地图显示与操作,兴趣点搜索,地理编码、离线地图等功能。开发者可 以轻松地将其嵌入自己的应用程序,并使用相关的地图功能。从 Android SDK 2.0.0 版开始,地图显示与搜索服务分为两个独立的类库,开发者可以 单独加载任意一个,3D矢量地图包与2D栅格地图包任选其一使用。 地图 API 的服务是免费的,任何非盈利性网站均可使用。您需要先申 请Key,才能使用该服务。请参阅《高德地图 API 使用条款》获得详细信 息。
Android平台开发环境搭建
创建Hello World项目
点击File -> New -> Android Application Project:
Android平台开发环境搭建
创建Hello World项目
填好应用名称和相应信息,包名一定要唯一,否则就被认为是同一个 程序。目标版本是兼容最高的版本。点击Next:
Android平台开发环境搭建
Android SDK安装
双击之前下载的installer_r22.0.1-windows.exe,选择安装目录, 直到完成。
Android SDK Manager,如下图,勾选Android SDK platform-tools和Android SDK Build-tools,Android 4.2.2文件夹, Extras下的Android Support Library。
42.8%,首度超越iOS。
Android平台开发环境搭建
工具准备
• JDK下载:
/technetwork/java/javase/downloads/index.html
• Eclipse:
/downloads/
开发示例
地图显示
示例代码如下(详细信息,请参考示例工程“基础地图”案例): 显示3D 地图时,布局文件(res/layout/basicmap_activity.xml):
/** * AMapV2地图中介绍如何使用mapview显示地图 */ public class BasicMapActivity extends Activity { private MapView mapView; private AMap aMap;
到此,配置工作就完成了。
开发示例
地图显示
地图显示的关键类是 AMap 类。在您的应用程序中,AMap 是地图的 对象。AMap 地图将会通过 MapFragment 或 MapView 容器类来表现。 AMap 类自动处理以下操作: 1. 连接到高德地图服务 2. 下载地图数据 3. 在设备屏幕上显示地图 4. 显示各种控件,如缩放控件 5. 支持各种手势,如平移和缩放手势
Android平台开发环境搭建
Android SDK安装
然后点击Install 12 Packages,选择接受许可,安装。(注:安装时间 有点长)。
Android平台开发环境搭建
Android SDK安装
添加环境变量,计算机->属性->高级系统设置->环境变量->系统变 量->新建变量名:ANDROID_SDK_HOME,添加SDK目录的路径。如下:
高德地图Android SDK
配置工程
高德地图 Android SDK 版是一套简单的地图应用开发调用接口,可支 持地图显示与操作,兴趣点搜索,地理编码、离线地图等功能。开发者可 以轻松地将其嵌入自己的应用程序,并使用相关的地图功能。从 Android SDK 2.0.0 版开始,地图显示与搜索服务分为两个独立的类库,开发者可以 单独加载任意一个,3D矢量地图包与2D栅格地图包任选其一使用。 地图 API 的服务是免费的,任何非盈利性网站均可使用。您需要先申 请Key,才能使用该服务。请参阅《高德地图 API 使用条款》获得详细信 息。
Android平台开发环境搭建
ADT配置
打开Eclipse,点击Help->Install new Software,然后Add->Archive-> 找到我们下载好的ADT-22.0.1.zip,同时给个名称,如ADT Plugin,如下图:
确定之后,勾选Developer Tools,下一步,完成安装,重启Eclipse。
高德LBS开放平台
高德地图API是一套应用程序接口。通过API,您可以轻松地 在自己的应用中定制强大、快速、轻便的地图功能。任何非盈利 性网站均可免费使用。
合作伙伴:
Android平台简介
Android是一种基于Linux的自由及开放源代码的操作系统,主 要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机 联盟领导及开发。下面是其发展历程:
• Android SDK:
/sdk/index.html
• ADT下载:
/sdk/installing/installing-adt.html
Android平台开发环境搭建
JDK安装
Android平台开发环境搭建
创建Hello World项目
点击Finish,一个项目创建完成。完成后,Project Explorer窗口有了 一个HelloWorld的项目。
src:源文件,java代码。 asserts:资源文件,图片、音频、视频 等。 bin:二进制文件,编译后的文件。 libs:第三方的jar文件,即引用第三方 的代码。 res:也是资源文件,与assets不同,生 成的文件都有ID。
Android平台开发环境搭建
Android SDK配置
重启后会提示配置SDK的位置,Window->Preferences->Android, 配置SDK Location为Android SDK的安装目录,OK。
Hello World
创建一个AVD
AVD(Android Virtual Device)就 是Android应用程序运行的虚拟设备。建 立的Android应用要运行,必须创建AVD, 每个AVD上可以配置很多的运行项目。 点击工具栏上的类似手机的一个小按 钮,弹出对话框,单击“New”,新建一 个设备(不同设备对应不同的分辨率),设 置参数,点击确定,新建成功。
高德地图Android SDK
申请Key
• 生成完密钥后,跳转到密钥管理界面,这样密钥就申请成功了,可以继 续申请新的密钥。
高德地图Android SDK
配置工程
• 从网站下载开发包并解压: 3D地图包解压后得到:3D地图显 示包“Android_Map_2.x.x.jar ”和 文件夹“ armeabi ”(以 V2.2.0为 例,含 - libamapv302.so 和 libmapv302ex.so 文件)。 • 开发工程中新建“ libs ”文件夹: 将地图包(2D或3D)、搜索包拷 贝到 libs 的根目录下。若选择3D地 图包,还需要将“ armeabi ”文件 夹一起拷贝。拷贝完成后的工程目录 (以3D V2.2.0为例)如图所示:
2005年8月由Google收购注资。 2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手 机联盟共同研发改良Android系统。 2008年10月,第一部Android智能手机发布。
2011年第一季度,市场份额首次超过塞班,跃居全球第一。
2013年09月,全世界Android系统的设备已经达到10亿台。 2014第一季度Android平台已占所有移动广告流量来源的
Android SDK开发指南
目录
高德LBS开放平台 Android平台简介 高德地图SDK有哪些功能
高德LBS开放平台
什么是LBS?
基于位置的服务,是指通过电信移动运营商的无线电通讯
网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台 的支持下,为用户提供相应服务的一种增值业务。
功能
高德地图Android SDK
高德地图Android SDK
申请Key
• 打开网址:/key,注册账号登录,填写开发者信 息,完成,跳转到如下页面:
高德地图Android SDK
申请Key
• 单击免费申请密钥,填写应用名称,验证码,生成密钥。
JDK安装
添加环境变量,计算机->属性->高级系统设置->环境变量->系统变 量->Path->编辑添加JDK的bin目录的路径。如下:
Android平台开发环境搭建
Eclipse安装
将下载好的eclipse-jee-juno-SR2-win32-x86_64.zip解压即可,双 击eclipse文件夹下的eclipse.exe启动:
高德地图Android SDK
配置工程
添加用户 Key。在工程的“ AndroidManifest.xml ”文件如下代码中 添加您的用户 Key。
高德地图Android SDK
配置工程
添加权限。在工程的“ AndroidManifest.xml ”文件中进行添加。
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />