You have chosen to sponsor your bid up to a maximum amount of .
The finished product will display custom markers and info windows using the Google Maps API based on an initial longitude and latitude to center the map and mark the position of the primary object. Additional markers are automatically placed around this object based on how big the map is and zoom level. There will be two sources for the data and both of them will parsed using either SQL queries or XML output from PHP (depending which works the best) to obtain the longitude / latitude and basic data needed to display them correctly on the map. The additional markers will load using AJAX, which will be reloaded when you resize, move or zoom the map. The two different sources (Hotels and Points of interest) should placed in layers so that it's possible to turn on and off them using variables if I only want to display one type of object. A third optional layer will consist of polygon shapes that can be overlaid on top of the map, this should also be possible to toggle on and off.
- Map must be called from a PHP function with the possibility to set initial long/lat, maximum number of markers shown and the width / height of the map etc.
- The map must utilise the Google Maps API version 2 or 3, whichever works best.
- All code must be documented using comments.
- Data handling must be secure so that external websites can not load or use the data in any way.
- Markers must be displayed with custom icons (that are provided).
- Map must be re-sizable, meaning it will load and re-center the map if it is resized using i.e. jQuery CSS calls.
- Info windows will be displayed on mouse-over on a marker.
- Info windows must be displayed with CSS classes defined in an external stylesheet.
- Info windows must contain a clickable link to a Street View mode (based on coordinates) which will be presented using a jQuery lightbox (also provided).
- Markers must be placed in two layers (Hotels and Points of Interest) so that they can be independently loaded if needed.
- Separate layer for polygon shapes.
- Map must be compatible with Internet Explorer 7, Firefox 3, Safari 3, and Chrome 4 and higher.
- Performance optimized so it loads quickly.
- Markers are automatically loaded based on an initial longitude, latitude and zoom level.
- New markers that are in range are automatically loaded with AJAX on resize, movement or zooming of the map.
Questions? Don't be afraid to ask!
Additional Project Description:
04/29/2010 at 21:47 SGT
WHAT IS ALREADY DONE
- jQuery integration using Google JS API
- XML parser that loads and displays markers on the map
- Custom icons depending of what kind of POI
- Street View mode using a jQuery lightbox
- Custom infowindow for mouseover on a marker
- Map can be expanded but does not work very well
- Static image fallback if JS is disabled
WHAT NEEDS TO BE DONE
- PHP integration so it can be called from a PHP function on any page with desired size and features using variables.
- Secure data handling for the XML calls to the POI:s so that data scraping or logging is not possible.
- Dynamic loading of additional markers using AJAX based on the coordinates and size of the map.
- Main POI should be marked with a unique icon. The location of this is based on the long/lat submitted from the PHP function that generates the map.
- Resizable, meaning that it can be resized in real-time with jQuery calls or similar if the user wants to see a bigger version.
- Clicking on a marker will open a standard Google Infowindow with a small thumbnail for the POI and the text data defined in the XML array for the marker. There should also be a clickable street view link in this window.
- Layering for the two XML sources.
- Separate layer for future polygon data which should be able to toggle on and off using a variable.
- Better fallback function to a static map for browsers without JS enabled.
- Better browser compatibility.
- Performance optimization.
Everything that is already done is neatly packaged into folders and files with well documented JS code so that you will be able to work on it without problems.