我创建了一个新项目,并从大约一年前的旧项目中借用了一些 Osmdroid 代码。
在这一行:
mapView.setTileSource(new XYTileSource(OSM_Mapquest,
ResourceProxy.string.mapquest_osm, 0, MAX_ZOOM_LEVEL, 256, IMAGE_EXTENSION, parameterString));
我收到错误:
cannot find symbol variable 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 包含在应用程序 gradle 文件中:
block 引用>dependencies { ...
compile 'org.osmdroid:osmdroid-android:5.1@aar'
compile 'org.osmdroid:osmdroid-third-party:5.0.1@aar' }
最佳答案
那是因为它被删除了。
Osmdroid 在 wiki 中维护升级指南,位于以下链接
https://github.com/osmdroid/osmdroid/wiki/Upgrade-Guide
本质上,资源代理不再使用,并且已从源存储库中删除。只需删除引用即可。所有其他构造函数参数都是相同的。
此外,MapQuest 也发生了重大变化,不再提供没有 API key 的免费图 block 。其他来源可以在 TileSourceFactory 中找到,并且 osmdroid 的 wiki 和问题跟踪器中有进一步的讨论。
关于android - 找不到符号变量mapquest_osm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476804/