Delphi graphics map demo program

Cancelled Posted Jun 17, 2009 Paid on delivery
Cancelled Paid on delivery

Description -- see Deliverables.

## Deliverables

1. Coder will develop a fast, robust demonstrator application that presents graphical maps of the Earth showing coastlines, countries, islands, and lakes, as shown in this project definition. The best way to describe it is a very crude, basic version of Google Earth without network data, textures, or all the bells and whistles.

2. This application must execute natively under Windows Vista, XP, and 2000.

3. Some acceptable sources of raw latitude/longitude data for the Earth are, for example, the Micro World Data Bank at: [url removed, login to view]

4. The application must be capable of mapping the earth in three different projections: orthographic, mercator, and polar stereographic. The desired projection will be chosen by the user in a configuration panel or dropdown menu. The coder must have some basic mathematical skills and accept responsibility for implementing a correct mapping equation, using Internet searches or code examples. The coder must also implement "reverse transformations" of these equations so that cursor position readouts (see below) will work. Some sample equations of all of the above will be provided to the coder to get him/her started.

5. Drawing performance of the base map must be very fast and coder will need to be attentive to this. It must not take more than one second to render the primary world map to the screen on a typical Celeron 2 GHz system. Slower performance will significantly degrade the map panning/scrolling features required elsewhere in this bid.

6. The application must provide a readout of latitude and longitude for the current cursor position (thus a reverse map transformation must be done).

7. Control+dragging on the map between two points on the map will draw a "marching ants" great-circle line from the mousedown point to the current cursor position, displaying the lat/long of each point in a status panel, and this will disappear with the mouseup event. I agree to supply a simple equation that gives the lat/long anywhere along position of 0-1 on the line, but the actual implementation is the coder's responsibility.

8. The application will allow the map to be panned (i.e. the actual map center latitude/longitude changes) using mouse dragging.

9. There will be a provision for zooming in or out on the map by three methods: (1) speed buttons, (2) mouse scroll wheel movement or (3) drawing a "marching ants" box on the map and releasing.

10. The application must support the use of multiple TImage graphic layers that can be added or removed by the user by clicking a checkbox in a list of some sort. It is up to the coder how to implement this.

11. Transparency of graphics layers is strongly desired but will be waived if there are clear technical reasons that this can't be implemented.

12. The program must support the loading of a Shapefile and drawing this on a graphic layer. I will supply coder with a basic Delphi implementation that draws shapefile data, though it is very basic and it is up to the coder to implement it (no technical support will be given to coder).

13. As a demonstration, the Coder must provide a menu selection that plots some sort of random information on the map (of the Coder's choosing, such as city populations or city times) on any map on a unique graphical layer. This information will persist in the window at the correct geographical location, including after zooms and pans, until the user chooses to remove the graphical layer.

14. The application must support multiple graphic windows that can each have their independent map and data (i.e. MDI windows).

15. Strong preference will be given to bidders who avoid use of third party components. All third-party components a bidder wants to use must be identified in the bid. Expensive third-party components such as TGlobe, complicated components, or components without source code are not permitted.

16. LANGUAGE: Delphi 5 is preferred. Lazarus and Delphi 7 are accepted. I will also give consideration to other languages as long as they're not expensive or commercial (e.g. no MS VC) if some sort of strong reason favoring the language is provided in the bid, but I am trying to do this in Delphi.

17. If bidder feels that this job should be done through DirectX, please explain. A DirectX implementation will be considered.

18. All source code MUST be commented generously in English and use of cryptic variable names should be avoided. Please strive for simplicity in your code.

19. The delivery must include a compiled application, source code, and any dependencies and must be delivered before the project deadline.

20. Delivery will be complete when the application is tested to be stable, performs in accordance with the above requirements, and any errors are fixed.

21. There is a likelihood of follow-on expansion work depending on the quality of the delivered project.

## Platform

Delphi 5 is preferred. Lazarus or Delphi 7 are acceptable. Other languages will be considered.

Delphi Odd Jobs

Project ID: #3944309

About the project

2 proposals Remote project Active Jun 25, 2009

2 freelancers are bidding on average $474 for this job

keneto

See private message.

$459 USD in 14 days
(18 Reviews)
4.0
gloosoing

See private message.

$488.75 USD in 14 days
(0 Reviews)
0.0