利用openstreetmap在android应用中添加地图
OpenStreetMap是一个可供自由编辑的世界地图,它是由像您这样的用户创造的。OpenStreetMap允许您查看,编辑或者使用世界各地的地理数据来帮助您。
最近写android应用(长理校园通)的时候,想在自己应用上显示地图。考虑了google地图、百度地图、高德地图等等,但是运行了他们的samples后发现他们提供的地图都不是很详细,因为我需要具体到每个小建筑的名称,比如说我们宿舍楼的名字,还有就是要把我们寝室后面那条小路都给显示出来,哈哈。这些地图都没有多大可能会为我去把他们添加进他们的地图里面。但是OpenStreetMap不一样了,因为他的地图是由我们这样有兴趣的人自由编辑的,这样我就可以更详细地把我们学校显示在我的应用上面了,以后大一的学弟、学妹就不用愁了。
下面就看看具体的步骤:
1、首先建立自己的项目(和平常一样)
需要添加以下jar文件(记住是Android Dependencies,而不是reference de。。):

2、在AndroidManifest.xml添加以下权限说明
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3、编写layout文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<org.osmdroid.views.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:enabled="true"
tilesource="MapquestOSM" />
</RelativeLayout>
4、编写activity文件
package com.example.android.accelerometerplay;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import android.app.Activity;
import android.os.Bundle;
public class GeoMapActivity extends Activity {
private MapController mapController;
private MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.map);
mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(15);
GeoPoint point2 = new GeoPoint(28.071876, 113.004551);
mapController.setCenter(point2);
}
}
5、运行程序你可以看见我的学校了
以下是我的应用截图:
你应该可以看出来,它还可以放大地图的。但由于我们学校的地图我还没有完全编辑好,所以还比较简略。有时间大家可以去编辑一下你们学校的地图,这样不仅让你从中获益,而且还为全世界的人提供了方便。有什么问题可以问我。
分享到:
相关推荐
通过以上步骤,你应该能够在Android应用中成功显示OpenStreetMap。然而,这只是OSM开发的冰山一角。osmdroid提供了丰富的API和扩展功能,如离线地图、自定义图层、瓦片源、地理编码和反编码等,等待你去探索和利用。...
集成GraphHopper到自己的项目中,可以利用其强大的路线规划能力,为应用添加地图导航功能。无论是移动应用、Web服务还是物联网设备,GraphHopper都是一个可靠的选择。开源的特性使得开发者能够根据项目需求进行定制...
Osmdroid是一个开源库,专门用于在Android平台上显示OpenStreetMap(OSM)地图,支持离线地图数据的加载和操作。本教程将详细介绍如何使用osmdroid库加载离线map格式数据以及地图网格。 首先,我们需要理解osmdroid...
开发者还可以结合其他GIS服务,如OpenStreetMap、Google Maps等,进一步丰富地图内容。同时,可以集成自定义数据,如用户位置、兴趣点等,实现个性化地图服务。 总之,"ArcGIS Android 叠加天地图"是一项技术性的...
在Android平台上,开发地图应用是一项常见的任务,而`android_Maptest`项目则专注于利用OpenStreet Map API和osmdroid插件来实现一个高效的地图浏览器。本文将深入探讨这些技术细节,帮助开发者理解如何在Android...
Google Maps API提供卫星视图和各种地图样式,而OpenStreetMap则提供开源的OpenStreetMap tiles,开发者可以根据需求进行定制。 为了显示地图,我们需要创建一个MapFragment或MapView实例,并配置API密钥。在...
1. **地图展示**:在Android中,我们可以使用Google Maps SDK或者开源的Mapbox、OSM(OpenStreetMap)等库来展示地图。在Demo中,开发者可能使用了Google Maps API,通过集成谷歌地图服务,将地图界面嵌入到应用中,...
OPFMaps库就是为了简化这个过程而诞生的,它为开发者提供了一个便捷的途径,允许他们在应用程序中集成多种不同的Android地图服务,如Google Maps、Mapbox、OpenStreetMap等。这一开源解决方案使得开发者无需深入研究...
osmdroid(OpenStreetMap Rendering Engine)是一个开源项目,它为Android应用提供了显示OpenStreetMap(OSM)地图的能力。osmdroid不仅支持OSM,还兼容其他地图服务提供商,如Google Maps和Bing Maps。在Xamarin中...
地图API是此项目的核心,Android支持Google Maps API和开源的OpenStreetMap等。开发者通常会使用Google Maps API,因为它提供了丰富的地图功能,如显示地图、定位、路线规划和轨迹绘制等。API的集成包括获取API密钥...
Nakshaa是一个基于GitHub托管的项目,它利用JavaScript库Leaflet.js和OpenStreetMap的数据来提供地图服务。这个服务的特色在于其简洁且高效的用户界面,使得地图操作变得非常直观和易用。下面我们将深入探讨Leaflet....
同时,地图服务也可能与其他在线平台集成,如Google Maps或OpenStreetMap,以便利用他们的地图数据和导航服务。 移动应用开发是"map-city地图"面向用户的重要途径。为了适应移动设备,开发者需要创建适用于iOS和...
1. **自定义地图渲染**:MapMe允许开发者自定义地图瓦片源,可以使用自己的地图数据或第三方服务如OpenStreetMap、Google Maps等,提供个性化的地图显示。 2. **强大的交互功能**:用户可以通过手势进行缩放、平移...
在Android中,我们通常会用到Google Maps API或者OpenStreetMap的开源库(如OSMdroid)来实现地图功能。Google Maps API提供了丰富的地图服务,包括显示地图、定位、标记、路径绘制等。要使用它,我们需要在项目中...
同时,也要关注基于其他地图数据源的替代选项,例如OpenStreetMap(http://www.openstreetmap.org/),它是一个开放源代码的地图服务项目。 需要注意的是,自Android 1.5版本起,Google Maps不再严格属于Android ...
在Android应用中,可以通过Google Maps API或者OpenStreetMap等开放地图资源,实现路线规划功能。A*算法或Dijkstra算法常用于寻找最短或最快路径。此外,考虑到实时交通信息,应用需要能够动态更新路线,以避开拥堵...
此外,你也可以考虑其他地图选项,比如基于OpenStreetMap等开源地图数据源的解决方案。 自Android 1.5版本开始,Google Maps不再仅仅是Android SDK的一部分,而是属于Google APIs扩展包的一部分。这个扩展系统允许...
2. **地图API**:为了实现地图功能,项目可能使用了Google Maps API或开源的地图库如OSM(OpenStreetMap)。开发者需要理解如何集成地图服务,设置地图视图,添加标记,以及进行地理编码和反地理编码。 3. **定位...
除了Google Maps,还有一些第三方的地图库,如OSM(OpenStreetMap)、Mapbox等。这些库通常也提供类似的API,供开发者集成到自己的应用中。Map.jar如果是这样的库,那么它可能包含了地图渲染、离线地图支持、自定义...
开发者需要理解如何在Android应用中集成地图组件,以及如何在地图上添加标记、路径等元素。 3. **GPS定位**:为了提供导航功能,应用需要获取用户的实时位置。Android提供了Location API,用于获取GPS或其他定位...