Copy Mapbox style to another account WITH tilesets it uses - mapbox

In Mapbox documentation, there is a simple way to copy a style from one account to another.
However, the copied style is still using the custom tilesets from the old account and I didn't find any way to transfer the tilesets together with the style. How do I do that?
Also, is there a way to export/download the custom tileset (that I uploaded a while ago and lost the source since) from my own account?

Related

How to upload files and attachments to the sobject record using REST API?

Salesforce has two different UIs and in accordance with it, it has the possibility to store attached files differently.
Two files were uploaded via the classic UI and they are marked as 'attachments'. Other files were uploaded through the new UI and they are marked as 'files'.
I want to upload all of these files using REST API. I cannot find the proper documentation. Can somebody help me with this?
That's not 100% true. In SF Classic UI you were able to upload Files too. It's "just" about knowing the right API name of the table and you'll find lots of examples online.
Attachment and Document objects have exactly same API names, you can view their definitions in SOAP API definition or in REST API explorer (there was something which you can still see in screenshot in here, seems to be down now, maybe they're moving it to another area in documentation...)
The Files (incl. "Chatter Files") are stored in ContentDocument and ContentVersion object. The name is unexpected because long time ago SF purchased another company's product and it was called "Salesforce Content". In beginning it was bit of mess, now it's better integrated into whole platform but still some things lurk like File folders can be called Libraries sometimes in documentation but actual API name is ContentWorkspace. The entity relationship diagram can help a bit: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_erd_content.htm
ContentDocument is a header to which many places in SF link (imagine file wasting space on disk only once but being cross-linked from multiple records). It can have at least 1 version and if you need to update the document - you'd upload new version but all links in org wouldn't change, they'd still link to header.
So, how to use it?
REST API guide: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_insert_update_blob.htm
or maybe Chatter API guide (you tagged it with chatter so chances are you already use it): https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_files.htm
some of my answers here might help (shameless plug). They're about upload and reading data too and one is even about data loader... but you might experiment with exporting files first, get familiar with structure before you load?
https://stackoverflow.com/a/48668673/313628
https://stackoverflow.com/a/56268939/313628
https://stackoverflow.com/a/60284736/313628

How to append data to a dataset in Mapbox

I'm migrating from Fusion Tables to Mapbox. I created a Dataset --> Tileset from an uploaded csv with my data. Formatted my style using the tileset and I can visualize and filter my map using the Mapbox GL JS API, but I'm struggling to understand how to add more entries to my map.
My data is a collection of features with the same properties on each feature, so I display all the features and display the properties based a feature clicked on the map.
If I try to add a feature on Mapbox Studio Dataset, it gives me the option to add a feature, but I have to manually add all the properties for the feature.
Is there a way to append entries or programmatically add data to a dataset to append data to my map?
Thanks!
You can use the Mapbox Datasets API to programmatically read, create, update, and remove features from your dataset. For your use case specifically, the update a dataset endpoint and insert or update a feature endpoint will likely be useful.
Note that after you update your dataset, you will need to re-export it as a tileset to then use the updated data in your map style.
Alternatively, you could consider using the new Mapbox Tilesets API, which provides a powerful pipeline for programmatically creating and updating tilesets. This tutorial is a useful resource for getting started with the Tilesets API and Tilesets CLI.

Multiple gpx layers in Mapbox Studio style editor

If I upload a gpx trace to
convert it into a tileset, I can use it in the Style editor just as expected. But if I upload a second and want to use it as a data source for another or even the same layer, It is greyed out with the following notice:
This source includes vector layer names that are already in your composite source. vector layer names must be unique.
I didn't set any name myself or changed the gpx traces in a weird way. I even renamed the style layer. I looked into the details of the automatically created tileset but I couldn't see a name which was the same on both sources. The only thing that both gpx traces had was the "tracks" part of the source, which contained the actual trace.
But I can't figure out how to change this name.
Is there some way to upload two gpx traces and use them in the same style?
I want to avoid workarounds if possible but if it doesn't work another way, I imagine that there are at least two workarounds:
1. Convert into a geojson file, upload as a dataset and convert into a tileset.
2. Somehow append multiple gpx files into one, but keep the traces separate.
What would be the downsides, apart from having more files to keep up2date? Is (2) even possible?
Update:
In the end I did convert the gpx files into geojson tracks. THis did work exactly as hoped. But I'm still interested if there's a shorter way or if I just did something wrong previously.
Disclaimer: I work at Mapbox.
It isn't possible to upload multiple GPX files directly to the same map style in Mapbox because their layer names are automatically set as track. To fix this, I recommend following these steps:
Convert your data to GeoJSON using a tool like toGeojson
Upload the GeoJSON to Mapbox Studio
Add the data to your map in Studio or GL JS
So to answer your question: you are going about this the correct way. One thing to note: you don't have to upload it as a dataset first. You can upload your GeoJSON as a tileset directly, unless you have some editing you want to do first.

Use existing offline raster mbtiles to display on mapbox map

I'd like to transition the map in my app from currently Apple-Maps-SDK to Mapbox. My users already downloaded a lot of offline maps into several .mbtiles tiles containing raster data.
My question now is if it's possible to still use those while the user will be transitioning to the new maps? I just don't simply want to delete all offline maps and tell the user that he needs to download everything again right now, but rather give them a time-window to do that...
I was looking at MGLRasterTileSource/MGLSource and thought that I can create a subclass and somehow provide my own data to the map, but this does not seem to be supported. There are no datasource methods on it for that purpose...
Would be great if somebody could point me into the direction on how to archive what I want.
EDIT:
So I thought it might work that way... I migrate my existing raster tiles into a downloaded pack inside the mapbox offline database. So I had a look at the caches.db but at least the data in there is not just a plain png/jpg (tried with the mapbox satellite images, which should be raster).
Cause there is no public interface for getting existing raster-tiles in there, is there?
I've seen an other solution where somebody is hosting a webserver inside the app... but that somehow looks like quite an overkill to me?!?
https://gist.github.com/namannik/3b7c8b69c2d0768d0c2b48d2ed5ff71c

When area learning in Project Tango SDK's examples are running, where is the learning data stored?

I have using Phap 2 pro for my graduation project.
The project theme is 3D object recognition using Google Tango.
So, I run the area learning in Project Tango SDK's example!
I need the area learning data!
However, I can't find it.
Where is the learning data stored?
Area description picker image
I can't find where ADF is stored from Google's document.
I think there is no specific path to ADF.
But we can export ADF to any path by using areaDescription.ExportToFile(string filePath)
How to use :
AreaDescription m_areaDescription = AreaDescription.ForUUID(string UUID);
m_areaDescription.ExportToFile(Application.persistentDataPath);
reference
UUID is an unique ID allocated to each ADF. In your picture, small size string like "7ad2e08e-..." is the UUID.
ADF is a binary file. So you can't use this outside a Tango application. If you want a captured mesh data, maybe ExperimentalMeshBuilderWithColor scene can be helpful.
good luck!
I personally never managed to get into Area Description Files, but looking at your question here are two facts that came to my mind:
The A of ADF is for Area... so I am not sure that the learnt data can help to recognize objects (except maybe for some key points)
PTC (Vuforia) recently came out with 3D objects recognition in their SDK (if you haven't checked it out already, their demo is pretty cool)