我正在尝试创建一个使用离线地图和自定义图块的应用.为此我决定使用OSMDroid并将jar包含在我的项目中.我将使用MOBAC创建我的自定义图块.
我被引导到以下示例:http://code.google.com/p/osmdroid/source/browse/#svn%2Ftrunk%2FOpenStreetMapViewer%2Fsrc%2Forg%2Fosmdroid%2Fsamples
但我正在努力跟随它们,因为我是java和android的新手.
我创建了一个名为test的类文件(我按照一个例子创建了它):
public class test extends Activity {
/** Called when the activity is first created. */
protected static final String PROVIDER_NAME = LocationManager.GPS_PROVIDER;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView map = (MapView) findViewById(R.id.map);
map.setTileSource(TileSourceFactory.MAPQUESTOSM);
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
map.getController().setZoom(16);
map.getController().setCenter(new GeoPoint(30266000, -97739000));
}
Run Code Online (Sandbox Code Playgroud)
}
使用布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 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"
tilesource="MapquestOSM" android:layout_weight="1" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我看不到地图,只是一个空网格.我认为这是由于我的tilesource,但我不确定我需要将它更改为.
更新:我的清单文件中还有以下内容:
<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" /> …Run Code Online (Sandbox Code Playgroud) 我开始使用Osmdroid,我想使用这项技术来显示关于F1赛道的地图.我有一张大图,我可以把它切成小块.
我可以修改osmdroid库来上传这些图片吗?
我想在我的资源文件夹中保存这些位图(tile).
我很失落如何做到这一点.
我正在使用这种方式,因为当我尝试显示这个完整的全尺寸图片时,android通常会出现内存错误.如果我只显示图像的一些图块(取决于缩放),也许我的应用程序可以更好地工作?
提前致谢!