`
ssun125
  • 浏览: 44599 次
文章分类
社区版块
存档分类
最新评论

利用openstreetmap在android应用中添加地图

 
阅读更多

利用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、运行程序你可以看见我的学校了


以下是我的应用截图:


你应该可以看出来,它还可以放大地图的。但由于我们学校的地图我还没有完全编辑好,所以还比较简略。有时间大家可以去编辑一下你们学校的地图,这样不仅让你从中获益,而且还为全世界的人提供了方便。有什么问题可以问我。




分享到:
评论

相关推荐

    openstreetmap 入门代码

    通过以上步骤,你应该能够在Android应用中成功显示OpenStreetMap。然而,这只是OSM开发的冰山一角。osmdroid提供了丰富的API和扩展功能,如离线地图、自定义图层、瓦片源、地理编码和反编码等,等待你去探索和利用。...

    graphhopper,使用OpenStreetMap的开源路线规划库和服务器。.zip

    集成GraphHopper到自己的项目中,可以利用其强大的路线规划能力,为应用添加地图导航功能。无论是移动应用、Web服务还是物联网设备,GraphHopper都是一个可靠的选择。开源的特性使得开发者能够根据项目需求进行定制...

    android 使用osmdroid 加载离线map格式数据以及地图网格

    Osmdroid是一个开源库,专门用于在Android平台上显示OpenStreetMap(OSM)地图,支持离线地图数据的加载和操作。本教程将详细介绍如何使用osmdroid库加载离线map格式数据以及地图网格。 首先,我们需要理解osmdroid...

    Arcgis android 叠加天地图

    开发者还可以结合其他GIS服务,如OpenStreetMap、Google Maps等,进一步丰富地图内容。同时,可以集成自定义数据,如用户位置、兴趣点等,实现个性化地图服务。 总之,"ArcGIS Android 叠加天地图"是一项技术性的...

    android_Maptest

    在Android平台上,开发地图应用是一项常见的任务,而`android_Maptest`项目则专注于利用OpenStreet Map API和osmdroid插件来实现一个高效的地图浏览器。本文将深入探讨这些技术细节,帮助开发者理解如何在Android...

    android 自己写的一个GPS卫星地图

    Google Maps API提供卫星视图和各种地图样式,而OpenStreetMap则提供开源的OpenStreetMap tiles,开发者可以根据需求进行定制。 为了显示地图,我们需要创建一个MapFragment或MapView实例,并配置API密钥。在...

    Android地图展示,定位,地理编码,标注,离线地图等Demo

    1. **地图展示**:在Android中,我们可以使用Google Maps SDK或者开源的Mapbox、OSM(OpenStreetMap)等库来展示地图。在Demo中,开发者可能使用了Google Maps API,通过集成谷歌地图服务,将地图界面嵌入到应用中,...

    Android-OPFMaps将不同的android地图集成到他们的应用程序中

    OPFMaps库就是为了简化这个过程而诞生的,它为开发者提供了一个便捷的途径,允许他们在应用程序中集成多种不同的Android地图服务,如Google Maps、Mapbox、OpenStreetMap等。这一开源解决方案使得开发者无需深入研究...

    xamarin.android 一个简单的地图Demo

    osmdroid(OpenStreetMap Rendering Engine)是一个开源项目,它为Android应用提供了显示OpenStreetMap(OSM)地图的能力。osmdroid不仅支持OSM,还兼容其他地图服务提供商,如Google Maps和Bing Maps。在Xamarin中...

    基于Andorid开发的在线地图的轨迹跟踪服务

    地图API是此项目的核心,Android支持Google Maps API和开源的OpenStreetMap等。开发者通常会使用Google Maps API,因为它提供了丰富的地图功能,如显示地图、定位、路线规划和轨迹绘制等。API的集成包括获取API密钥...

    nakshaa.github.io:Nakshaa是使用javascript库leaflet.js库和openstreetmap数据提供的地图服务。 简单有效的用户界面易于使用

    Nakshaa是一个基于GitHub托管的项目,它利用JavaScript库Leaflet.js和OpenStreetMap的数据来提供地图服务。这个服务的特色在于其简洁且高效的用户界面,使得地图操作变得非常直观和易用。下面我们将深入探讨Leaflet....

    map-city地图

    同时,地图服务也可能与其他在线平台集成,如Google Maps或OpenStreetMap,以便利用他们的地图数据和导航服务。 移动应用开发是"map-city地图"面向用户的重要途径。为了适应移动设备,开发者需要创建适用于iOS和...

    Android-MapMe是一个用于操作地图的Android库

    1. **自定义地图渲染**:MapMe允许开发者自定义地图瓦片源,可以使用自己的地图数据或第三方服务如OpenStreetMap、Google Maps等,提供个性化的地图显示。 2. **强大的交互功能**:用户可以通过手势进行缩放、平移...

    地图开发(android)

    在Android中,我们通常会用到Google Maps API或者OpenStreetMap的开源库(如OSMdroid)来实现地图功能。Google Maps API提供了丰富的地图服务,包括显示地图、定位、标记、路径绘制等。要使用它,我们需要在项目中...

    android毕业设计方案外文资料翻译.doc

    同时,也要关注基于其他地图数据源的替代选项,例如OpenStreetMap(http://www.openstreetmap.org/),它是一个开放源代码的地图服务项目。 需要注意的是,自Android 1.5版本起,Google Maps不再严格属于Android ...

    基于Android移动终端的车辆导航地图匹配算法研究.pdf

    在Android应用中,可以通过Google Maps API或者OpenStreetMap等开放地图资源,实现路线规划功能。A*算法或Dijkstra算法常用于寻找最短或最快路径。此外,考虑到实时交通信息,应用需要能够动态更新路线,以避开拥堵...

    android毕业设计外文资料翻译.pdf

    此外,你也可以考虑其他地图选项,比如基于OpenStreetMap等开源地图数据源的解决方案。 自Android 1.5版本开始,Google Maps不再仅仅是Android SDK的一部分,而是属于Google APIs扩展包的一部分。这个扩展系统允许...

    Android应用源码之cellmap v2.0 基站查询定位导航系统-IT计算机-毕业设计.zip

    2. **地图API**:为了实现地图功能,项目可能使用了Google Maps API或开源的地图库如OSM(OpenStreetMap)。开发者需要理解如何集成地图服务,设置地图视图,添加标记,以及进行地理编码和反地理编码。 3. **定位...

    安卓的Map.jar

    除了Google Maps,还有一些第三方的地图库,如OSM(OpenStreetMap)、Mapbox等。这些库通常也提供类似的API,供开发者集成到自己的应用中。Map.jar如果是这样的库,那么它可能包含了地图渲染、离线地图支持、自定义...

    Android源码——bikeroute自行车导航源码.zip

    开发者需要理解如何在Android应用中集成地图组件,以及如何在地图上添加标记、路径等元素。 3. **GPS定位**:为了提供导航功能,应用需要获取用户的实时位置。Android提供了Location API,用于获取GPS或其他定位...

Global site tag (gtag.js) - Google Analytics