我创建了一个新项目,并从一年前的旧项目中借用了一些Osmdroid代码。
在这一行:
mapView.setTileSource(new XYTileSource(OSM_Mapquest,
ResourceProxy.string.mapquest_osm, 0, MAX_ZOOM_LEVEL, 256, IMAGE_EXTENSION, parameterString));
我收到错误:
无法找到符号变量mapquest_osm
如果我在新项目中查看ResourceProxy,确实没有这样的变量。 如果我在旧项目中查看ResourceProxy,它就在那里:
package org.osmdroid;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
public interface ResourceProxy {
public static enum string {
// tile sources - THIS IS MISSING FROM THE NEW
mapnik, cyclemap, public_transport, cloudmade_small, cloudmade_standard, mapquest_osm, mapquest_aerial, bing, mapbox,
// overlays - SO IS THIS
fiets_nl, base_nl, roads_nl,
// other stuff - THIS BOTH IN THE OLD AND THE NEW
unknown, format_distance_meters, format_distance_kilometers, format_distance_miles, format_distance_nautical_miles, format_distance_feet, online_mode, offline_mode, my_location, compass, map_mode,
}
所以看来这是故意删除的。
我应该以另一种方式setTileSource()
吗?
在新项目中,我已将osmdroid包含在app gradle文件中:
依赖{ ...
编译' org.osmdroid:osmdroid-android:5.1@aar'
编译' org.osmdroid:osmdroid-third-party:5.0.1@aar' }
答案 0 :(得分:2)
那是因为它被删除了。
Osmdroid维护了wiki中的升级指南,位于以下链接
https://github.com/osmdroid/osmdroid/wiki/Upgrade-Guide
基本上,资源代理不再使用,并且从源代码库中被淘汰。只需删除参考,您应该好好去。所有其他构造函数参数都是相同的。
MapQuest也发生了重大变化,不再提供没有API密钥的免费磁贴。 TileSourceFactory中提供了其他资源,并进一步讨论了osmdroid的wiki和问题跟踪器。