android MapBox地图基于openstreetmap开发
来源:互联网 发布:linux 改机器名 编辑:程序博客网 时间:2024/05/21 07:59
最近在做一个安卓地图项目,需要用到世界地图,但国内谷歌基本已经不能用了,这时就需要一个新的开源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() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override public 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上有,就不一一举例了
这个项目还有很多不懂得地方,希望有懂得人可以交流交流
0 0
- android MapBox地图基于openstreetmap开发
- Android地图开发之OpenStreetMap基础教程
- ios地图开发之-OpenStreetMap基础教程
- Android地图应用新视界--mapbox的应用开发之初始集成篇
- Android地图应用新视界--mapbox的应用开发之简单功能提取篇
- Android地图应用新视界--mapbox的应用开发参考网址大全
- 在Android上使用OpenStreetMap离线地图
- 基于OpenStreetMap地图数据的离线路径规划
- osgEarth mapbox地图 20.mapbox.earth
- 利用openstreetmap在android应用中添加地图
- OpenStreetMap 获取地图数据
- win7搭建openStreetMap地图
- OpenStreetMap地图服务器安装
- Android开发,MapBox的使用及部分功能实现(三)----- 重新理解MapBox
- 基于Android的百度地图开发
- android 基于Arcgis开发的地图
- [Mapbox GL]展示一张地图
- [Mapbox GL]改变地图风格
- Qt调用外部程序QProcess
- Unicode utf8等编码类型的原理
- android 外部启动activity,自定义action,action常量大全
- 【c++学习】标准库类型vector
- spring框架学习(一)
- android MapBox地图基于openstreetmap开发
- 解决redhat自带yum不能用的问题 (使用CentOS)
- 一劳永逸解决UAC问题,获取超级管理员 administrator权限
- centos7 安装 nginx g++、gcc、openssl-devel、pcre-devel和zlib-devel
- LeetCode 7. Reverse Integer
- 获取目录下的普通文件数目
- Mysql命令大全
- Swift UIAlertView/UIActionSheet
- android视图学习---什么是Overdraw?