Mapillary API v4

  1. Filtering will happen on the client side of the vector tiles (for example filtering image point data by a date range, a set of usernames, or spatial overlap with a polygon)

Maybe I am naive and know too little about how vector tiles work but as a developer I have two takeaways from this statement/idea.

Warning, the statements below have been tapered with irony and sarcasm intentionally, not in order to ridicule but to make a point.

  1. To me, this reads like a step backwards. For decades and good reasons, researchers and scholars have developed sophisticated query languages along with structured and unstructured data storage systems called database systems. These systems have been optimized (again over decades) for speed/performance and ease of use. Now, every app developer is going to have to reinvent the wheel and implement possibly buggy query solutions of their own. Just think about executing more or less complex queries in a JavaScript environment on a mobile device; your battery is going to thank you. Why not continue using proven technology on the backend (where energy is not a scarce resource either) and inter-operable (text based) interfaces? What is wrong with executing queries on the backend? If I really need further filtering on the client then I can do it already. If I make a query request with every user click then I should get another job.

  2. Your application does not run on JavaScript? I am sorry, you have to write your own query code or license a JavaScript runtime just to run a bunch of libraries which can query tile data. Of course, you will have shove it all in into your app. And finally, you will also have to support all this additional weight for as long as your app has users. :confused:

It all depends on the point of view. Heavy lifting in the backend makes sense if you manage/pay for the frontend. I’m not familiar with the inner workings here, but querying large tables is a costly affair in any system. Pushing some of that load to (non-paying) user makes sense. Providing cached tiles means that data gets to the end user faster and more reliably. And for apps only using the map data for illustrative purposes, this is a win. Loss of querying capability is Someone Else’s Problem.

And anyone with deep desire to extract some ancient knowledge from the data will scrape it all into their personal hoard anyway.

Is the sandbox API now available?

It would be useful to have a look before the v3 is phased out and things break.