From c239d8c1b7aff87d81f890465ea51b4e5ed37289 Mon Sep 17 00:00:00 2001 From: Emux Date: Tue, 17 Mar 2020 12:03:03 +0200 Subject: [PATCH] Samples: set user agent for OpenStreetMap provider https://operations.osmfoundation.org/policies/tiles/ --- .../android/test/AtlasMultiTextureActivity.java | 9 +++++---- .../oscim/android/test/BitmapTileActivity.java | 6 ++++-- .../test/ClusterMarkerOverlayActivity.java | 8 +++++--- .../android/test/MarkerOverlayActivity.java | 8 +++++--- .../oscim/android/test/OverpassActivity.java | 8 ++++++-- vtm-app/src/org/oscim/app/MapLayers.java | 7 +++++-- .../src/org/oscim/test/AnimatorTest.java | 9 ++++++--- .../org/oscim/test/AtlasMultiTextureTest.java | 8 +++++--- .../src/org/oscim/test/BitmapTileTest.java | 13 ++++++++++--- .../org/oscim/test/ClusterMarkerLayerTest.java | 8 +++++--- .../src/org/oscim/test/LineTexTest.java | 8 +++++--- .../src/org/oscim/test/MarkerLayerTest.java | 8 +++++--- .../src/org/oscim/test/OverpassTest.java | 8 ++++++-- .../src/org/oscim/test/PathLayerTest.java | 8 +++++--- .../src/org/oscim/test/VectorLayerTest.java | 9 ++++++--- .../src/org/oscim/web/client/GwtMap.java | 17 +++++++---------- .../tiling/source/bitmap/DefaultSources.java | 4 +++- 17 files changed, 93 insertions(+), 53 deletions(-) diff --git a/vtm-android-example/src/org/oscim/android/test/AtlasMultiTextureActivity.java b/vtm-android-example/src/org/oscim/android/test/AtlasMultiTextureActivity.java index b0482760..76d198c8 100644 --- a/vtm-android-example/src/org/oscim/android/test/AtlasMultiTextureActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/AtlasMultiTextureActivity.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -19,7 +19,6 @@ package org.oscim.android.test; import android.widget.Toast; - import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; @@ -33,12 +32,13 @@ import org.oscim.layers.marker.MarkerSymbol.HotspotPlace; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.renderer.atlas.TextureAtlas; import org.oscim.renderer.atlas.TextureRegion; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.utils.TextureAtlasUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; @@ -49,9 +49,10 @@ public class AtlasMultiTextureActivity extends MarkerOverlayActivity { // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-android-example")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); // Create Atlas from Bitmaps diff --git a/vtm-android-example/src/org/oscim/android/test/BitmapTileActivity.java b/vtm-android-example/src/org/oscim/android/test/BitmapTileActivity.java index 3b2684d2..69fa3460 100644 --- a/vtm-android-example/src/org/oscim/android/test/BitmapTileActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/BitmapTileActivity.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2017-2018 devemux86 + * Copyright 2017-2020 devemux86 * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -16,7 +16,6 @@ package org.oscim.android.test; import android.os.Bundle; - import org.oscim.android.cache.TileCache; import org.oscim.core.MapPosition; import org.oscim.core.MercatorProjection; @@ -27,6 +26,8 @@ import org.oscim.tiling.source.bitmap.DefaultSources; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Collections; + public class BitmapTileActivity extends MapActivity { static final Logger log = LoggerFactory.getLogger(BitmapTileActivity.class); @@ -42,6 +43,7 @@ public class BitmapTileActivity extends MapActivity { public BitmapTileActivity(BitmapTileSource tileSource) { super(R.layout.activity_map); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-android-example")); mTileSource = tileSource; } diff --git a/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java b/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java index 9a7b919a..ae64622a 100644 --- a/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2019 devemux86 + * Copyright 2016-2020 devemux86 * Copyright 2017 nebular * * This program is free software: you can redistribute it and/or modify it under the @@ -22,11 +22,12 @@ import org.oscim.backend.canvas.Color; import org.oscim.core.GeoPoint; import org.oscim.layers.marker.*; import org.oscim.layers.tile.bitmap.BitmapTileLayer; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class ClusterMarkerOverlayActivity extends MarkerOverlayActivity { @@ -39,9 +40,10 @@ public class ClusterMarkerOverlayActivity extends MarkerOverlayActivity { // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-android-example")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); Bitmap bitmapPoi = new AndroidBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.marker_poi)); diff --git a/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java b/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java index 078b193b..0fac44cd 100644 --- a/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2016-2019 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -33,11 +33,12 @@ import org.oscim.layers.marker.MarkerSymbol; import org.oscim.layers.marker.MarkerSymbol.HotspotPlace; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.map.Map; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class MarkerOverlayActivity extends MapActivity @@ -58,9 +59,10 @@ public class MarkerOverlayActivity extends MapActivity // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-android-example")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); Bitmap bitmapPoi = new AndroidBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.marker_poi)); diff --git a/vtm-android-example/src/org/oscim/android/test/OverpassActivity.java b/vtm-android-example/src/org/oscim/android/test/OverpassActivity.java index 210343c0..865c3936 100644 --- a/vtm-android-example/src/org/oscim/android/test/OverpassActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/OverpassActivity.java @@ -1,5 +1,6 @@ /* * Copyright 2019 Gustl22 + * Copyright 2020 devemux86 * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -15,7 +16,6 @@ package org.oscim.android.test; import android.os.Bundle; - import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.layers.tile.buildings.BuildingLayer; import org.oscim.layers.tile.buildings.S3DBLayer; @@ -25,9 +25,12 @@ import org.oscim.map.Viewport; import org.oscim.theme.VtmThemes; import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.tiling.source.overpass.OverpassTileSource; +import java.util.Collections; + /** * Use Overpass API data for vector layer. * Only for developing as can be error-prone. @@ -46,7 +49,7 @@ public class OverpassActivity extends MapActivity { .build(); VectorTileLayer l = mMap.setBaseMap(tileSource); - TileSource bitmapTileSource = DefaultSources.OPENSTREETMAP + UrlTileSource bitmapTileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .zoomMax(15) .fadeSteps(new BitmapTileLayer.FadeStep[]{ @@ -54,6 +57,7 @@ public class OverpassActivity extends MapActivity { new BitmapTileLayer.FadeStep(16, Viewport.MAX_ZOOM_LEVEL, 0f, 0f) }) .build(); + bitmapTileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-android-example")); mMap.layers().add(new BitmapTileLayer(mMap, bitmapTileSource)); BuildingLayer.RAW_DATA = true; diff --git a/vtm-app/src/org/oscim/app/MapLayers.java b/vtm-app/src/org/oscim/app/MapLayers.java index 614e27fc..56e7cf0b 100644 --- a/vtm-app/src/org/oscim/app/MapLayers.java +++ b/vtm-app/src/org/oscim/app/MapLayers.java @@ -1,6 +1,6 @@ /* * Copyright 2013 Hannes Janetzek - * Copyright 2016-2019 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -41,6 +41,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.util.Collections; public class MapLayers { @@ -183,7 +184,9 @@ public class MapLayers { switch (id) { case R.id.menu_layer_openstreetmap: - mBackgroundLayer = new BitmapTileLayer(App.map, DefaultSources.OPENSTREETMAP.build()); + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP.build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); + mBackgroundLayer = new BitmapTileLayer(App.map, tileSource); break; case R.id.menu_layer_naturalearth: diff --git a/vtm-playground/src/org/oscim/test/AnimatorTest.java b/vtm-playground/src/org/oscim/test/AnimatorTest.java index f6abbdc6..08ae7511 100644 --- a/vtm-playground/src/org/oscim/test/AnimatorTest.java +++ b/vtm-playground/src/org/oscim/test/AnimatorTest.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2017-2019 devemux86 + * Copyright 2017-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -22,19 +22,22 @@ import org.oscim.core.BoundingBox; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.renderer.MapRenderer; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; +import java.util.Collections; + public class AnimatorTest extends GdxMapApp { @Override public void createLayers() { MapRenderer.setBackgroundColor(0xff000000); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 4); diff --git a/vtm-playground/src/org/oscim/test/AtlasMultiTextureTest.java b/vtm-playground/src/org/oscim/test/AtlasMultiTextureTest.java index 0e589734..98e755b0 100644 --- a/vtm-playground/src/org/oscim/test/AtlasMultiTextureTest.java +++ b/vtm-playground/src/org/oscim/test/AtlasMultiTextureTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * Copyright 2017 Longri * * This program is free software: you can redistribute it and/or modify it under the @@ -28,12 +28,13 @@ import org.oscim.layers.marker.MarkerSymbol; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.renderer.atlas.TextureAtlas; import org.oscim.renderer.atlas.TextureRegion; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.utils.TextureAtlasUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; @@ -46,9 +47,10 @@ public class AtlasMultiTextureTest extends MarkerLayerTest { // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 2); diff --git a/vtm-playground/src/org/oscim/test/BitmapTileTest.java b/vtm-playground/src/org/oscim/test/BitmapTileTest.java index 52fbf4cc..4a74c17d 100644 --- a/vtm-playground/src/org/oscim/test/BitmapTileTest.java +++ b/vtm-playground/src/org/oscim/test/BitmapTileTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -20,8 +20,11 @@ import com.badlogic.gdx.Input; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.renderer.MapRenderer; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; +import java.util.Collections; + public class BitmapTileTest extends GdxMapApp { private BitmapTileLayer mLayer = null; @@ -33,7 +36,9 @@ public class BitmapTileTest extends GdxMapApp { mMap.layers().remove(mShaded); mShaded = null; mMap.layers().remove(mLayer); - mLayer = new BitmapTileLayer(mMap, DefaultSources.OPENSTREETMAP.build()); + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP.build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); + mLayer = new BitmapTileLayer(mMap, tileSource); mMap.layers().add(mLayer); mMap.clearMap(); return true; @@ -64,7 +69,9 @@ public class BitmapTileTest extends GdxMapApp { public void createLayers() { MapRenderer.setBackgroundColor(0xff888888); - mLayer = new BitmapTileLayer(mMap, DefaultSources.OPENSTREETMAP.build()); + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP.build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); + mLayer = new BitmapTileLayer(mMap, tileSource); mMap.layers().add(mLayer); } diff --git a/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java b/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java index 1e3c5de2..3bfed4c4 100644 --- a/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java +++ b/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * Copyright 2017 nebular * * This program is free software: you can redistribute it and/or modify it under the @@ -22,12 +22,13 @@ import org.oscim.core.GeoPoint; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.marker.*; import org.oscim.layers.tile.bitmap.BitmapTileLayer; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class ClusterMarkerLayerTest extends MarkerLayerTest { @@ -41,9 +42,10 @@ public class ClusterMarkerLayerTest extends MarkerLayerTest { // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(53.08, 8.83, 1 << 15); diff --git a/vtm-playground/src/org/oscim/test/LineTexTest.java b/vtm-playground/src/org/oscim/test/LineTexTest.java index b671deff..a64d8db7 100644 --- a/vtm-playground/src/org/oscim/test/LineTexTest.java +++ b/vtm-playground/src/org/oscim/test/LineTexTest.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2016-2019 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -28,12 +28,13 @@ import org.oscim.layers.vector.PathLayer; import org.oscim.layers.vector.geometries.Style; import org.oscim.map.Map; import org.oscim.renderer.bucket.TextureItem; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class LineTexTest extends GdxMapApp { @@ -45,9 +46,10 @@ public class LineTexTest extends GdxMapApp { @Override public void createLayers() { - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 2); diff --git a/vtm-playground/src/org/oscim/test/MarkerLayerTest.java b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java index 4914c9fc..167d79c2 100644 --- a/vtm-playground/src/org/oscim/test/MarkerLayerTest.java +++ b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -27,12 +27,13 @@ import org.oscim.layers.marker.MarkerItem; import org.oscim.layers.marker.MarkerSymbol; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.map.Map; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static org.oscim.layers.marker.MarkerSymbol.HotspotPlace; @@ -49,9 +50,10 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe // Map events receiver mMap.layers().add(new MapEventsReceiver(mMap)); - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 2); diff --git a/vtm-playground/src/org/oscim/test/OverpassTest.java b/vtm-playground/src/org/oscim/test/OverpassTest.java index a3a8ce3e..112fdbfc 100644 --- a/vtm-playground/src/org/oscim/test/OverpassTest.java +++ b/vtm-playground/src/org/oscim/test/OverpassTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * Copyright 2019 Gustl22 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -30,9 +30,12 @@ import org.oscim.map.Viewport; import org.oscim.theme.VtmThemes; import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.tiling.source.overpass.OverpassTileSource; +import java.util.Collections; + /** * Use Overpass API data for vector layer. * Only for developing as can be error-prone. @@ -51,7 +54,7 @@ public class OverpassTest extends GdxMapApp { .build(); VectorTileLayer l = map.setBaseMap(tileSource); - TileSource bitmapTileSource = DefaultSources.OPENSTREETMAP + UrlTileSource bitmapTileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .zoomMax(15) .fadeSteps(new BitmapTileLayer.FadeStep[]{ @@ -59,6 +62,7 @@ public class OverpassTest extends GdxMapApp { new BitmapTileLayer.FadeStep(16, Viewport.MAX_ZOOM_LEVEL, 0f, 0f) }) .build(); + bitmapTileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, bitmapTileSource)); BuildingLayer.RAW_DATA = true; diff --git a/vtm-playground/src/org/oscim/test/PathLayerTest.java b/vtm-playground/src/org/oscim/test/PathLayerTest.java index 48f1ed81..914a3c23 100644 --- a/vtm-playground/src/org/oscim/test/PathLayerTest.java +++ b/vtm-playground/src/org/oscim/test/PathLayerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -26,11 +26,12 @@ import org.oscim.gdx.GdxMapApp; import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.layers.vector.PathLayer; import org.oscim.map.Map.UpdateListener; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class PathLayerTest extends GdxMapApp { @@ -41,9 +42,10 @@ public class PathLayerTest extends GdxMapApp { @Override public void createLayers() { - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 2); diff --git a/vtm-playground/src/org/oscim/test/VectorLayerTest.java b/vtm-playground/src/org/oscim/test/VectorLayerTest.java index aa25ab98..0f95aa46 100644 --- a/vtm-playground/src/org/oscim/test/VectorLayerTest.java +++ b/vtm-playground/src/org/oscim/test/VectorLayerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -22,18 +22,21 @@ import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.layers.vector.VectorLayer; import org.oscim.layers.vector.geometries.PointDrawable; import org.oscim.layers.vector.geometries.Style; -import org.oscim.tiling.TileSource; import org.oscim.tiling.source.OkHttpEngine; +import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.utils.ColorUtil; +import java.util.Collections; + public class VectorLayerTest extends GdxMapApp { @Override public void createLayers() { - TileSource tileSource = DefaultSources.OPENSTREETMAP + UrlTileSource tileSource = DefaultSources.OPENSTREETMAP .httpFactory(new OkHttpEngine.OkHttpFactory()) .build(); + tileSource.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-playground")); mMap.layers().add(new BitmapTileLayer(mMap, tileSource)); mMap.setMapPosition(0, 0, 1 << 2); diff --git a/vtm-web-app/src/org/oscim/web/client/GwtMap.java b/vtm-web-app/src/org/oscim/web/client/GwtMap.java index 22e683f8..bee8a186 100644 --- a/vtm-web-app/src/org/oscim/web/client/GwtMap.java +++ b/vtm-web-app/src/org/oscim/web/client/GwtMap.java @@ -1,7 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016-2018 Izumi Kawashima - * Copyright 2017-2018 devemux86 + * Copyright 2017-2020 devemux86 * Copyright 2019 Gustl22 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -23,13 +23,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.gwt.GwtApplication; import com.badlogic.gdx.backends.gwt.GwtGraphics; import com.badlogic.gdx.graphics.glutils.GLVersion; - -import org.oscim.backend.AssetAdapter; -import org.oscim.backend.CanvasAdapter; -import org.oscim.backend.DateTimeAdapter; -import org.oscim.backend.GL; -import org.oscim.backend.GL30; -import org.oscim.backend.GLAdapter; +import org.oscim.backend.*; import org.oscim.core.MapPosition; import org.oscim.core.Tile; import org.oscim.gdx.GdxAssets; @@ -54,6 +48,8 @@ import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Collections; + class GwtMap extends GdxMap { static final Logger log = LoggerFactory.getLogger(GwtMap.class); @@ -107,9 +103,10 @@ class GwtMap extends GdxMap { if ("toner".equals(mapName)) ts = DefaultSources.STAMEN_TONER.build(); - else if ("osm".equals(mapName)) + else if ("osm".equals(mapName)) { ts = DefaultSources.OPENSTREETMAP.build(); - else if ("watercolor".equals(mapName)) + ts.setHttpRequestHeaders(Collections.singletonMap("User-Agent", "vtm-web-app")); + } else if ("watercolor".equals(mapName)) ts = DefaultSources.STAMEN_WATERCOLOR.build(); else if ("ne-landcover".equals(mapName)) ts = DefaultSources.NE_LANDCOVER.build(); diff --git a/vtm/src/org/oscim/tiling/source/bitmap/DefaultSources.java b/vtm/src/org/oscim/tiling/source/bitmap/DefaultSources.java index 5134f0fd..477e2b83 100644 --- a/vtm/src/org/oscim/tiling/source/bitmap/DefaultSources.java +++ b/vtm/src/org/oscim/tiling/source/bitmap/DefaultSources.java @@ -1,7 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 Andrey Novikov - * Copyright 2016-2019 devemux86 + * Copyright 2016-2020 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -35,6 +35,8 @@ public class DefaultSources { new FadeStep(8 - 1, 8 + 1, 0.7f, 0) }; + // Requires a valid HTTP User-Agent identifying application + // https://operations.osmfoundation.org/policies/tiles/ public static Builder OPENSTREETMAP = BitmapTileSource.builder() .url("https://tile.openstreetmap.org") .zoomMax(18);