New Basemap Technique: Request for Comments (*Large Images*)

ModelerMJ

RubyTMIX, Basemapz
[original post text and images removed by OP]

After much consideration, and with sincere apologies to the Trainz community, I have decided not to release the "RubyTMAP" basemap tool at this time. Having now had time to use the tool quite extensively on my own route, I have found that, while the plug-in works fairly well from a technical pespective, many parts of the overall process still require a lot of trial-and-error and are more tightly tied to things like screen size & resolution than is desirable. There are also several not-so-minor "gotchas" in both SketchUp and Surveyor that can make the process extremely frustrating at times. (To be fair: I have reported my findings regarding the issues in Surveyor to N3V, and they have been very receptive to my comments; they have also been able to reproduce the issues on their own, and so I expect that these items will be addressed in due course).

If I can find a way to automate more of the process - and if (or when) some of the "gotchas" are either fixed or suitable workarounds can be found - I may give it another shot. While I am willing to put up with these issues on my own route, I don't think it is fair to call this a finished product and expect others to do the same.

I will be releasing RubyTMIX 1.2 by itself in due course, as it contains some useful new features and fixes.

Thanks to all who commented on the RubyTMAP concept and especially to those who reviewed the manual.

Regards,
-Mike
 
Last edited:
Wow--- this is a VERY interesting tool. Does this process only work while TransDEM is generating the map? What I am getting at is I already have a HUGE route in progress. Can this generate the basemaps for an already existing DEM that can be imported into the route already in progress? I will admit the last time I tried using Google Maps objects, I was using TS2009 and was having a lot of frustration seeing my basemaps, moving objects without moving the basemaps, etc., and I can see how the layers tools would certainly help with this.

I can't wait to give this a try!
 
Great tool. I would have to know the exact wording of the Terms-of-Service, but I should point out that basemaps are usually a temporary affair. Traditional basemaps usually get painted over by ground textures and are effectively destroyed. Therefore, the basemap effectively does not get redistributed if one shares or sells their route. Moreover, all else aside, maps created by this tool would likely fall under "fair use", little different than if one wrote a term paper or essay based on knowledge obtained out of a book. Provided users delete the RubyTMAP overlays - which I expect they would need to in order for the project to even look right, let alone comply with the ToS - I would not be even the slightest bit worried even if Google determines their policy to be more strict than that.
 
Wow--- this is a VERY interesting tool. Does this process only work while TransDEM is generating the map? What I am getting at is I already have a HUGE route in progress. Can this generate the basemaps for an already existing DEM that can be imported into the route already in progress? I will admit the last time I tried using Google Maps objects, I was using TS2009 and was having a lot of frustration seeing my basemaps, moving objects without moving the basemaps, etc., and I can see how the layers tools would certainly help with this.

I can't wait to give this a try!

This tool starts where TransDEM ends; you generate your route first with TransDEM, then use RubyTMAP to generate the basemaps as a separate process. So the answer to your question is 'yes', it can generate basemaps for a route already in progress.

Regards,
-Mike
 
Great tool. I would have to know the exact wording of the Terms-of-Service, but I should point out that basemaps are usually a temporary affair. Traditional basemaps usually get painted over by ground textures and are effectively destroyed. Therefore, the basemap effectively does not get redistributed if one shares or sells their route. Moreover, all else aside, maps created by this tool would likely fall under "fair use", little different than if one wrote a term paper or essay based on knowledge obtained out of a book. Provided users delete the RubyTMAP overlays - which I expect they would need to in order for the project to even look right, let alone comply with the ToS - I would not be even the slightest bit worried even if Google determines their policy to be more strict than that.

I've added a link to the Terms of Service in my original post. I actually agree with your assessment... maybe I'm just being overly cautious here. I do have some rather stern warnings in the manual about what you should and shouldn't do, and that includes a "you must delete the basemaps" note. Certainly you would want to do so in any case, to get rid of all those extra polygons - displayed or not, they still get loaded, right?

Regards,
-Mike
 
Awesome work Mike, I'll certainly be giving this a go thanks for the hard work you've obviously put into this.
Cheers Mick.:)
 
Well Mike, I think you have a winner here. :D I am very impressed with the capabilities of this new product. Are you sure you don't want to make this a donation-ware product, or at least supply it freely, but a donation is duly accepted as well. I'd surely give you some bucks for your creativity on this.

I'm sure there will be complaints anyway about the size of the manual, and the fact that there are too many polygons at 16 polys each. I'm joking on the number of polys which is actually really great, because regular basemaps can make a route painfully chunky to work on. The problem is many people don't read or listent today. I run into this all the time and end up with 5000 support calls on the same issue that corporate IT sent an email out on earlier.

I agree with RRSignal. The way the underlying maps are used does not really fall into a reall permanent download to be distributed. Someone may create a route in TD and distribute the route with your Google-based Basemaps. This still doesn't make this a permenant item because the basemaps are deleted once the route is built.

