PDA

View Full Version : Revisiting the Microsoft MapPoint 2006 Pushpin Symbols



Eric Frost
09-20-2013, 10:20 AM
The "old" MapPoint 2004/2006 symbols recently came up in a couple of threads --
http://www.mapforums.com/need-use-2006-symbols-2010-using-vba-28348.html
http://www.mapforums.com/2006-mappoint-symbols-297-301-help-28382.html
so I figured we'd revisit this topic.

First, a little bit of background. MapPoint 2002 had 256 symbols which are available for download from Microsoft --

Download Pushpin images for Streets and Trips or MapPoint 2009 from Official Microsoft Download Center (http://www.microsoft.com/en-us/download/details.aspx?id=15876)

Then, either with the MapPoint 2004 or 2006 version, Microsoft added an additional 80 symbols. These are available for download here --

http://www.MapForums.com/images/articles/MapPoint_2006_Extra_80_Symbols.zip

With MapPoint 2009, Microsoft changed all the symbols and people complained, so Microsoft listened to their customers and brought back the old symbols starting with MapPoint 2010 and things have stayed the same since. In general, when I refer to MapPoint 2010 or 2013 in this article, whatever I am saying applies to all versions MapPoint 2010, 2011, and 2013.

The symbols brought back in MapPoint 2010 were not exactly the same however, there are some style differences. As you can see the MapPoint 2013 symbols are a bit bigger and prettier with a gradient while the MapPoint 2006 symbols were simpler.

http://www.mapforums.com/images/articles/2013_2006.jpg

It's not a huge difference, and I think you could make a case for either style and their readability on a map, but the difference is enough that some people might think the old MapPoint 2006 symbols would work better in some circumstances.

Here's another bunch.

http://www.mapforums.com/images/articles/2013_2006b.jpg

Again, I'm not saying one set is necessarily better than the other in all cases, but it's nice to have the option to use the old or new one as one might be preferential for some maps.

So, being the mapping nerd that I am, I took it as a challenge to see if it's possible to automatically "downgrade" a MapPoint 2013 map using lots of different built-in symbols to a map using the equivalent MapPoint 2006 symbol. Note that the goal is not to downgrade the map to a MapPoint 2006 PTM file so that MapPoint 2006 can open it, but just to convert the symbols in the MapPoint 2013 map to be the old style symbols.

In general, I was successful, but there were some hurdles.

The first step in doing this was to set up a blank MapPoint 2013 map with all of the 336 MapPoint symbols imported into it. To do this, I downloaded all of the symbols above, and then imported them using the Symbol import tool from PushpinCity.com (http://www.PushpinCity.com).

You can download the PTM here. (http://www.MapForums.com/images/articles/MP13w06.zip) This is a MapPoint 2013 North America map with all of the 336 MapPoint 2006 symbols imported as custom symbols. I posted this as a MapPoint Map Template PTT file, so you can swap this in for your default template or use it as a template to create a new map, and then copy/paste your datasets/layers into the new map.

There is roughly a 1 to 1 correspondence between the two symbol sets, at least it starts out that way.

http://www.mapforums.com/images/articles/symbols_00_12.jpg

However, when you get down past the basic triangles, there starts to be differences. At this point, the MapPoint 2013 symbol sets inserts eight flags, after which it picks up again with the old cross symbols. The 2006 set DOES have the flag symbols, but they are down lower in the list starting at 286.

http://www.mapforums.com/images/articles/symbols_62_74.jpg

A couple currency symbols and the numbers 21-50 are also re-positioned. The 2013 set has an additional 12 symbols that have no equivalent in the 2006 set.

You can download an Excel sheet listing all of the equivalents here. (http://www.mapforums.com/images/articles/MP13to06Symbols.zip)

So now that we have this equivalency list, and a single map PTM file with all of the symbols (both the MapPoint 2013 and 2006 symbols), we need two more things to complete this exercise.


A test map with lots of different MapPoint 2013 symbols, set at both the dataset and individual Pushpin level.
A script to loop through the Pushpins and dataset and set the symbol to be the equivalent 2006 symbol.


Here are before and after screenshots of our map.

http://www.mapforums.com/images/articles/Maps_Comparison.jpg

Perhaps my four year old laptop can't take advantage of and properly render the new higher-res prettier Symbols, but at least in this screenshot, the older Symbols are less "diffuse" in my opinion and have more visual "pop", lending towards a more readable map. Thus, at least in the way my computer is rendering the Symbols, I think this effort has been a worthwhile undertaking.

Regarding the code, first, because of the shifting of the Flags and Currency Symbols, to find the equivalent ID is not a simple addition problem such as newID = oldID + 398, but without too many lines of code you could set up ranges. e.g if oldID < 164 then newID = oldID + 398, but I'm too lazy for this, and I think it's too prone to typos/error. Instead I just used Excel to generate the code for me and then pasted it into an Excel VBA module.

http://www.mapforums.com/images/articles/newID_excel.jpg



Public Function newID(symID As Integer) As Integer
newID = symID
If symID = 0 Then newID = 398
If symID = 1 Then newID = 399
If symID = 2 Then newID = 400
If symID = 3 Then newID = 401
If symID = 4 Then newID = 402
...


First, if it doesn't match one of the 2010/2013 symbol id's, i.e. it's already a custom symbol or one of the 12 new ones that has no equivalent, it's just going to return the same ID. Then if it does match, it overwrites that and returns the 2004/2006 equivalent ID.

The code for the actual converter subroutine is quite simple.


Sub ConvertSymbolsFrom2013to2006()
Dim APP As Object
Set APP = GetObject(, "MapPoint.Application")
Dim MAP As Object
Set MAP = APP.ActiveMap

Dim DS As Object
Dim RS As Object

For Each DS In MAP.Datasets
DS.Symbol = newID(DS.Symbol)
Debug.Print "Starting Dataset: " & DS.Name
Set RS = DS.QueryAllRecords
RS.MoveFirst
Do While Not RS.EOF
RS.Pushpin.Symbol = newID(RS.Pushpin.Symbol)
RS.MoveNext
Loop
Next
End Sub


Note that when you change the Symbol on a Dataset manually via the MapPoint interface it automatically changes the symbol for ALL of the Pushpins in that dataset. Luckily, the behavior is different when setting it programmatically. It DOES NOT change all the symbols of the associated Pushpins. Otherwise this code would be a lot more complicated. We would have to use Arrays or Dictionaries to keep track of the Pushpin's symbols.

Another note: the program above takes care of all the basic Pushpin datasets. It would not work for Multiple Symbol datasets, though it probably could. If you wish to do it, please comment below. I think we would need to explore the DataMap object. I poked around for ten minutes and didn't see where to read the current symbols, but of course you can set new ones with the DisplayDataMap(...) method.

So, while this may all have seemed a bit of a neanderthalic effort (no offense to neanderthals) to resist change and revert back to the old symbols, I can certainly understand some people's point of view that the old symbols without the gradient are simpler and easier to read on a map in some circumstances. Also, we've demonstrated a script to mass-convert symbols on a map at both the dataset and individual pushpin levels.

Put another way, one of the "fixes" or features in MapPoint 2010 is that you could open up MapPoint 2004/2006 maps and the Symbols would stay the same. (This had been a problem with MapPoint 2009 where the Pushpin Symbols would all get changed.) However, after opening the map in MapPoint 2010, the Symbols wouldn't be exactly the same as exhibited by the screenshots above showing the differences between the MapPoint 2013 and MapPoint 2006 Symbol styles. What we have demonstrated in this article is how to keep the symbols exactly the same (albeit with additional steps).

Questions, comments, or what else would you like to see? Please place comments below.

Happy mapping!

Winwaed
09-23-2013, 01:02 PM
Interesting how the two sets of pushpin icons compare.

The later pushpins have a reputation for looking a little more muddy, but many of the picture icons in 2013 look better when depicted side-by-side as above. However the simpler color schemes of the 2006 pins probably stand out more, even if they do look angular and "old fashioned".

I think the 2006 abstract symbols (circles, squares, etc) do look significantly better though: The gradient shading in the later pins do not aid visibility and some even look quite awful (e.g. the yellow square). Often a nice simple symbol is easier to see. I think this is reflected in the "flat" design of Windows 8 (which I see even Apple are slowly beginning to copy!)

captaindawg
10-02-2013, 11:15 AM
I have to say that this is fantastic work. Thank you for taking the challenge and as you can visually see, this was worth the effort. The older icons just pop more than the newer ones on maps, especially when you start to delineate the states using territories. I sincerely appreciate the effort and my maps also thank you for looking ten times better!

-Aaron

LarryH
03-19-2014, 02:53 PM
Thanks for the info. I stayed on 2009 with the 2006 symbols because the new symbols were unusable for my application. Microsoft should be the ones offering different sets, and they should have learned with the 2009 problems.

I do tracking/route recording for paper routes that sometimes double back on the same road and go "all over" the place, but in certain directions. I do my own tracking from software using the small circles in two different colors for different directions (north and west one color, south and east another.) There are other items, such as the route stops, missed stops, etc put on the map so it can get pretty crowded and the 2006 symbols do a MUCH better job.

lucassen
03-20-2014, 02:28 PM
Hi,
I am sure you are aware that you can import your "own" symbols into MapPoint. It takes a little trick to have these subsequently incorporated in any new blank mappoint file you open, you will have to save the file as a New "Country" Map template in the appropriate location.
I can recommend IC Symbol manager, providing all the old MP symbols. For a Route writing/reading add in I suggest to check the Winwaed site.