MapBoxTileSource design issues
Opened this issue · 10 comments
GoogleCodeExporter commented
Adding a MapBoxTileSource was a great idea.
However, the current implementation has the following issues:
1) Default zoom max level = 20 is too high. At this level, it shows empty tiles
with just a cross. Should be 19.
2) Handling of MapBox map ID with retrieveMapBoxMapId is not good. MapBox can
provide various types of maps (satellite, satellite labelled,...).
No way to handle more than 1 map type in an application, even using the
"full-featured" constructor.
I would suggest to change the default constructor, to pass it the map ID.
And to avoid various map types mixed in the same caching area, we also have to
pass a user-defined name.
public MapBoxTileSource(String name, String aMapBoxMapId)
{
mapBoxMapId = aMapBoxMapId;
super(name, ResourceProxy.string.base, 1, 19, 256, ".png", mapBoxBaseUrl);
}
The caller can then create it for instance this way:
OnlineTileSourceBase myMBSatTileSource = new MapBoxTileSource(
"MapBoxSatellite",
ManifestUtil.retrieveKey(this, "MAPBOX_SAT_MAPID"));
3) It's using this base url "http://api.tiles.mapbox.com/v3/"
=> It doesn't use the usual "farming" mechanism:
"http://a.tiles.mapbox.com/v3/",
"http://b.tiles.mapbox.com/v3/",
"http://c.tiles.mapbox.com/v3/",
"http://d.tiles.mapbox.com/v3/"
Not sure if it's a potential issue or not.
4) It's using this resourceId: ResourceProxy.string.base, which is also the id
of BASE tile source (http://topo.openstreetmap.de/base/), and used at various
places in osmdroid.
Strange, but again, not sure if it's a potential issue or not.
Original issue reported on code.google.com by mathieu....@gmail.com
on 27 Jan 2014 at 5:14
GoogleCodeExporter commented
I would also like to ask to make String getMapBoxMapId() non-static and
overridable.
It will allows not to depend on the AndroidManifest, context and on
retrieveMapBoxMapId().
Original comment by ls.illar...@gmail.com
on 27 Jan 2014 at 5:31
GoogleCodeExporter commented
Do you know where the docs for this are?
I looked at https://www.mapbox.com/developers/api/ but it wasn't clear what the
tile url should be or what is the highest zoom level.
Original comment by neilboyd
on 31 Jan 2014 at 6:01
GoogleCodeExporter commented
[deleted comment]
GoogleCodeExporter commented
@ls.illarionov Or would you prefer a setter for mapBoxMapId? Then you don't
need to extend this class.
I don't really see the point of the getMapBoxMapId method as it is now.
Original comment by neilboyd
on 31 Jan 2014 at 6:09
- Changed state: Accepted
GoogleCodeExporter commented
This page https://www.mapbox.com/developers/api-overview/
mentions the tiles base farming: "http://a.tiles.mapbox.com/v3/", etc.
Highest zoom level: I've not found in the doc, it's experimental.
Patch for suggested changes available here:
https://drive.google.com/file/d/0B_8VOmRyW664Sk9CcEJtM2k3YU0/edit?usp=sharing
Original comment by mathieu....@gmail.com
on 1 Feb 2014 at 4:57
GoogleCodeExporter commented
There are examples which sometimes mention a,b,c,d and sometimes don't. I was
looking for a spec rather than examples.
Original comment by neilboyd
on 2 Feb 2014 at 7:40
GoogleCodeExporter commented
No spec found...
Searching for a doc, I discovered that MapBox guys are working on their own
fork of osmdroid. See: https://www.mapbox.com/blog/mapbox-android/
Original comment by mathieu....@gmail.com
on 3 Feb 2014 at 11:02
GoogleCodeExporter commented
> mentions the tiles base farming: "http://a.tiles.mapbox.com/v3/", etc.
For tiles we recommend the [a, b, c, d] set that are under the api level. api
is also supported, but less emphasized for tiles.
> Highest zoom level: I've not found in the doc, it's experimental.
There isn't a service-wide maximum zoom level - we can support higher zooms on
road data than on satellite, and higher zooms for satellite in well-covered
metro areas than the country or the middle of the ocean, etc.
> Searching for a doc, I discovered that MapBox guys are working on their own
fork of osmdroid.
Yes, the repo is https://github.com/mapbox/mapbox-android-sdk
Original comment by t...@macwright.org
on 8 Feb 2014 at 3:59
GoogleCodeExporter commented
[deleted comment]
GoogleCodeExporter commented
I fixed point 1 and 3 in revision 1430. I chose zoom level 18 since that is the
highest zoom level that any of the other providers have.
I fixed point 4 in revision 1431, although it does highlight a fundamental
limitation of the resource proxy idea for external tile sources. A solution for
that would also help with point 2.
Original comment by neilboyd
on 9 Feb 2014 at 9:26