android MapBox地图基于openstreetmap开发
最近在做一个安卓地图项目,需要用到世界地图,但国内谷歌基本已经不能用了,这时就需要一个新的开源api,经过别人的介绍才发现了MapBox 这个开源免费的api,加载速度比osm地图要快多了,一下是我碰到的一些问题,希望可以帮到其他的一些人
int screenWidth = getActivity().getWindowManager().getDefaultDisplay().getWidth();float width = DensityUtils.px2dp(context, screenWidth);zoom = 22 - Math.rint(Math.log(zoomFirst * MERCATOR_RADIUS * Math.PI / (180.0 * width)));thisSourceDateList = MainActivityAll.getSourceDateList();WebSourceTileLayer ws = new WebSourceTileLayer("openstreetmap", "http://tile.openstreetmap.org/{z}/{x}/{y}.png");ws.setName("OpenStreetMap").setAttribution("© OpenStreetMap Contributors").setMinimumZoomLevel(1).setMaximumZoomLevel(21);mMapView.setTileSource(ws);mMapView.setCenter(center);mMapView.setZoom((float) zoom);
这是设置地图的一些基本信息这种 WebSourceTileLayer 方法加载的比默认的加载速度快近一倍,不过就是图层不太好看
LocationListener locationListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}@Overridepublic void onLocationChanged(Location location) {// 更新当前设备的位置信息showLocation(location);}};
这是定位的监听
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// locationManager.removeUpdates(locationListener); ondestroy方法移除监听器// 获取所有可用的位置提供器List<String> providerList = locationManager.getProviders(true);String provider;if (providerList.contains(LocationManager.GPS_PROVIDER)) {provider = LocationManager.GPS_PROVIDER;} else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {provider = LocationManager.NETWORK_PROVIDER;} else {// 当没有可用的位置提供器时,弹出Toast提示用户Toast.makeText(context, "No location provider to use",Toast.LENGTH_SHORT).show();return;}Log.e("location", provider);Location location = locationManager.getLastKnownLocation(provider);if (location != null) {// 显示当前设备的位置信息showLocation(location);}locationManager.requestLocationUpdates(provider, 5000, 1, locationListener);
在官方的api看的好麻烦啊
MapViewListener mapViewListener = new MapViewListener()
实例化他的接口,可以监听手势在地图的操作
mMapView.addListener(mapListener);
这个方式可以实例化他的地图图层变化,第一次碰到这种add的,找了我好久
一些地图功能这些方式基本可以实现了,还有一些设置markdr的 ,划线的demo上有,就不一一举例了
这是项目的demo,适合初学者必看文档方便多了http://download.csdn.net/download/zhayunbiao/9968836
这个项目还有很多不懂得地方,希望有懂得人可以交流交流
联系QQ:1925413099
android MapBox地图基于openstreetmap开发相关推荐
- [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题
最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...
- android美食app设计图,基于位置的Android美食地图应用的设计与实现
摘要: 随着近些年移动互联网的迅猛发展和智能手机的普及,手机应用迎来于广阔的发展空间,移动LBS应用应运而生.传统的位置服务主要以网页或单机的形式实现,已无法满足用户日益增长的移动需求.而移动LBS应 ...
- android 地球坐标 火星坐标系,Android LBS地图开发:地球地理GPS坐标系经纬度偏移偏差...
Android LBS地图开发基础知识之地球地理GPS坐标系经纬度偏移偏差 通常,我们所说的地球地理经纬度是WGS-84坐标系(World Geodetic System-1984 Coordinat ...
- 在iOS中进行Mapbox地图开发杂谈
最近因项目需要,在app中要集成Mapbox,并且要能与苹果地图切换使用.从最早认识Mapbox到最终集成完毕,中间有一些断断续续,但总的时间也不算短了,关于这方面的资料其实是比较少的,能参考的基本都 ...
- 基于android的地图毕业设计,基于android百度地图应用系统_毕业设计.docx
基于android百度地图应用系统_毕业设计 南京晓庄学院2015届本科毕业论文 分类号: 学校代码:11460 学 号南京晓庄学院本科生毕业设计 基于Android平台和百度地图的应用系统 Appl ...
- android百度地图调用animateto 会报空指针异常,基于Android的百度地图应系统毕业设计.docx...
基于Android的百度地图应系统毕业设计 分类号: 学校代码:11460 学 号南京晓庄学院本科生毕业设计 基于Android平台和百度地图的应用系统 Application system base ...
- [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题
前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Intere ...
- Android 手机地图开发-高德地图问题
高德地图地址:http://code.autonavi.com 示例程序及SDK下载地址 如何获取AutoNavi MAP API密钥 AutoNavi提供的地图通过MapView对象进行显示.Map ...
- Android LBS地图开发:地球地理GPS坐标系经纬度偏移偏差
本文作者:ZhangPhil 欢迎各位转载!但请注明转载出处: http://blog.csdn.net/zhangphil/article/details/48024831 Android LB ...
最新文章
- 转:python 实现GUI(图形用户界面)编程
- latex的资料ftp
- Azure认知服务之使用墨迹识别功能识别手写汉字
- Object的方法equals,hashCode,toString,clone。另外Comparable接口的方法
- python匿名函数调用_python中引用局部变量的匿名函数
- 2017-03-01 Oracle10g的安装与配置使用
- 佳能Canon MF4700 一体机驱动
- w10桌面计算机图标箭头去除,win10专业版电脑桌面图标箭头快速去掉技巧
- R语言|根据列名提取/筛选列的两种方法
- BigSur下Safari14.1.1安装油猴插件(Tampermonkey)
- Intellij IDEA中使用git命令窗口
- thingsboard
- 数据仓库的项目的概况
- 逐帧动画和补间动画的区别于各自的优缺点
- 深度Linux 安装英伟达闭源驱动,deepin20 安装英伟达闭源驱动的步骤详解
- 职场指南,如何当一个不背锅的人?
- 互联网数字营销广告管理平台应用
- xp系统扫描仪服务器,通过系统自带的扫描仪向导获取图片(适用于WinXP)
- 不管怎样,苹果公司仍然是全球最有价值的公司
- 操作系统--I/O管理