【发布时间】:2018-02-16 20:30:45
【问题描述】:
我将使用 osmdroid 开始使用 Open Street Maps。在他们的github wiki 上找到的初学者教程说您必须设置用户代理以防止被 osm 服务器禁止。该评论并未超出有关如何执行此操作的提示。因此,运行代码的结果是我在生成的地图中什么也看不到。只有地图画布和缩放控件,但没有地理点之类的东西。
我的活动代码如下(使用5.6.5版本的osmdroid库):
public class MapActivity extends AppCompatActivity {
MapView map = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
Context ctx = getApplicationContext();
//important! set your user agent to prevent getting banned from the osm servers
Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
map = (MapView) findViewById(R.id.map);
map.setTileSource(TileSourceFactory.MAPNIK);
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
IMapController mapController = map.getController();
mapController.setZoom(9);
GeoPoint startPoint = new GeoPoint(48.8583, 2.2944);
mapController.setCenter(startPoint);
}
public void onResume() {
super.onResume();
Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this));
// map.onResume(); //needed for compass, my location overlays, v6.0.0 and up
}
public void onPause(){
super.onPause();
// map.onPause(); //needed for compass, my location overlays, v6.0.0 and up
}
【问题讨论】:
标签: android dictionary osmdroid