专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Android

利用openstreet地图在android应用中添加map

发布时间:2010-05-30 06:40:44 文章来源:www.iduyao.cn 采编人员:星星草
利用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、运行程序你可以看见我的学校了


以下是我的应用截图:

 

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




友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: