ThinkGeo.com    |     Documentation    |     Premium Support

v10 update and replacement for GdiPlusRasterLayer

Looks like I submitted this wrong last time as a “message”. So here it is again.

We’ve decided that now is a good time to explore updating to your v10 in spite of the significant changes. I’m certainly not fond of the enormous explosion of files via NuGet. But over all, using your upgrade guide has allowed me to make some progress (http://wiki.thinkgeo.com/wiki/map_suite_10_upgrade_guide). But a few things remain.

I’m still not clear on how to get the licensing working, both for me (and others) as dev, and also for our integration build. Can you provide guidance?

I previously used GdiPlusRasterLayer just passing the path of the raster file. It looks like maybe I’m supposed to use RasterLayer.LoadLayer with a stream wrapping the file? But I can’t seem to find anything that shows me what the direct replacement might look like. Our raster images can be a variety of types (mainly png, tiff, bmp).

And on that note, I’m not having much luck finding docs on the new v10 API. I found the WIKI, but when I look at RasterLayer, it doesn’t even list the LoadLayer method. Looks like it’s just coming in off Layer. So do I have to pick a specific type of layer based on the file path?
http://wiki.thinkgeo.com/wiki/api/thinkgeo.mapsuite.layers.rasterlayer

Is there a better resource for what replaced what? Or how to do things without having to pour through a bunch of samples again?

Hi Russ,

The NativeImage is the replacement of GdiPlusRasterLayer, you can view the description of it here:

For license, I think we have guide on wiki about that, wish they are helpful.
http://wiki.thinkgeo.com/wiki/map_suite_license_guide
http://wiki.thinkgeo.com/wiki/map_suite_10_upgrade_guide

Regards,

Don

First off, it would be really nice if materials were better cross-linked and indexed. I started with the V10 migration guide, but if there was any way to get from that to the licensing information, I didn’t see it. At the very least I would have expected a link in the section of file based licensing. I’m also not sure how I was supposed to get from the GdiPlusRasterLayer to NativeImage. Again, a reference from GPRL indicating it was deprecated in v10 and a link to the help doc for the new class, and maybe one to a sample demonstrating. Now THAT would be useful. I spent a lot of time figuring out how to recreate what we had to get our map past the 3.0 boundary, but I was learning a new product and rewriting an old internal component. Now all I’m given is time for a library version rev that seemed pretty clear from the migration document, and I (and others I’m sure) don’t have time to dig for the relevant bits. The migration doc is good as far as it goes, but it does seem that important bits are missing.

But thank you for your help. Once I get time to read those links, that should at least get the migration compiling, and licensing sorted. Hopefully there won’t be any large semantic changes to sort out after that, which unfortunately happens frequently even without the massive refactor, but we’ll see. Then it will be just a matter of figuring out how much of the massive number of dependencies (introduced by NuGet) can be eliminated.

This is really getting frustrating. For the v10 documentation it is difficult to find what you need, navigate, or much of anything else. Very dissatisfied.

I was hoping otherwise, but as I feared, getting that raster layer sorted just opened up for a whole bucket of new problems, most being sorted fairly easily by tools or logical associations.

But for my next blocking problem, I can’t find MapEngine. Searching your v10 API document I find a number of references to it (mostly related to event args) but nothing on it, and none of the references I checked had a link to it (a far too common problem in your docs). We previously used it to implement a mini-map based on your Mini Map Adornment Layer sample. But now I can’t find that in the v10 samples either. Can’t get a hit on NuGet, can’t get a hit searching, can’t get a hit trying to manually/visually trawl through pages. This has been part of our released product for several versions, so I hope there is an answer in v10, or we are going to get stranded on v9 for a long time just like what happened on the 3.0 update. I’ve already burned through more time than scheduled for this upgrade (based on your severely limited upgrade doc), and can’t afford spending much more time on it.

On that same topic, I believe I figured out the replacement for GdiPlusGeoCanvas as PlatformGeoCanvas. At first I thought, maybe they followed the same “Native” prefix pattern, but no, found nothing. And, as an example of the problem with the docs, this is what I find for [GdiPlusGeoCanvas][1]. Everywhere I look for replacement options I find nothing but that unhelpful “Note” at the top of the page telling me to look at a page that doesn’t have answers, or refer me to where they can be found.

But I still can’t compile since I have not yet found anything to replace MapEngine, so I have no idea if it actually works…

So what part of anything available to your customers would have led me (without a lot of wasted time searching blindly, failing, and posting here) to the new NativeImage and PlatformGeoCanvas? Based on the timing of responses, it seems our respective time zones are offset by large amount, so getting answers for each thing as encountered isn’t very productive since answers often aren’t available until the next day. Again, there should be something that allows me to get from 9.0 to 10.0 without so much time and effort. I understand the desire to cleanup, refactor, and commonize the code base. But doing things like this without undue burden on customers requires a much more effective and comprehensive approach to documenting the changes than I have yet found.

I’m really hoping you can point me to some docs I missed. But at the moment, my only compile blocker is the MapEngine for our MiniMap Adornment Layer. Then we’ll see what breaks at runtime…
[1]: http://wiki.thinkgeo.com/wiki/thinkgeo.mapsuite.portablecore.gdiplusgeocanvas

Hi Russ,

In fact the license on v10 is much easier to be used and deployed than our v9, here we have another topic talked about that more detail: http://wiki.thinkgeo.com/wiki/map_suite_runtime_license_guide_for_desktop

Thanks for your suggestion and thanks to let us know the problems you met when upgrade from v9 to v10.

Because our v10 is a really different version from all the old versions, it owns totally new structure and distribution solution, so I think our documentations are always not enough for v9 users. But please believe that we are keeping build more and better wiki pages, they will solve the scenarios which v9 users had met or will meet. I have reported this to our manager, I think we need to wait a reply about when our manager can assign higher priority to the wiki pages tasks these days.

As below reply some questions on the detail class:

  1. You’re right, the PlatformGeoCanvas is the replacement for GdiPlusGeoCanvas. Our manager is ready to create a wiki page which shows the replacement relationship between v9 and v10 classes follow your suggestion here.

  2. About where is the MapEngine. The MapEngine is still in the Core package, and it should be referenced by default when you referenced any other package. You can also find it in Nuget like this:


    We suggest you download the “Standard” package for your product, which contains most packages and you don’t need to find them one by one. If your MapEngine still cannot get compiled, could you please provide us more detail information about which API still have problems, so we can help you to solve them.

  3. We have many new samples for 10.0 here, wish they are helpful when you met problem to use our v10 APIs. https://github.com/thinkgeo

Any question please feel free to let us know.

Regards,

Don

Thank you for the additional information and exploring solutions. It will take me a bit to process it all, but I wanted to get back as soon as possible on some items to prevent further delays due to time zone.

  1. I did install “Standard” from NuGet and got an truly ridiculous number of dependencies installed. However, I still can’t find the MapEngine, and I don’t see a ThinkGeo.MapSuite.Core namespace or reference. I don’t know what else I can give you other than the compiler and/or IDE can’t seem to find MapSuite after installing your “Standard” NuGet package. Are you telling me that you have confirmed that you can create a new WinForms project and add your “Standard” NuGet package, then start using MapEngine?

1.A) I also tried to uninstall/reinstall, but your package does not support Uninstall, even though NuGet does show uninstall options. The new NuGet integration is in my opinion not well thought out. Looks like I don’t get what I should, I can’t uninstall, and so far I’ve seen no way to “just get what I want and need”. I thought that last point was supposed to be one of the goals of v10? But I see no way to easily reduce this huge list of dependencies.

  1. In your samples, I did not see a mini-map adornment layer. That would likely have provided clues as to where I could find MapEngine, but it’s lack in general seems odd since it has been a very popular feature with our users, and is not something that is obvious without a sample. But I’ll look closer, perhaps it’s there but not obvious.

Hi Russ,

  1. The “Standard” package should be chosen when you are not familiar with our package structure, after that stage you should want to download the “BareBone” package and other packages you need for your project. And because we just open the MapEngine for v10 when we get your requirement, that maybe hadn’t get updated, so please try to get ThinkGeo.Mapsuite from Nuget later today.

  2. I tried some packages today, but hadn’t found which cannot be uninstalled in Nuget. Could you please let us know which packages cannot get uninstalled? We can double check the package and see whether is the problem.

  3. We are trying to build more samples, but now the sample for v10 is not enough, I think the mini-map sample also will be added later.

Regards,

Don

I knew I couldn’t find it anywhere. But after getting around that I got an exception without our code in the call stack.

At this time we’ve decided to abandon updating to v10 for our next version update. It’s a fairly small one for us, and has only a few months to complete. At this time we just can’t allocate the resources or deal with the obvious risks. We’ll revisit once v10 has matured a bit.

Hi Russ,

We encourage user try our 10.0 because the new features, but if your project time is not enough on solve all problems, choose 9.0 now is also a good solution. Our developer still maintain 9.0 and please don’t worry about the support on that.

I think the v10 source including documentation and sample will be better and better, so welcome to upgrade to v10 in future.

Regards,

Don