I don't think it would matter that this is meant for TRS2010 and above. This may narrow the distribution initially, but as people grow into the new versions, the market will grow with the product. As we know the other products are slowly going away and this is the direction that N3V is going anyway. So instead of going for something that is backward compatible, perhaps it's time to be a bit more forward-thinking. Apple did this when they came out with the PowerPC and then later with OSx.

Please keep us posted on this, and if you need someone to beta test this, by all means contact me. I already use TransDem somewhat for what I need, and your clear images are so much better than the low-res things we get out of NASA and the seemless servers.

John
 
This looks to a must have for those creating prototypical routes for which Google has good images. It will certainly make lining up ground objects easier than before. Have you tested it with MicroDEM data? That would open it up to a slightly larger community of route makers. What about using other image sources like scanned topo maps.
So
a) thumbs up
b) very useful
c) hopefully this would not be an issue.
 
Are you sure you don't want to make this a donation-ware product, or at least supply it freely, but a donation is duly accepted as well. I'd surely give you some bucks for your creativity on this.

The thought of donations being 'duly accepted' has indeed crossed my mind, and I sincerely appreciate your offer. I may do something in that regard.

I also appreciate your offer as a beta tester and will definitely take you up on that. I have several details still to tidy up and a bit more testing to do on the software itself, so it will be a few days; I could, however, offer you a copy of the manual in the mean time, if you're interested, as I would certainly value your comments there.

Regards,
-Mike
 
Last edited:
Here is a summary of the work flow for this tool.

I didn't include this in my original post as it was already getting quite long, but as I am starting to get some questions I think it would be useful now to give everyone an idea of what's involved and to help clarify the concepts a bit more.

* A “Master Map” (a SketchUp model) represents the overall Trainz route and keeps all of the individual basemaps organized; each Master Map must be placed in its own folder, and all required files and sub-folders are then automatically created based on the location of the Master Map and file name information obtained from SketchUp.

* A new Master Map begins with a single baseboard known as the Origin, and the map grows outward in all directions from that point; both metric and imperial templates are provided, so you can use the type of reference dimensions that suit your needs.

* Trainz World Origin information is obtained from the “_TransDEM_info.txt” file that TransDEM creates for each route it exports, and is then displayed in Latitude-Longitude form so you can copy it directly into the SketchUp Add Location dialog.

* The SketchUp Add Location dialog is now used to import a single piece of terrain at those coordinates, which causes SketchUp itself to geo-locate the Master Map. The Origin baseboard is then automatically re-positioned to account for differences between the World Origin and the information returned from the Add Location dialog.

* Baseboards are then added around the Origin in a point-and-click fashion; TransDEM Simple Routes can be imported to serve as layout guides, or you can display an “extents grid” that allows you to “work backward” from the Satellite View in Surveyor. When you're done with this, the layout of the Master Map will look very much like what you see in Satellite View in Surveyor.

* After all the baseboards are laid out, each one is individually opened for editing and appears by itself in SketchUp; baseboards are managed individually to keep file sizes reasonable, which in turn allows SketchUp to remain responsive.

* The Local Origin of each baseboard’s center point is displayed in Latitude-Longitude form so you can copy it directly into the SketchUp Add Location dialog. The Add Location dialog is then used to import the first piece of terrain for that baseboard, which causes SketchUp itself to geo-locate the baseboard. The baseboard is then automatically re-positioned to account for differences between its Local Origin and the information returned from the Add Location dialog.

* The Add Location dialog is then used repeatedly to add more terrain by manually panning around in various directions as needed until the entire baseboard is covered; printable work sheets are provided in PDF form to help you keep track of this process.

* After the entire baseboard is covered with terrain, a “Return to Master Map” command is executed and the Master Map is updated to show a snapshot of that baseboard’s terrain image. As more baseboards are covered with terrain, this gives you an indication of your progress and also helps you to ensure that everything remains in proper alignment across the entire route.

* This process continues until all desired baseboards are covered with terrain; you can cover your entire route, or only specific areas of interest, and you can also use different levels of detail on different baseboards (i.e. for areas farther away from the track).

* Export to Trainz then takes place with a single menu command; all active and eligible baseboards are processed in sequence, with automatic incremental assignment of KUIDs from a starting point you specify (60000 by default).

* During export, Trainz-compatible terrain geometry (using the 10m grid) is created that carries the terrain images from SketchUp; the resulting geometry is exported via automatic interaction with RubyTMIX and is stored in a way that allows all generated basemaps to be imported into Content Manager by selecting a single top-level folder.

* After import into Content Manager, basemaps are positioned in Surveyor by snapping them to the Trainz grid according to a Layout Guide image produced during export; “Guide Sticks” are also provided that allow you to accurately locate basemaps at isolated positions in the middle of your route if needed.

* As basemaps are placed, the Layers feature of Surveyor is used to organize them in a manner that makes it easy to show or hide those needed at any particular time, and then to lock them into position so they are not accidentally moved as you work on your route.

* Basemaps initially appear 1.5 meters above the surface of the Trainz terrain, which avoids interference with the Trainz terrain due to slight differences in Google’s terrain data and the DEM data used by TransDEM; because they are semi-transparent, you can “see through” them and view the terrain and any existing objects underneath.

