Newest version of Brutile

Topics: SharpMap v0.9 / v1.x
Editor
Jan 14, 2014 at 11:55 AM
Hi,

Can anyone give me quick rundown of any issues I might come across using sharpmap with the newest version of brutile? (specifically to leverage its WMTS capabilities). I don't have time for trial and error right now so thought I would just ask the question!

Will it just be a matter of updating the references and then rebuilding the source with the new dll, or could it be even simpler than that?

Thanks,

Rob Smart
Coordinator
Jan 14, 2014 at 12:24 PM
Unfortunatly not, there are breaking changes. That's why we still stick to 0.7.4 version.
Editor
Jan 14, 2014 at 1:03 PM
Could i write a new provider to use the new version? How hard would that be?
Coordinator
Jan 14, 2014 at 2:13 PM
It is not too hard, but it might be annoying as there currently is an issue with WMTS and WGS84 tiles and therfore the API regarding WMTS might change in the near future.

There are some changes to ITileSchema interface which you can pass by by casting to TileSchema. If not you have to call some function instead of getting a property.

Hth FObermaier
Editor
Jan 14, 2014 at 2:56 PM
Do you think it might be worth creating a sharpmap WMTS implementation (like the sharpmap WMS implementation) instead of using brutile?

I've spent a bit of time with sharpmap WMS implementation so I think that a lot of the code to parse the WMTS is there, it would just need adapting from WMS to WMTS.
Coordinator
Jan 15, 2014 at 7:54 AM
Robert I cannot estimate the amount of time you'll have to spend on that.
If you think it is straight forward, I'd say go. you may want to also look at https://github.com/qgis/QGIS/blob/master/src/providers/wms/qgswmsprovider.cpp (Look for parseWmts...)
Coordinator
Jan 27, 2014 at 7:36 AM
We are about to release SharpMap 1.1.
When that is done we'll update to the latestes BruTile version. Beware though, It still has some issues with WMTS, as we have not yet figured out how to compute the bounding box and scale settings 100% bullet proof.
Editor
Jan 27, 2014 at 5:36 PM
Hi Felix,

Thanks for the feedback. When you say about to release, do you mean this week, or this month? Will the Brutile WMTS implementation (and does the Brutile WMS implemention) handle Authentication of any sort?

If it does then I may be able to help sort out the final few bits of the WMTS implementation. If not then I'll have to try and sort something out in sharpmap (like a new layer).

Thanks
Coordinator
Jan 27, 2014 at 7:11 PM
We are waiting for the release of a bugfix BruTile package.
Everything else is set.
Editor
Jan 27, 2014 at 10:27 PM
And do you know if it can access authenticated wms and wmts servers?

Thanks,

Rob
Coordinator
Jan 28, 2014 at 10:24 AM
Edited Jan 28, 2014 at 10:26 AM
The bugfix release we are waiting for is still 0.7.4, so no WMTS.

For the following version (1.2) we will have WMTS via BruTile. Then you can access authenticated WMTS Servers if you create you instantiate WebTileProvider with your own Func<Uri, byte[]> implementation that uses credentials and proxy. See RequestHelper class.
Jan 31, 2014 at 2:08 PM
hi this might be an old thread, but similiar question.
Is there any any possibility for using brutile 0.9 with sharpmap 2.0?
It said in nuget it wasn't supported, and there is supposedly some updates in 0.9 that decreased slow rendering.

regards Roar
Coordinator
Feb 2, 2014 at 10:20 AM
As i said in my previous post, BruTile will be updated after the release of SharpMap V1.1
Feb 3, 2014 at 9:33 AM
ah oki thanks. sorry for the nag!
Jun 7, 2014 at 9:17 PM
Edited Jun 7, 2014 at 9:26 PM
Any updates here?
I have SharpMap 1.0.4.0 in my project and Nuget tells me I can upgrade to 1.1. but that fails because I have Brutile 0.9.8.0
If I revert to the earlier version of Brutile it wants NewtonSoft JSON.Net 4.5.11. That is a really old version!
Nuget is an awesome tool but when you have packages like yours in the dependency tree relying on old versions, you are back in DLL hell....
Developer
Jun 9, 2014 at 8:47 AM
btw, you can have multiple versions of the same DLL into your project, the trick is to embed them as resources and let the AppDomain.CurrentDomain.AssemblyResolve event do the binding.