referring initially to fig1 a vehicle energy conservation system is shown , generally designated 10 , which includes a vehicle 12 and a computer 14 that is onboard the vehicle 12 . as shown , the vehicle 12 includes a conventional steering wheel 16 , windshield 18 , and dashboard 20 . per the present invention , a radiofrequency ( rf ) antenna 22 is mounted on the vehicle 12 , and the antenna 22 is electrically connected as shown to a satellite - implemented global positioning system ( gps ) transceiver 24 that is in communication with the computer 14 . accordingly , the computer 14 can receive information from the transceiver 24 that represents the location of the vehicle 12 on the earth &# 39 ; s surface . additionally , the computer 14 is associated with one or more peripheral devices , including a data entry device such as a keypad 26 . further , a graphical display 28 can be associated with the computer 14 for displaying one or more routes 30 between an operator - selected origin &# 34 ; a &# 34 ; and an operator - selected destination &# 34 ; b &# 34 ;. as shown in fig1 the graphical display 28 can also present icons 32 that represent commercial energy purchasing facilities ( cepfs ), such as , e . g ., gasoline filling stations . it is to be understood that for vehicles that are battery powered or are powered by a hybrid form of battery - internal combustion , the cepfs can include battery recharging facilities . moreover , fig1 shows that the computer 14 can be associated with an alpha - numeric display 34 that presents routing directions . for example , as shown in fig1 the alpha - numeric display 34 can present directions such as &# 34 ; left on elm , right on main &# 34 ;. if desired , the functions of the graphical display 28 and alpha - numeric display 34 can be integrated into a single display . the keypad 26 , graphical display 28 , and alpha - numeric display 34 can be conveniently mounted on the dashboard 20 as shown , or on some other suitable surface of the vehicle 12 . in one preferred embodiment , the displays 28 , 34 are flat panel displays such as light emitting diode ( led ) displays or liquid crystal displays ( lcd ), although other display structures ( e . g ., cathode ray tubes ) equivalently can be used . as additionally shown , the computer 14 is associated with a topographical map electronic database 36 which advantageously can be stored on a compact disk ( cd ) 38 . in accordance with principles well - known in the art , data is transferred to and from the cd 38 by an associated cd reader 40 , with the cd reader 40 being in data communication with the computer 14 . it is to be understood that the topographical map database 36 can be stored on other media , e . g ., a hard disk drive in the computer 14 . the topographical map content of the database 36 can be obtained from the u . s . geological survey . completing the description of fig1 the computer 14 includes a routing module 42 and an energy consumption module 44 . as disclosed more fully below , the modules 42 , 44 cooperate to determine an energy efficient route between the origin &# 34 ; a &# 34 ; and destination &# 34 ; b &# 34 ; of possible routes that exist in the topographical map database 36 . it is to be understood that the modules 42 , 44 are implemented on a device medium . in one embodiment , the device medium is implemented by logic circuits on a chip in the computer 14 . alternatively , the modules 42 , 44 can be implemented by a circuit board ( not shown ), and the operative components of the modules 42 , 44 accordingly would be electronic components on the circuit board . it is to be still further understood that the operations of the modules 42 , 44 described below in reference to fig2 - 5 could be embodied in a device medium such as software , i . e ., in machine - readable form and stored on a computer program storage device , such as the cd 36 shown in fig1 . in other words , fig2 - 5 illustrate the structures of the modules of the present invention as might be embodied in computer program software or in logic circuits . those skilled in the art will appreciate that fig2 - 5 illustrate the structures of computer program code elements that function according to this invention . manifestly , the invention is practiced in its essential embodiment by a machine component that renders the computer program code elements in a form that instructs a digital processing apparatus ( that is , a computer ) to perform a sequence of function steps corresponding to those shown in the figures . when embodied in software , these instructions may reside on a program storage device including a data storage medium , such as can be found on a computer floppy diskette , on semiconductor devices , on magnetic tape , on optical disks , on a dasd array , on magnetic tape , on a conventional hard disk drive , on electronic read - only memory or on electronic random access memory , or other appropriate data storage device . in an illustrative embodiment of the invention , the computer - executable instructions may be lines of compiled c ++ language code . in any case , apart from the particular computer program storage device ( i . e ., firmware logic circuits or software ) that embodies the modules 42 , 44 , as intended by the present invention the modules 42 , 44 establish a program means which embodies logic means that are recognizable by the computer 14 to perform the method steps disclosed below . now referring to fig2 and 3 , the logic of the routing module 42 can be seen . commencing at block 50 , the logic receives the destination point &# 34 ; b &# 34 ;. specifically , the operator can input the destination point &# 34 ; b &# 34 ; by appropriately inputting the latitude and longitude of the point &# 34 ; b &# 34 ;, or the name of the point &# 34 ; b &# 34 ;, or by clicking a mouse over a display of the point &# 34 ; b &# 34 ; on the display 28 shown in fig1 . moving to block 52 , the logic likewise receives the origination ( i . e ., start ) point &# 34 ; a &# 34 ;. if desired , the operator can indicate that the origination point &# 34 ; a &# 34 ; is to default to the current location of the vehicle 12 . in such an instance , the computer 14 accesses the current location of the vehicle 12 by accessing the gps transceiver 24 ( fig1 ). next , at block 54 of fig2 the logic receives the desired average speed at which the operator intends to drive vehicle to the destination point &# 34 ; b &# 34 ;. if desired , the operator may indicate a desire to select , as a default , the current speed of the vehicle 12 . accordingly , the computer 14 would access the speedometer of the vehicle 12 to set the default speed at block 54 . referring now to fig3 after receiving the inputs described above the routing module 42 retrieves from the database 36 ( fig1 ) a route between the origination point &# 34 ; a &# 34 ; and the destination point &# 34 ; b &# 34 ;. it is to be understood that not all possible routes that are stored on the map of the database 36 need be retrieved . rather , a route screening strategy can be employed to automatically screen routes that are of a greater length than a predetermined length , e . g ., greater than 20 % longer than the shortest available route , or greater than 30 % longer than the straight line distance between the origination point &# 34 ; a &# 34 ; and the destination &# 34 ; b &# 34 ;. it is to be further understood that each route retrieved is regarded by the logic below as a series of contiguous route segments . for example , each route segment can be one mile in length . thus , a route between points &# 34 ; a &# 34 ; and &# 34 ; b &# 34 ; that is one hundred miles in length would be composed of 100 route segments , while an alternate route of , say , one hundred five miles in length would be composed of 105 segments , and so on . accordingly , at block 58 the logic determines , starting with the first route segment of a first route , the average elevation change , either plus or minus (± δ ) ( or zero ), as indicated by the topographical map contained in the database 36 . then , at block 60 the logic accesses the energy consumption module described below to determine the energy consumption that would be required for the vehicle 12 to traverse the route segment under test at the speed that was input at block 54 of fig2 . in the preferred embodiment , the energy consumption module 44 is table - driven , but it is to be understood that equivalent algorithms can be used in lieu of the tables disclosed herein . referring briefly to fig6 an example of an energy consumption table of the energy consumption module 44 includes a first column entitled &# 34 ; segment δelev . ( avg . )&# 34 ;. it is to be understood that the entries in this column represent average elevational changes , from a high negative value denoted - x , through zero , to a high positive value denoted + x . thus , fig6 is an example of what can be thought of as a vehicle 12 energy consumption information source . also , the example table shown in fig6 includes speed columns headed &# 34 ; 1 &# 34 ;, &# 34 ; 2 &# 34 ;, &# 34 ; 3 &# 34 ;. . . , with the headings representing the desired speed of the vehicle 12 along the route segment . thus , the step shown at block 60 of fig3 is undertaken in one embodiment by selecting , from the table shown in fig6 the energy consumption value in the row corresponding to the average elevation change determined at block 58 of fig3 and the column corresponding to the speed that was input at block 54 of fig2 . accordingly , as intended by the present invention , the numerals under the speed column headings represent energy consumption units , the default values of which are empirically determined , preferably on a vehicle model - by - model basis . as disclosed further below in reference to fig5 the entries of the table shown in fig6 can be updated as the energy consumption module 44 &# 34 ; learns &# 34 ; about the actual energy consumption of the particular vehicle 12 . returning to fig3 and more specifically to block 62 , the logic of the routing module 42 sets a variable &# 34 ; consumption route &# 34 ; ( initialized at zero ) to be equal to &# 34 ; consumption route &# 34 ; plus the energy consumption (&# 34 ; consumption segment &# 34 ;) determined at block 60 . then , the routing module enters states 64 - 70 , which indicate that the process described above is performed in a so - called &# 34 ; do &# 34 ; loop for each segment of each possible screened route , and for each route . more particularly , at decision diamond 64 it is determined whether the segment under test is the last segment of the route , and if not the logic retrieves the next segment at block 66 and then loops back to block 58 . otherwise , the logic determines at decision diamond 68 whether the route under test is the last route that has been retrieved within the constraints of the screen described above , and if not the logic retrieves the next route at block 70 and then loops back to block 56 to retrieve the route from the database 36 . on the other hand , when it is determined at decision diamond 68 that the last route has indeed been tested , the logic returns the route with the lowest overall energy consumption at block 72 . from block 72 , the logic proceeds to fig4 . commencing at decision diamond 74 in fig4 the logic of the &# 34 ; can &# 39 ; t get there from here &# 34 ; (&# 34 ; cgtfh &# 34 ;) subroutine of the routing module 42 determines whether cgtfh has been enabled . if not , the cgtfh subroutine ends . on the other hand , if cgtfh has been enabled , the logic proceeds to decision diamond 76 to determine whether the energy consumption ( consumption route ) of the route returned at block 72 of fig3 is less than or equal to the relevant onboard energy reserve of the vehicle 12 . by &# 34 ; relevant onboard energy reserve &# 34 ; is meant the expected energy reserve of the vehicle 12 at the origination point &# 34 ; a &# 34 ;. if it is determined that the energy consumption of the route is greater than or equal to the relevant onboard energy reserve of the vehicle 12 , the logic moves to block 78 to return a signal indicating that the vehicle 12 has sufficient energy to travel from the origination point &# 34 ; a &# 34 ; to the destination point &# 34 ; b &# 34 ; at the desired speed . if , however , the vehicle 12 does not have sufficient energy as determined at decision diamond 76 , the logic moves to decision diamond 79 to determine whether the operator has enabled the cepf recommendation routine of steps 82 - 90 below . if cepf recommendation is not enabled ( to thereby avoid nuisance recommendations when none are desired ), the logic moves to block 80 to return a signal indicating that the vehicle 12 has insufficient energy to travel from the origination point &# 34 ; a &# 34 ; to the destination point &# 34 ; b &# 34 ; at the desired speed . also , at block 80 the logic can cause the display 28 ( fig1 ) to present alternate routes , and then the process ends . if the enable test at decision diamond 79 is positive , however , the logic proceeds to block 82 to access the energy consumption module 44 ( fig1 and 5 ) to determine the range of the vehicle 12 at the origination point &# 34 ; a &# 34 ;, based on the relevant onboard energy . next moving to block 84 , the logic accesses the map of the database 36 to locate and display all cepfs within the range of the vehicle 12 along the route returned at block 72 of fig3 that are within a predetermined threshold distance ( e . g ., one mile ) of the route . then , at decision diamond 86 , it is determined whether any candidate cepfs exist along the route . if not , the logic loops back to block 80 , but otherwise the logic moves to decision diamond 88 to determine whether a particular cepf has been selected by the operator in response to the display generated at block 84 . if it has , the logic moves to block 90 to access the map of the database 36 and return directions to the selected cepf . from block 90 , or from decision diamond 88 if the test there is negative , the logic ends . now referring to fig5 which shows the logic of the energy consumption module 44 in updating the energy consumption table shown in fig6 and described previously in reference to fig3 at block 92 the logic loads default energy consumption unit values into energy consumption table shown in fig6 . alternatively , the energy consumption units can be factors which , when multiplied by an empirically - determined base energy consumption value , produce an energy consumption unit value for the particular elevational change and speed represented by the factor . next , at block 94 the actual energy consumption of the vehicle 12 , along with the average speed of the vehicle 12 , is recorded each cycle , e . g ., every minute . to obtain the actual energy consumption , the logic can access the fuel gauge , battery discharge meter , or other fuel consumption instrument of the vehicle 12 . moving to blocks 96 and 98 , the elevational change of the segment traversed during the cycle is recorded as follows . at block 96 , the computer 14 causes the gps transceiver 24 ( fig1 ) to query the satellite at the beginning and end of the cycle to obtain the start point and end point of the segment . then , at block 98 the topographical database 36 is accessed using the information obtained at block 96 to correlate the segment with the appropriate segment stored in the database 36 . recall that the database 36 includes elevational change entries which are accessed to thereby determine the elevation characteristics of the segment traversed during the cycle . moving to block 100 , the data obtained at blocks 94 and 98 is added to a pending bin that represents actual energy consumption for the particular speed and elevational change under test . then , it is determined at decision diamond 102 whether the number of samples in the bin accessed at block 100 exceeds a predetermined threshold , e . g ., five samples . if it does , the actual energy consumption values for the samples in the bin are averaged at block 104 , and then the energy consumption table shown in fig6 is updated at block 106 by replacing the energy consumption value for the test speed and elevational change with the value determined at block 104 . from block 104 , or from decision diamond 102 if the number of samples was determined to be insufficient to render a satisfactory update , the logic loops back to block 94 for the next cycle . while the particular energy minimization routing of vehicle using satellite positioning and topographic mapping as herein disclosed and described in detail is fully capable of attaining the above - described objects of the invention , it is to be understood that it is the presently preferred embodiment of the present invention and is thus representative of the subject matter which is broadly contemplated by the present invention , that the scope of the present invention fully encompasses other embodiments which may become obvious to those skilled in the art , and that the scope of the present invention is accordingly to be limited by nothing other than the appended claims .