* Using a top-down view, you can now place tracks and roads by “tracing them” onto the surface below the basemaps. Since they are static scenery objects, Trainz essentially ignores the basemaps whenever any other editing mode (i.e. track placement or terrain painting) is in use; and, if properly locked in their own layer, the basemaps will not get in the way or shift positions as you place other static scenery objects.

* After route construction is complete, the basemaps must be deleted from the route in order to avoid violating the Google Earth / Google Maps Terms of Service; this also makes sense since you wouldn’t want to carry the extra polygons forward in any case.


Regards,
-Mike
 
Last edited:
Here is a summary of the work flow for this tool.

...
* After all the baseboards are laid out, each one is individually opened for editing and appears by itself in SketchUp; baseboards are managed individually to keep file sizes reasonable, which in turn allows SketchUp to remain responsive.
Is this where you add the Google image? Are you trimming the exact image area here or have they already been sized and cropped? ...
Regards,
-Mike
 
@martinvk,

Yes, this is where the "raw" Google terrain and imagery gets added.

Trimming takes place during the export process. The original Google terrain data comes in as a TIN with a massive number of polygons, so what I do is create a new piece of geometry during export that matches the size of a Trainz baseboard and is a triangulated "regular" network, and then transfer the height data from the matching points in the Google data to the new points. I also record U-V coordinates during this process and after the new mesh is constructed I copy the imagery onto the new faces. What results is a 720m x 720m square with terrain on a 10m grid and imagery mapped to the new faces.

The first picture in my original post actually shows an individual baseboard opened for editing, with the trimmed geometry being displayed in one of the views that the tool offers.

Hope this helps / answers your question.

Regards,
-Mike
 
Hi Mike,

Send me the manual. I'll do a read through... and yes I am interested definitely in beta testing. PM me and I'll send you my email if you don't have it already.
Thanks,

John
 
Hi Mike,

Send me the manual. I'll do a read through... and yes I am interested definitely in beta testing. PM me and I'll send you my email if you don't have it already.
Thanks,

John

John, I PM'd you a link to download the manual. Thank you very much -- your time is highly appreciated.

Regards,
-Mike
 
@martinvk,

Yes, this is where the "raw" Google terrain and imagery gets added.

Trimming takes place ... d I copy the imagery onto the new faces. What results is a 720m x 720m square with terrain on a 10m grid and imagery mapped to the new faces ....

Hope this helps / answers your question.

Regards,
-Mike
Ah, do you have a special way to align the correct 720 x 720 Google image to the mesh? For my baseboard images, I place a marker in Google Earth with known lat-long coordinates. That is then used to eyeball the image in Trainz using a Lat-long reader to locate the corresponding coordinates in Surveyor.
 
Ah, do you have a special way to align the correct 720 x 720 Google image to the mesh? For my baseboard images, I place a marker in Google Earth with known lat-long coordinates. That is then used to eyeball the image in Trainz using a Lat-long reader to locate the corresponding coordinates in Surveyor.

The plug-in takes care of all that for you by calculating latitude-longitude coordinates for each baseboard, based on the lat-lon of the Trainz World Origin and the relative location of the baseboard being edited to the baseboard that actually contains the World Origin. There is no "eyeballing" involved; everything is precisely geo-located, and all you have to do is snap the basemap to the Trainz grid in the right place. The tool includes a set of "Guide Sticks" that you can chain together to precisely locate the corner of any baseboard in your map, and of course you can also snap basemaps right to the edge of the Trainz terrain itself.

Regards,
-Mike
 
Last edited:
The plug-in takes care of all that for you by calculating latitude-longitude coordinates for each baseboard, based on the lat-lon of the Trainz World Origin and the relative location of the baseboard being edited to the baseboard that actually contains the World Origin....

Regards,
-Mike
I see how the baseboards are aligned with respect to each other but how is the Google image mapped to the mesh so that its image agrees with the baseboard location? In other words, how do you make sure that the coordinates of the the image details match those of the underlying baseboard that it is mapped to? When I make a screen capture of a GE view or save image (Ctrl-Alt-S), the coordinates of that view are not captured in the file. Is there another way to get GE views into an image file?
 
I see how the baseboards are aligned with respect to each other but how is the Google image mapped to the mesh so that its image agrees with the baseboard location? In other words, how do you make sure that the coordinates of the the image details match those of the underlying baseboard that it is mapped to? When I make a screen capture of a GE view or save image (Ctrl-Alt-S), the coordinates of that view are not captured in the file. Is there another way to get GE views into an image file?

Tell you what. I'll PM you a link to download a PDF of the User's Guide. I'm pretty sure it will answer all of your questions, and I would be happy to get your perspective on it.

In answer to your specific question, I am not capturing anything from the "Google Earth" program itself, so it really doesn't matter what that program provides or does not provide. All the imagery and terrain data comes from a function that is built into SketchUp (the 'Add Location' dialog I refer to in the work flow summary), which takes care of all those details. Of course I have to do just a tiny bit of math (ahem) afterwards, but I assure you, the imagery comes out precisely where it's supposed to.

Regards,
-Mike
 
Last edited:
Back
Top