Partial update of mapbox tileset - mapbox

I have a mapbox tileset with lots of small data points and I regularly need to update one data point at a time. Is it possible to programmatically update a mapbox tileset in a partial way? These instructions from the mapbox docs and this stack overflow question explain how to overwrite a tileset file. This is useful but seems like overkill if I just want to update 1 point out of thousands.

I think what you're after is Mapbox's tippecanoe.

No. But probably the better way to update a source is using the tiling service API: https://docs.mapbox.com/api/maps/mapbox-tiling-service/#replace-a-tileset-source

Related

only using mapboxGL library, attribution required?

If I use mapboxGL library, without using any Mapbox basemap or data (I guess is possible to add as basemap my own WMS), do I have to keep the Mapbox watermark?
I had to read a few times, but I understand from the documentation that the answer is NO, I don't have to keep the watermark.
Just to make sure :.)
That's correct. You don't need to provide any attribution if you're not using Mapbox data or designs.
From the linked doc:
If your map does not use Mapbox designs, data, hosting, or other Mapbox APIs, Mapbox does not require you to provide attribution in either form.
If this is a serious project, and you need advice on licensing, I'd consult with a lawyer. They can accurately tell you what kinds of attribution and licensing you need. Additionally this will protect you as you build your own ToS.

mapbox create, load, and edit attributes of mbtiles

This is not really a programming question but more of looking for advice. I am trying to figure out the best way to load about 15 million polygons onto a web map. The file is large, about 20GB uncompressed.
The best solution that I have found is to use .mbtiles format to turn the geojson data into vector tileset. I did this with a portion of the data using MapBox with Tippecanoe but they do have upload limits of 25GB, I would assume all 15 million polygons with attributes are going to be larger than that.
Also, it seems a little slow when I load a sample of the .mbtiles into mapbox. Is there a better and faster solution than using MapBox to host the tiles? I am looking for faster tile loading times.
I am also wondering once the .mbtiles tiles are generated is it possible to edit the attributes of each individual polygon and if so, how? It would seem like a huge pain to have to go back and edit my geojson data, convert to .mbtiles and upload every time. I appreciate any help with this matter. Thank you.
You're asking a lot of separate questions there:
I would assume all 15 million polygons with attributes are going to be larger than [25GB, in mbtiles format]
I wouldn't assume that. You should try it.
Is there a better and faster solution than using MapBox to host the tiles? I am looking for faster tile loading times.
I'd very surprised if Mapbox's hosting is your bottleneck. Or rendering with Mapbox-GL-JS for that matter. But other solutions include cloud.tilehosting.com, or self-hosting with something like Tessera.
I am also wondering once the .mbtiles tiles are generated is it possible to edit the attributes of each individual polygon and if so, how?
You can use tile-join, in the same package as Tippecanoe. https://github.com/mapbox/tippecanoe#tile-join

Symbolizing OpenStreetMap layers in MapBox

Newbie post here, so forgive me if there's a better place for this, or if my question has been answered already.
I am trying to develop an interactive trail map for my town. I have added all of the trails into the OSM database, with good topology and tags for technical difficulty, quality etc:
http://www.openstreetmap.org/#map=16/49.0843/-117.7981
I am looking to develop the map using MapBox and Tilemill. My question is: If my main goal is to symbolize the OSM highway=cycleway features based on their difficulty tags, can I skip the whole tile creation process? If so, how would I go about symbolizing the various trails based on difficulty?
If I'm not interested in a custom basemap, is there any other advantage to using MBTiles? Here is my current working MapBox map, which is using a single MBTile:
http://www.kootenaymaps.ca/wp-content/uploads/2014/03/MapBoxEXAMPLE.html
Thanks in advance for any guidance here...
Barry
I have no experience with Tilemill but AFAIK it is designed to create webmabs on tile base only. So you might use another desktop renderer as Maperitive for example. Please also keep in mind, that there are already various approaches to create hiking maps online, for GPS and printing ;).

Indoor map creator

I have designed and developed couple of navigation apps using google API and osmdroid API for android powered devices. Now I am looking to create an Indoor navigation system using osmdroid API. But, in order to do so I need to create tiles similar to regular map tiles from an simple PNG file with naming convention similar to OpenStreetMap.
Please suggest me how to do this?
Cheers,
Susheel
You could design your indoor map using JOSM. Save it to a .osm file. Don't upload the data to OpenStreetMap unless it is a appropriate to do so (OpenStreetMap has some basic some indoor features, e.g. a highway=footway running through a shopping mall, but generally a lot of very detailed indoor stuff will be inappropriate for OSM) But...
With a .osm file you could then use one of the OpenStreetMap rendering tools to create a raster map, and chop it into tiles. For quick satisfaction I'd recommend Maperative, although I'm not sure how easy the last tile chopping step is. I've never done this with Maperative. Mapnik has a nice generate_tiles.py output, which will give you the tileset you want, but it's a bit tricky to set up in the first place.
Actually the last step is the main thing you're asking about. You can chop up any image into tiles. It may or may not be important to you that the tiles are geo-positioned in some meaningful way. For an old project I did a quick fudge solution using google tile cutter script, which is actually a wrapper around GDAL tools.
Have a look at the gdal library, and in particular gdal2tiles. This is a library designed to create maps from raster images, and serves exactly your purpose.
You can decide on a projection and what the bounds of your source image(s) are. The library allows you to reproject your image to the correct coordinate space.
It can also generate tiles at various zoom levels using gdal2tiles, either with or without reprojection.
Now you can check indoor rendering by drag and dropping OSM geojson data into https://app.openindoor.io web page.

Can I use my own tiles in MapKit, instead of Google's?

I'm currently trying to decide wether to accept a client's proposal or not. Basically, I'm asked to create a MapView that displays markers at several locations on a map, with the additional requirement that the client's own map tiles are used instead of Google Maps'.
I do not know yet how the client stores their own map tiles, but I was assured that I'd be able to convert them into any format I'd need.
Is it possible to use different map tiles in MapKit's MapView?
Do you have good online literature about this? Links please?
If this is possible, I'd propably have to create a server that sends the files to the device.
How hard is it to create such a server? Is it just "setup apache, done." or is there more to it?
How hard, or time-consuming would both these things be, in relation to just setting up a normal MapView?
Thanks for your answers.
You can't use custom tiles with MapKit. You're limited to using the ones provided by Google.
It could be easier to create a "Google Maps-ish" web app that uses the custom titles and can be viewed on the iPhone through UIWebView?
Have you looked at alternate map frameworks on the iPhone? I know there is at least one open source map engine, also with tiles (that are not as good as the Google tiles, but hey).
A decent set of them is here:
Creating an IPhone Map application
The "easiest" way to do this within the Google Map framework is simply to map the client's map as a texture on top of the "ground." You can create textures at different resolutions, for different zoom factors. Then you won't need to do any special coding at all --- everything will just work.
The way you do this is with a KML region that maps to ground level.
See: http://earth.google.com/outreach/tutorial_region.html