osmAndroid学习一

简介:

osmdroid 提供了与OpenStreetMap-Data交互的工具和视图。它是androidMapView类的替代。该文档将解释如何开始在你的应用中使用osmdroid

官网:

http://code.google.com/p/osmdroid/

功能:

基本功能有:查看地图、缩放地图、单点移动、多点触控等

环境:

1、搭建好JDK环境,安装eclipseADT插件。

2、新建android工程

3、在工程包内建lib文件夹,将osmdroid-android-3.0.5.jarhttpmine-4.0.1.jarappche-mine4j-0.6345035.jarslf4j-android-1.5.8.jar放入lib文件夹。

4、在工程名上右键单击,选择Build Path->Config Build Path,单击Java Build Path->Libraries,点击Add JARs3中的四个jar包加入到工程中。

(如果是下载的osmdroid源码,则3、4两步改为:将源码包放入工程src包下,刷新。建议使用源码,这样便于以后更改代码。)

5、在XML文件中可以使用org.osmdroid.views.MapView增加MapView组件。其中tilesource="MapquestOSM"为地图设置切片源为OSM(OpenStreetMap)

6、通过findViewById()来获得MapView的引用。然后初始化,为其设置切片源、中心点、图层放大级别。

权限:

你需要在Manifest文件中增加下列权限许可:

    <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" />

 

 

 

源文件:

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(51496994, -134733);

        mapController.setCenter(point2);

}

}

布局文件main.xml

<?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>


你可能感兴趣的:(osmandroid)