sfEasyGMapPlugin 1.0.4 out
June 02, 2009Fabrice Bernhard2 min read
sfEasyGMapPlugin 1.0.4 is out and the good news is : the plugin is the 24th most used symfony plugin among the 457 available on http://www.symfony-project.org/plugins/ ! We are now 5 official developers, not counting all the developers I work with who contribute indirectly.
It all started because I was amazed by the success of the Phoogle library on the Internet despite its limited number of functionalities. And since almost all my projects involved a Google Map I wanted to create a plugin containing all the core functionalities I always reuse. Now I am happy to see the popularity of the plugin and am looking forward further possible developments that will continue in the spirit of including as many core functionalities of Google Maps-based application in the plugin.
New functionalities for the moment include :
- More precise Mercator projections to convert GPS coordinates into Google Pixel coordinates and back GMapCoord::fromPixToLat, GMapCoord::fromLatToPix, etc.
- Added the GMapBounds::getBoundsContainingMarkers(...) function
- Added the GMap::centerAndZoomOnMarkers() function which enables to guess zoom and center of the map to fit the markers. Center is easy to guess. Zoom uses width and height of smallest bound, pixel width and height of the map and Mercator projection
- Added tomr's contribution: it is now possible to add multiple controls to the map
- Added the GMapCoord::distance($coord1, $coord2) function which gives an estimation of the distance between two coordinates
- Added the very useful function $gMap-> getBoundsFromCenterAndZoom(...) which enables one to calculate server-side the bounds corresponding to specific center coordinates, zoom, and map size. This is the equivalent of the client-side map.setCenter(...,...);map.setZoom(...);map.getBounds(); It uses the Mercator projection formulas as used by the Google Maps
- A new function $gMapMarker->isInsideBounds($bounds)
- A lot of unit tests
- And two new samples
Please, feel free to suggest what you consider typical core functionalities of your Google Maps-based applications.