bertt / mapbox-vector-tile-cs

A .NET library for decoding a Mapbox vector tile
MIT License
74 stars 14 forks source link

[Question] Mapbox vector tile server solution #9

Closed pherbel closed 7 years ago

pherbel commented 7 years ago

Hi,

I would like to create a PoC for .Net based Vector Tile server and serve Mapbox and GeoJson vector tile format. I'm planning to load the map data from OSM with OsmSharp

Do you know a sample about it or could you adjust me to a right direction?

I'm new in the map rendering and vector tile rendering so any help would be awesome.

Thanks

bertt commented 7 years ago

Hi, seems like a nice project :-) For the server part maybe you can get some inspiration here https://github.com/bertt/MBTiles.Server

What are you planning to use for encoding the vector tiles?

pherbel commented 7 years ago

Yep, interesting project.

What are you planning to use for encoding the vector tiles?

What do you mean by that? On the frontend part or on the backend?

bertt commented 7 years ago

I meant on the server-side, or are you using existing vector tiles?

pherbel commented 7 years ago

First step I want to query the Tile information from OSM dump file by OsmSharp and covert this data to GeoJson and Mapbox Vector tile format.

xivk commented 7 years ago

I'm working on encoding... perhaps will do a pull request here or at least share my code later on...

pksorensen commented 7 years ago

I was just looking for a way to write (encode) into protobuf tiles from a similar data stucture (classes) as in this library. How far are youwith encoding? @xivk

xivk commented 7 years ago

I have some code to share but it's extremely hacky and dirty for now, more a POC than anything else... but it works for linestrings:

https://github.com/itinero/vector-tiles/tree/master/src/Itinero.VectorTiles.Mapbox

You can see it in action here:

http://routing.anyways.eu/#15.13/51.2621/4.7874

The roads data only comes from one of the Itinero route planning instances, the rest from open vector tiles.

pksorensen commented 7 years ago

Cool. Though I vent with a node interop solution :) using NodeServices in dotnet core. So i send the tile as json to node which encodes it using the following function

var vtpbf = require('vt-pbf')

module.exports = function (callback, tile) {
    var buff = vtpbf.fromGeojsonVt({ 'geojsonLayer': tile });
   // buff.pipe(callback.stream);
    callback(/* error */ null, buff);
};

Was alot faster then coding it in c# :)

xivk commented 7 years ago

Yeah for sure, perhaps a bit different for me, I need a high-performing way of generating the tiles without first encoding them as json directly from a routing database.

That's also why I probably won't be submitting a pull-request here but feel free to reuse whatever code you find in this project (in whatever license you want):

https://github.com/itinero/vector-tiles/tree/master/src/Itinero.VectorTiles.Mapbox

pksorensen commented 7 years ago

I ported GeoJSON-VT to c# some time ago and just wanted to be able to save the data as pbf files :) But thanks for the effort, i am sure that it also will benefits others :)

andreschardonguwo commented 7 years ago

hello @pksorensen . I'm very interested in your solution. Are you using your GeoJSON-VT to c# and then node + vtpbf ? Did you succeed? Thanks!

pksorensen commented 7 years ago

Ye, i can put it up online in the weekend with some examples. Ping me again in the weekend to ask for progress :)

I ported the GeoJSON-VT from JS to C#, then extented it to work with custom projections and generate pbf vector tiles to file system that can be hosted on a file host like Azure BlobStorage eller amazon.

andreschardonguwo commented 7 years ago

Nice! Is your GeoJSON-VT port public? O would you be willing to share it?

andreschardonguwo commented 7 years ago

Dear Poul, Thank you so much. I will for sure check back :) Thank you so much!

Andre Schardong www.andreschardong.com andreschardong@gmail.com +1 (226) 272-0040

On 21 February 2017 at 09:01, Poul Kjeldager Sørensen < notifications@github.com> wrote:

Ye, i can put it up online in the weekend with some examples. Ping me again in the weekend to ask for progress :)

I ported the GeoJSON-VT from JS to C#, then extented it to work with custom projections and generate pbf vector tiles to file system that can be hosted on a file host like Azure BlobStorage eller amazon.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bertt/mapbox-vector-tile-cs/issues/9#issuecomment-281352104, or mute the thread https://github.com/notifications/unsubscribe-auth/AWBvnetp2emP3Co3fCnfjPC5SBrYWg-7ks5reu5KgaJpZM4L5j5K .

andreschardonguwo commented 7 years ago

Hi Poul, Just checking if you had some time to look into this. so sorry bothering you. Regards

Andre Schardong www.andreschardong.com andreschardong@gmail.com +1 (226) 272-0040

On 21 February 2017 at 13:01, Andre Schardong andreschardong@gmail.com wrote:

Dear Poul, Thank you so much. I will for sure check back :) Thank you so much!

Andre Schardong www.andreschardong.com andreschardong@gmail.com +1 (226) 272-0040 <(226)%20272-0040>

On 21 February 2017 at 09:01, Poul Kjeldager Sørensen < notifications@github.com> wrote:

Ye, i can put it up online in the weekend with some examples. Ping me again in the weekend to ask for progress :)

I ported the GeoJSON-VT from JS to C#, then extented it to work with custom projections and generate pbf vector tiles to file system that can be hosted on a file host like Azure BlobStorage eller amazon.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bertt/mapbox-vector-tile-cs/issues/9#issuecomment-281352104, or mute the thread https://github.com/notifications/unsubscribe-auth/AWBvnetp2emP3Co3fCnfjPC5SBrYWg-7ks5reu5KgaJpZM4L5j5K .

pksorensen commented 7 years ago

Ye, i put the code at https://github.com/EarthML/EarthML.SpatialCluster but at this point its more a proof of concept. There is a sample application that can take a point.geojson file and tile it up aswell as do some simple XY clustering.

bertt commented 7 years ago

well some examples for vector tile servers are given so closing this issue