I am building a Garmin map, one of the items being maps is a railroad. I am using the standard type X14 and have made a custom TYP file :
[_line] Type=0x14 UseOrientation=Y Xpm="32 5 4 1" "= c #202020" " c none" "3 c #202020" "4 c none" "================================" " ======= ======= " " ======= ======= " " ======= ======= " "================================" ;12345678901234567890123456789012 string1=0x04,Railroad [end]
Display in Basecamp is perfect - but on a Garmin Oregon some sections of track are displayed with spaced pixels - see attachments. Also, the railroad only appears on the Oregon when zoomed in much further than specified.
Back Country Navigator has something similar but at least it is an option to switch on and off and comes with a warning ; "Not recommended, Will make map more pixellated, May allow you to read more text"
I do develop smartphone maps. For a distribution format I've settled on SQLITE as that can be used directly by Back Country Navigator, Locus and Maverick on Android also Galileo and Mapplus on iPhone/iPad. But Mobile Atlas Creator (mobac.sourceforge.net) will read the SQLITE files, allow you to view them and output to a whole range of formats.
I extract maps and convert to SQLITE format. I can use the same format on my Android phone with Back Country Navigator and on my iPad with Galileo. (It's a WiFi only iPad but I use a GNS 2000 Bluetooth GPS for location).
If nothing better is available, I download one of the OSM Garmin maps from http://garmin.openstreetmap.nl/ and use my MAPC2MAPC to render it as SQLITE. I have used this successfully on trips to Grenada and Mallorca recently.
It is also possible to download aerial imagery from various sources and convert to this format as an alternative to Birdseye (but be aware of licence conditions!)