类似于 你是我的指南针芯片 google地图才是 这样的句子 !

查看: 4654|回复: 16
好消息!!!google地图可以用指南针了,更新了地图好用多了。
最近下载了最新的谷歌地图6.10.0版本奇迹的发现地图的指南针可以用了,不骗大家,图标也好看多了。
新版的Google 地图很不错,不用打开GPS也能识别当前方位,此精简包不打开GPS也可以用GPRS进行基站定位已集成完整的谷歌地图服务!
安装非常简单改限权放进APP文件夹里面即可。
2__1[1].jpg (36.21 KB, 下载次数: 2)
23:56 上传
(8.35 MB, 下载次数: 56)
00:00 上传
点击文件名下载附件
尽量回帖给有需要的人。
[1].jpg (106.59 KB, 下载次数: 3)
00:03 上传
谢谢。。。。。。沙发。。。。。。
ID碉堡了。。。。。
我下载的安装版怎么只有6M多?
我是来看id的`~
楼主ID还没写完把,还有一句&&我留在安极
虽然用了很久了但还是顶一下。
如果再能语音导航就好了
有语音导航25.0Mv9.48.233.7Mv1.5.239.1Mv9.7.553.0Mv8.0.2.207918.7Mv7.6.219.4Mv2.0.06.2Mv1.03.0318.2Mv1.4.0
软件介绍软件截图相关下载网友评论下载地址
奥维互动地图软件截图
奥维互动地图相关版本
奥维互动地图多平台下载
奥维互动地图 v6.5.1
奥维互动地图电脑版 v6.1.2官方最新版
版本:v1.2.1007大小:45M分类:系统工具版本:v3.66大小:8.3M分类:生活服务版本:v1.0大小:15M分类:健康医疗
奥维互动地图相关文章
湖北孝感联通 PC6网友 发表于:
测绘专用
甘肃兰州兰州大学无线校园项目 PC6网友 发表于:
非常好的东西。一点小问题,希望可以修改:手机版放大的时候是关闭、再打开的,不能像google earth一样直接缩放~
甘肃兰州兰州大学无线校园项目 PC6网友 发表于:
手机版很好用,但电脑版总提示有病毒,需要清理,么办法用啊
广西南宁电信 PC6网友 发表于:
广东广州电信 客人 发表于:
手机离线地图软件
安卓地图软件
37.6Mv9.6.18.2Mv1.4.019.4Mv2.0.053.0Mv8.0.2.207939.1Mv9.7.517Mv2.019.4Mv2.0.017.9Mv4.7.15
奥维互动地图 v6.5.1欢迎您进入佐思产研
您当前的位置:
>>不仅仅是Google,您必须知道的全球十大地图API
不仅仅是Google,您必须知道的全球十大地图API
近日,API聚合网站ProgrammableWeb以受欢迎程度、潜在发展力、开发文档、易用性和功能性五个方面作为评判指标,整理出了十大地图API提供商。谷歌地图(Google &Maps)上个月,谷歌地图迎来了自己十周岁的生日;未来十年,谷歌地图仍然是电子地图领域无可争议的领导者。根据尼尔森(Nielsen)的调查数据,每个月使用谷歌手机地图的平均独立用户数量超过了7900万,而这仅仅是手机地图的用户数量,还不包括谷歌地图桌面端的用户数量,当然也没有把数十万使用谷歌地图API的第三方应用计算在内。实际上,谷歌地图提供了包括嵌入式API在内的各种各样的API,例如,Maps &Image &API、Places &API、Web &Services & API和谷歌地图 API &for &Work。谷歌提供了非常详细的API文档和示例代码、函数库、SDK以及其他电子地图工具。同时为了方便开发者能够找到适合自己应用的地图API,谷歌还提供了API选择器。谷歌依然在为地图服务不断添加功能和做出改进,这将帮助谷歌地图在未来继续成为电子地图领域的“王者”。必应地图(Bing &Maps)微软旗下的必应地图同样是一个非常受欢迎的地图平台,尽管与谷歌地图的巨大声望。相比,它还需要走一段很长的路才能企及。为了完善必应地图,微软也正在持续添加新的功能,就在不久前,微软宣布新增了数个城市的街景和高分辨率航空影像。同时,必应地图预览版还提供了三维城市数据。必应地图的文档同样非常详细和全面,虽然有些部分读起来让人费解。必应地图有很好的AJAX交互式SDK,准备了功能示例;还为开发者搭建JavaScript应用提供了代码片段。随着微软不断为必应地图平台添加更多的功能和特性,必应地图被开发者采用以及迎来全面普及应该会逐渐实现。OpenLayersOpenLayers是一个开源的JavaScript库,可以利用WebGL、Canvas &2D以及其他HTML5的特性在当今主流的Web浏览器中渲染地图。OpenLayers支持OpenStreetMap、MapQuest、Stamen、必应等多种来源的瓦片地图,同时也能对GeoJSON、TopoJSON、KML、GML等多种地理矢量数据进行渲染。OpenLayers的文档组织得非常好,为开发者提供了丰富的内容。OpenLayers官方网站包含了大量现场演示,在GitHub上也有相当数量可用的代码样例。OpenLayers是一个非常受欢迎的地图库,这要归功于其开源的特性,以及对其他平台瓦片地图的支持。FoursquareFoursquare & API可以对地址数据库、商户平台和场馆服务进行编程访问,许多开发者把场馆平台数据与自己的应用进行结合,然后将其作为应用程序的位置数据库。Foursquare &API的文档非常全面,和OpenLayers一样也是组织得非常好,有很多可用的客户端库。这些库并非由Foursquare自己创建的,而是由Foursquare &API社区成员创建和发布的。去年七月,Foursquare被拆分为两个独立的应用:Foursquare成为与Yelp类似的点评应用,而提供签到功能的应用则被重新命名为Swarm。目前来看,这两个应用做得都还不错,但如果要论及未来的发展,Foursquare和Foursquare & API的前途还是比较迷茫。OpenStreetMap(OSM)OSM主要是由数量庞大的志愿者团体完成的电子地图项目,用户可以免费创建和使用OSM的世界地图数据。有很多应用的地图都来自OSM的支持,例如Stamen的WaterColor,还有HitchWiki、OpenWeatherMap等。OSM &API并不是将地图嵌入到网页中,而是允许原始地理数据被检索和/或被存储到OSM的数据库。OSM & API的文档很全面,虽然所有的内容都以维基(wiki)页面的形式呈现。不过这也可以理解,因为OSM就是电子地图领域的“维基百科”。OSM用标签(tags)代表商业建筑、铁路等实体要素,并且每个标签都描述了地理属性。OSM还有很多地图要素,包括设施、建筑、公路、地名、商店和水路等。MapQuestMapQuest有数个电子地图产品可以选择,包括面向网站、移动端、本地化、企业和开发者等不同的产品。MapQuest平台有两种类型:授权的和开放的。授权数据平台需要企业版本的许可才能使用,而开放数据平台仅需要获得免费开放许可就能使用。需要提醒的是,MapQuest开放数据平台的主要数据来源是由OSM提供的。MapQuest有专门为开发者服务的网站页面,包括精心设计的文档、地图生成器、静态地图向导、路径规划器以及其他开发工具。此外,MapQuest还提供JavaScript地图API,Open &Web &Services套件,开放的Leaflet插件等等。MapQuest成立的时间可以回溯至1967年,这有些出乎意料,甚至比谷歌存在的历史还要长。早在谷歌地图出现的2005年之前,MapQuest就开始向公众提供电子地图服务了。MapQuest平台相当完善和可靠,目前已经有数百万的网站访问用户和移动应用用户。MapBoxMapBox提供了一系列电子地图工具,可以将自定义的地图快速便捷地添加到应用中。MapBox是一个开源的平台,用户在这里可以设计纹理、插图等不同风格的地图,自定义标记样式,同时还具备矢量瓦片、静态地图、地理编码等功能。目前,MapBox针对不同的用户群体准备了五种解决方案,从免费的入门级方案到大规模的企业级方案一应俱全。此外,MapBox面向教育领域还特别推出了解决方案。对于开发者而言,MapBox有API、SDK和其他开发工具可以选择;开发者能将动态地图和MapBox的技术与自己的应用结合。这个平台的特色功能是一种在线地图编辑工具,允许用户使用自己的数据快速建立自定义地图,支持导入的数据类型包括电子表格文件(CSV)、GeoJSON、KML、GPX。MapBox的API文档设计得同样精美,而且易于理解,当然,现场演示和代码示例也是不可或缺的,开发者可以在这些代码的基础之上开始构建自己的应用程序。相较于谷歌地图,成立于2010年的MapBox还略显生涩。他们一直在努力增加新的功能和令人着迷的特性,他们希望这样做能是其有别于其他的电子地图服务企业。CartoDB与MapBox一样,CartoDB也是开源的平台,可以进行制图、分析和可视化,允许开发者创建Web端和移动端的地理信息应用。虽然CartoDB成立的时间才不过三年(2012年4月成立),但它却赢得了一批诸如国家地理、NASA、英国卫报和Twitter等知名度颇高的用户。CartoDB也有好几种不同级别的解决方案,从免费的基础级方案直至功能强大的企业级方案都有覆盖到。CartoDB为开发者准备了JavaScript库(CartoDB.js)和一些API,这样开发者就能将漂亮的地图和地理可视化添加至自己的程序。CartoDB的地图编辑器有直观的拖放式交互界面,这样用户就能快速地创建地图,并进行数据可视化。无论是平台还是编辑器,CartoDB将它们的文档都做得非常通俗易懂。尽管CartoDB相对是个新建立的平台,但它的增长速度非常快。在CartoDB诸多功能中,最受欢迎的是被称为“Torque”的功能,它为可视化增加了动画效果,可以展示某个区域的数据随着时间变迁发生了什么变化。类似于Torque这样的特色功能,使CartoDB与其他的电子地图和地理信息平台有了明显的区别。Esri ArcGISEsri主要面向企业级市场,它提供了一套完整的GIS平台,包括基于云服务的制图平台,ArcGIS桌面版,CityEngine,和MapStudio等等。同时,Esri也开始关注商业GIS市场,为消费者提供了一款免费的GIS浏览工具:ArcGIS &Explorer &Desktop。Esri有一个专门面向开发者的门户,内容包括ArcGIS &API和SDK,开发文档,现场演示,代码示例等等。利用信用系统,Esri为非ArcGIS &Online订阅用户的开发者制定了独立的定价体系。不过,这个信用价格体系有时候会出现混乱,因此,用一个简单些的方法定价会更可取。最近,《财富》网站()的一篇文章称,全球有超过35万个组织使用了Esri的技术,其中有2/3来自世界财富500强企业。Esri看好商业领域的增长,其GIS应用在该领域每年的增长率达到了30%。Yahoo &BOSS PlaceFinder发布于2010年7月的Yahoo &BOSS &PlaceFinder &API支持应用以编程方式访问平台的高级地理编码Web服务,这项服务可以让开发者建立“位置感知”应用,实现的方式是借助街道地址或者地点名称,并将它们转换成地理坐标。PlaceFinder还可以执行反向地理编码,即将地理坐标转换成合适的街道地址或地点名称。PlaceFinder的API文档有足够的帮助信息,同时,快速启动页面也让开发者们能很容易地对API进行设置和使用。API的定价与每天的调用量有密切的关系,而且Yahoo允许开发者在自己的应用中通过Yahoo搜索广告获得收入。地理编码是一个基本功能,可以发现这篇文章中提及的几乎所有地图服务都提供这一功能。如今,面对众多可用的功能强大的电子地图平台,Yahoo的基础地理编码Web服务对于大多数开发者来说将不再有多少吸引力了。需要注意的是,ProgrammableWeb网站总结的十大地图API所依据的评判指标均是在本文发布前不久获得的。本文提供的使用参数、价格和其他产品信息在发布时都是准确的。
本内容仅供数据邦会员浏览
1.还没有注册?请&
2.如果已注册,请&
3.点击查看
您的付费会员已过期,请参照以下方式进行付费。
400-009-00503036人阅读
上回我们学习了如何搭建一个google map应用,了解了基础知识,下面我们来深入学习google map中待发掘的宝藏
在这篇文章,我将告诉你
1.&&&如何创建google地图
2.&&&Google地图 的模式,和地图类型
3.&&&Google地图上的控件使用
4.&&&Google地图的点击事件和其他事件
5.&&&摄像头移动知识
一.&地图对象
1.& 获得地图对象
A.&& 地图控件所在的fragment
在上一篇中,我们自动生成项目后,可以看到MapActivity和它的布局文件activityt_maps,布局文件中直接使用fragment控件作为根节点,然后在activity中使用findFragmentById获得地图fragment。这里有两种获得方法
(1)&&&&&&&&&&&使用xml文件
(2)&&&&&&&&&&&使用代码获得
mMapFragment= MapFragment.newInstance();
&FragmentTransaction fragmentTransaction =
& & & & &getFragmentManager().beginTransaction();
&fragmentTransaction.add(R.id.my_container, mMapFragment);
&&&&&&&&&& 注:Google Maps Android API 需要 API 级别 12 或更高级别,才能支持 MapFragment 对象。如果您的目标是低于 API级别 12 的应用,可通过
SupportMapFragment(v4包的) 类访问同一功能。 您还必须提供 Android 。
&&&&&&&& 注:这里可以使用的碎片有SupportMapFragment和MapFragment,前者支持api12以前的机型,后者不是
B.&& 给fragment注册地图就绪的接口
地图碎片所在的activity界面需要实现 监听接口,并重写onMapReady方法,该方法返回的GoogleMap对象就是我们要的地图对象。MapFragment对象注册这个监听,mapFragment.getMapAsync(this);
注:必须从主线程调用 getMapAsync(),回调将在主线程中执行。 如果用户设备上未安装 Google Play 服务,则用户安装 Play 服务后才会触发回调。
使用地图对象时的关键类是类。 GoogleMap 在您的应用内为地图对象建模。 在您的 UI 内,地图将由 MapFragment对象或 MapView 对象表示。
自动处理下列操作:
连接到 Google 地图服务下载地图图块。在设备屏幕上显示图块。显示如平移和缩放等各类控件。通过移动和缩放地图响应平移和缩放手势
除了这些自动操作外,您还可以通过该 API 的对象和方法控制地图的行为。 例如,具有可响应地图上点击动作和触摸手势的回调方法。 您还可以利用向提供的对象在地图上设置标记图标以及为其添加叠层。
MapFragment
是 Android
类的一个子类,用于在 AndroidFragment 中放置地图。 MapFragment对象充当地图容器,并提供对 GoogleMap 对象的访问权。
与 View 不同,Fragment 表示的是 Activity 中的一种行为或用户界面的某一部分。您可以将多个 Fragment 组合在一个 Activity 中来构建多窗格 UI,以及在多个 Activity 中重复使用某个 Fragment。请参阅有关的
Android 文档,以了解更多信息。
是 Android类的一个子类,
用于在 Android View 中放置地图。 View 表示屏幕的某个矩形区域, 是 Android 应用和小工具的基本构建基块。 MapView 与 MapFragment 很相似,它也充当地图容器,通过 GoogleMap 对象公开核心地图功能。
在完全交互模式下使用该 API 时,此类的用户必须将所有Activity 生命周期方法都转发给 MapView类中的相应方法。 举例来说,生命周期方法包括 onCreate()、onDestroy()、onResume() 和 onPause()。 在精简模式下使用该 API 时,转发生命周期事件为可选操作。如需了解详情,请参阅文档。
2.& 地图显示类型、
(1)&&&&&& 地图类型
获得地图对象之后你就可以设置地图的显示类型了
地图对象有如下显示类型:
&&& 典型道路地图。 显示道路、一些人造景观以及 河流等重要的自然景观。 此外,还会显示道路和 景观标签。
&&& 添加了道路地图的卫星照片数据。 此外,还会显示道路 和景观标签。
&&& 卫星照片数据。 不显示道路和景观标签。
&&& 地形数据。 地图包含颜色、轮廓线和标签以及 透视阴影。 此外,还会显示一些道路和标签。
无图块。 地图将渲染为空网格,不加载任何图块。
设置方法,调用
方法,传递
中定义的其中一个类型常量。
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
(2)&&&&&& 室内地图
如果地图对象的显示类型为none和satellite,那么将会在用户放大地图时显示室内地图,在用户缩小时自动隐藏。
下面概要列出了 API 中的室内地图功能:
&&& 您可以通过调用GoogleMap.setIndoorEnabled(false) 禁用室内地图。默认情况下,室内地图处于启用状态。 室内地图一次只能显示在一幅地图上。默认情况下,这是向您的应用添加的第一幅地图。 如果您想在其他地图上显示室内地图, 请在第一幅地图上禁用它们,然后在第二幅地图上调用setIndoorEnabled(true)。
&&& 如需禁用默认层级选取器(楼层选取器),请调用 GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(false)。 如需了解更多详情,请参阅与地图交互。
&& &GoogleMap 上的一个接口OnIndoorStateChangeListener
允许您设置在一栋新建筑获得焦点或者激活建筑内的新楼层时调用的侦听器。如需了解更多详情,请参阅与地图交互。
GoogleMap.getFocusedBuilding() 为您获取当前获得焦点的建筑。您随后可以通过调用IndoorBuilding.getActiveLevelIndex()
找到当前激活的楼层。请参阅参考文档, 以了解 IndoorBuilding 对象和 IndoorLevel 对象中提供的所有信息。
添加平面图
选择位置 中提供了室内地图(平面图)。如果您想在应用中突出显示的建筑没有平面图数据,您可以:
&&& 直接向 Google 地图添加平面图。这样做可以将您的平面图提供给 Google 地图的所有用户。
&&& 将平面图以底面叠层 或 图块叠层 形式显示在您的地图上。 这样一来,只有您的应用的用户才能查看平面图。
3.& 配置初始状态
意思就是配置地图初次加载出来的属性,有以下几点:
摄像头位置,包括:位置、缩放比例、方位和倾斜角度。 请参阅,了解有关摄像头定位的更多详情。地图类型缩放按钮和/或指南针是否出现在屏幕上用户在操纵摄像头时可使用的手势是否启用了。 精简模式地图是指地图的一种位图图像, 它支持完整 API 提供的一部分功能。
有两种方式来配置地图的初始化属性,一是xml,二是代码,和MapFragment的创建类似,也是这两种。
(1)&&&&&配置xml文件
A.&& 添加自定义属性命名空间
Maps API 为 MapFragment 或MapView 定义了一组自定义 XML 属性,
&&&&&&&&&&&&&&& xmlns:map=&/apk/res-auto&
map是命名空间,可以自定义取名,注意现在引用自定义属性AS并不是使用包名了,是res-auto
B.&& 可用的属性
mapType。 它用于指定要显示的地图类型。 有效 值包括 none、normal、hybrid、satellite 和
terrain。cameraTargetLat、cameraTargetLng、cameraZoom、cameraBearing、
cameraTilt。 它们用于指定摄像头的初始位置。 uiZoomControls、uiCompass。 它们用于指定您是否希望将缩放控件和指南针出现在地图上。uiZoomGestures、uiScrollGestures、uiRotateGestures、uiTiltGestures。 它们用于指定在与地图交互时启用/禁用的手势。zOrderOnTop。 控制地图视图的表面是否覆盖在其窗口上。请注意,如果指定此属性,将会覆盖所有其他可能出现在地图上的视图(例如缩放控件、my location 按钮)。useViewLifecycle。 只对 MapFragment 有效。 此属性指定是否应将地图的生命周期与 Fragment 的视图或 Fragment 本身关联。liteMode。 值 true 会将地图设置为。 精简模式地图是指地图的一种位图图像,它支持完整 API 提供的一部分功能。 该属性的默认值 为
Xml代码例子如下
&fragment xmlns:android=&/apk/res/android&
& xmlns:map=&/apk/res-auto&
& android:name=&com.google.android.gms.maps.MapFragment&
& android:id=&@+id/map&
& android:layout_width=&match_parent&
& android:layout_height=&match_parent&
& map:cameraBearing=&112.5&
& map:cameraTargetLat=&-33.796923&
& map:cameraTargetLng=&150.922433&
& map:cameraTilt=&30&
& map:cameraZoom=&13&
& map:mapType=&normal&
& map:uiCompass=&false&
& map:uiRotateGestures=&true&
& map:uiScrollGestures=&false&
& map:uiTiltGestures=&true&
& map:uiZoomControls=&false&
& map:uiZoomGestures=&true&/&
注:如果您使用的是 Google Maps Mobile SDK for Work(是专为移动端定制的),则必须为每个属性添加 m4b_ 前缀。例如,在指定地图类型属性时,请使用
m4b_mapType 而非 mapType。 或者,在指定缩放控件时使用 m4b_uiZoomControls 而非
uiZoomControls,依此类推。
(1)&&&&&代码方式
首先你需要创建GoogleMapOptions对象
GoogleMapOptionsgmo = new GoogleMapOptions();
然后通过该对象设置属性,可设置的属性和xml文件的相同,例如
gmo.mapType(GoogleMap.MAP_TYPE_SATELLITE)
&&&.compassEnabled(false)
&&&.rotateGesturesEnabled(false)
.tiltGesturesEnabled(false);
然后在你获取MapFragment或者MapView实例时在getInstance()的括号中传入GoogleMapOptions对象。
如果您使用的是 MapFragment,请使用 MapFragment.newInstance(GoogleMapOptions options) 静态出厂方法构建 Fragment 并传入您的自定义配置选项如果您使用的是 MapView,请使用 MapView(Context, GoogleMapOptions) 构造函数并传入您的自定义配置选项
4.& 地图内边距
第一次看这个还有点没看懂,多看了几遍才懂了,
GoogleMap.setPadding(left,top,right,bottom),设置内部区域的padding值,设置这个不会影响地图的显示,地图仍然充满整个屏幕,那我就纳闷儿,到底是干啥用的,为啥需要内边距,后来我知道了,由于google地图自带一些空间在屏幕边缘,还有他的公司徽标,我们需要设置内边距来让我们自己的控件不与之重合(他的控件在内部区域,我们的在padding设置的距离之间),重合了小心它告你侵权。
二.&精简模式
1.& 设置精简模式
可在xml中设置,也可以在代码中的GoogleMapOptions设置
(1)&&&&&xml中设置
§ map:liteMode=&true&
(2)&&&&&代码中
·&&&&&&&& GoogleMapOptions options = new GoogleMapOptions().liteMode(true);
2.精简模式和map的生命周期
如果你要使用完全交互式的地图,你应该在activity的生命周期各个回调中也绑定地图的生命周期。生命周期方法包括 onCreate()、onDestroy()、onResume() 和 onPause();
在精简模式下使用 MapView 时,绑定生命周期可做可不做,但下列情况除外:
必须调用 onCreate(),否则将不会出现任何地图。如果您想在精简模式地图上显示 My Location 圆点并使用默认位置来源,则需要调用 onResume() 和 onPause(),因为位置来源只会在这些调用的间隔期进行更新。如果您使用自己的位置来源,则不必调用这两个方法。
3.精简模式下的地图支持的api(除开以下,其他api的功能全部支持)
(1)标记 && :支持部分
(2)摄像头位置、缩放比例和动画 &&& :支持部分
(3)地图事件 && :支持部分
(4)室内地图和建筑 &&&& :不支持
(5)Traffic 层 & &:不支持
(6)底面叠层 && :不支持
(7)图块叠层 && :不支持
(8)手势 && &&:不支持
(9)Street View &&&&& :不支持
(10)自定义样式 &&& &:不支持
三.&StreetView
Google Street View 提供其整个覆盖区域内以指定道路为中心的 360 度全景视图。这里创建StreetViewPanoramaView或者StreetViewPanoramaFragment和创建map时类似,可以用xml方式,也可以用代码方式,只是全景图不支持xml定义初始化的属性,由于我自己的当前不用这个功能,这部分知识以后找机会补充上。
四.&AndroidWear上运用google 地图
目前国内Android的穿戴设备还没正式兴起,反正不要和时代趋势作对就行了
五.&从其他应用用Intent调用Google地图
Google地图也对其他应用提供接口,可以通过Intent打开相应的google map的对应activity,这种方式方便并非开发地图应用但是又需要地图功能的应用程序,如果是需要嵌入完整地图功能的应用程序,则无需使用Intent方式,很明显,我目前就不用,以后再补充
六.&控件和手势
地图中有很多控件,例如指南针,放大缩小等控件,你可以通过UiSettings对象来操作这些控件,获取该对象的方式是
GoogleMap googleM
UiSettings settings =googleMap.getUiSettings();
1.&&&缩放放大控件(加号和减号那个)
可以在初始化配置时就显示出来,也可以在准备好了控件后通过UiSettings对象设置
初始化时:
(GoogleMapOptions)options.zoomControlsEnabled(true);
获取map后再设置
(UiSettings)uiSet. setZoomControlsEnabled(true);
2.&&&指南针图标,默认不可见,可以在初始化时设置,可以在获得map对像后设置,google说不能总是显示指南针,但是我实际运行是可以总是显示的,单击指南回到最初指向,双击指南针他就会消失,并回复到最初指向。
3.&&&My Location按钮(像个准星,里面是个实心黑圆的东西,可以用来定位自己的位置)
仅当启用了 My Location 层时,My Location 按钮才会出现在屏幕的右上角。
4.&&&层级选择器(用于室内地图)
当用户查看时,层级选取器(楼层选取器)会出现在靠近屏幕中心右侧边缘位置。 如果有两个或更多个室内地图可见,层级选取器将应用于当前获得焦点的建筑,通常是最靠近屏幕中心的建筑。每栋建筑都具有首次显示选取器时默认选定的层级。用户可通过从选取器中进行选择来选择不同的层级。
您可以通过调用
禁用或启用层级选取器控件。
如果您想用自己的层级选取器替换默认层级选取器,便可执行这项操作。
5.&&&地图工具栏(用于跳转到google地图应用,例如路线)
在精简模式下,这个工具栏始终显示,在全交互地图模式下,只有点击地图上的marker标记才会显示出,可通过如下代码进行禁用UiSettings.setMapToolbarEnabled(boolean)
有旋转手势,平移手势,倾斜手势,缩放手势,设置方式都是和上方的类似,都可提前初始配置或者通过UiSettings配置
1.& 地图的点击/长按事件
获得GoogleMap对象后设置onMapClickListener监听或者onMapClickeListener监听,实现onMapClick(LatLng)或者onMapLongClick(LatLng)方法,LatLng是点击的经纬度对象
2.& 精简模式下禁用点击(只能在精简模式下,我在全交互模式下设置这个,程序直接死掉)
对于MapView:
view.setClickable(false);
对于MapFragment:
fragment.getView().setClickable(false);
3.& 摄像头变化事件监听
(GoogleMapmap.setOnCameraChangeListener(OnCameraChangeListener)进行设置,当摄像头发生变化时,侦听器通过onCameraChange(CameraPosition) 回调接收通知。 您随即便可获得摄像头的目标(纬度/经度)、缩放比例、方位和倾斜角度。可以保证在每次动画结束时调用该回调,但对于过渡帧,则不一定会调用该回调。
4.& 室内地图事件
略,以后补充
5.& 标记事件和信息窗口事件
您可以通过在标记所属的GoogleMap 对象上设置相应的侦听器来侦听和响应标记事件,包括标记点击和拖动事件。
八.&关于地图摄像头和视图
这部分,google api讲的是缩放倍数,摄像头倾斜时的视角图解,我这里就不好描述了
许多城市在放大查看时会显示 3D 建筑,您可以通过调用 GoogleMap.setBuildingsEnabled(false)禁用 3D 建筑。
1.& 摄像头大的相关操作
无论是放大缩小还是移动摄像头,都和CameraUpdate的对象使用有关,而CamerUpdateFactory工具类能够创建许多不同功能的CameraUpdate对象(以下大多数方法都会返回CamerUpdate对象,如果不是我会特别标注)
(1)&&&&&&&&&&&CameraUpdateFactory.zoomIn() 和 CameraUpdateFactory.zoomOut() 为您提供的 CameraUpdate 可将缩放比例更改 1.0
(2)&&&&&&&&&&&CameraUpdateFactory.zoomTo(float)为您提供的 CameraUpdate 可将缩放比例更改为给定值
(3)&&&&&&&&&&&CameraUpdateFactory.zoomBy(float)和CameraUpdateFactory.zoomBy(float, Point) 为您提供的 CameraUpdate 可使缩放比例增加(如果是负值,则减少)给定值。后者会将给定点固定在屏幕上以使其保持在同一位置(经度/纬度), 因此它可能会更改摄像头的位置以实现此目的。
(4)&&&&&&&&&&&CameraUpdateFactory.newLatLng(LatLng)为您提供的 CameraUpdate 可更改摄像头的经度和纬度
CameraUpdateFactory.newLatLngZoom(LatLng,float) 为您提供的 CameraUpdate可更改摄像头的经度、纬度和缩放比例
(5)&&&&&&&&&&&CameraPosition& position = new CamerPosition(LatLng,float zoom,float tilt,float bearing)
CameraUpdateFactory.newCameraPosition(position),提供的 CameraUpdate 可将摄像头移至给定位置
(6)&&&&&&&&&&&如果你想使摄像机刚好包住你想看的全部区域,例如你想看全中国的领土,则可以使用LatLngBound对象
该对象需要传入两个LatLng对象,如果是中国,则选取中国领土最长对角线两个点的坐标建立LatLng对象即可。
private GoogleMap mM
private LatLngBounds AUSTRALIA = new LatLngBounds(
&new LatLng(-44, 113), new LatLng(-10, 154));
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(AUSTRALIA,0));
当你需要LatLngBound的中心位置时,直接LatLngBounds.getCenter()获取中心点坐标
(7)&&&&&&&&&&&平移:
CameraUpdateFactory.scrollBy(float,float) 为您提供的 CameraUpdate可相应更改摄像头的经度和纬度,使得地图按指定像素数移动。 正 x 值会使摄像头右移,带来地图左移的效果。正 y 值会使摄像头下移,带来地图上移的效果。 相反,负 x 值会使摄像头左移, 带来地图右移的效果;而负 y 值会使摄像头上移。 滚动是以摄像头当前朝向为参照物。例如,如果摄像头的方位角为 90 度,则东方“向上”。
(8)&&&&&&&&&&&啥都干
(9)&&&&&&&&&&&以下示例代码是移动摄像头常用的方式
·&&&&&&&& private static final LatLng SYDNEY = new LatLng(-33.88,151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);
private GoogleM
map.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 15));
map.animateCamera(CameraUpdateFactory.zoomIn());
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
CameraPosition cameraPosition = new CameraPosition.Builder()
& & .target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
& & .zoom(17) & & & & // Sets the zoom
& & .bearing(90)// Sets the orientation of the camera to east
& & .tilt(30) // Sets the tilt of the camera to 30 degrees
& & .build();& // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
九.&位置数据
这里主要讲的是让地图定位到自己设备的位置
1.&&位置权限
android.permission.ACCESS_COARSE_LOCATION – 允许 API 利用 WiFi 或移动蜂窝数据(或同时利用两者)来确定设备位置。API 返回的位置精确度大约相当于城市街区。android.permission.ACCESS_FINE_LOCATION – 允许 API 利用包括全球定位系统 (GPS) 在内的可用位置提供商以及 WiFi 和移动蜂窝数据尽可能精确地确定位置。
2.&&请求运行时权限
这个主要是Android6.0的机型,在这个机型上,用户不需要在安装应用时确认应用需要哪些权限,而是在应用需要时弹出对话框示意用户需要某某权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
& & & & & & & & == PackageManager.PERMISSION_GRANTED) {
& & mMap.setMyLocationEnabled(true);//如果有这个权限,这里就启动地图的Mylocation层
& & // Show rationale and request permission.
以下代码示例通过实现支持库中的ActivityCompat.OnRequestPermissionsResultCallback 来处理权限请求的结果:
public void onRequestPermissionsResult(intrequestCode, String[] permissions, int[] grantResults) {
&&&if (requestCode == MY_LOCATION_REQUEST_CODE) {
&&&&&if (permissions.length == 1 &&
&&&&&&&&&permissions[0] == Manifest.permission.ACCESS_FINE_LOCATION &&
&&&&&&&&&grantResults[0] == PackageManager.PERMISSION_GRANTED) {
&&&&&&&mMap.setMyLocationEnabled(true);
&&&} else {
&&&&&// Permission was denied. Display an error message.
3.&&My Location层(用来定位自己的位置)
开启My Location层的方法
mMap.setMyLocationEnabled(true);
启用了 My Location 层时,My Location 按钮会出现在地图的右上角。当用户点击该按钮时,摄像头将设备的当前位置(若已知)显示为地图的中心。 设备处于静止状态时,地图以小蓝点指示该位置;
您可以通过调用UiSettings对象.setMyLocationButtonEnabled(false) 完全禁止该按钮出现。
这个一般和google地图定位联合使用,要用到Google Play services Location API,后面再补充
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15741次
排名:千里之外
(2)(1)(1)(2)(4)

我要回帖

更多关于 指南针官方网站 的文章

 

随机推荐