{ "info": { "author": "Florian Schulze", "author_email": "fschulze@jarn.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 3.3", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python" ], "description": "A Google Maps solution for Plone\n--------------------------------\n\nThe main purpose of this product is to provide a very simple to use\nGoogle Maps integration for Plone. The following goals were set for\ndevelopment:\n\n- Ease of use\n - Add locations to a folder\n - Set the view of the folder to Map\n - It figures out how to center and zoom the map automatically\n- Flexibility for enhancement by using the Zope 3 component architecture\n- Sane fallbacks when Javascript is not available\n- Clean separation of javascript, templates and logic\n- Works on Topics\n\nInstallation\n------------\n\nMaps shows up in the \"Add-ons\" configuration panel.\n\nImplementing custom content with map field\n------------------------------------------\n\nIf you want to add location foeld to your custom content type, you should\nimplement the following steps:\n\nAdd GeoLocation field::\n\n from Products.Maps.field import LocationWidget, LocationField\n from Products.Maps.interfaces import IMapEnabled, ILocation\n\n MyContentSchema = ...\n\n LocationField('geolocation',\n required=False,\n searchable=False,\n validators=('isGeoLocation',),\n widget = LocationWidget(label = u'Event location'),\n ),\n ... \n\nUpdate your class definition::\n\n class MyContent(ATCTContent):\n \"\"\" my content description \"\"\"\n implements(IMyContent, IMapEnabled, ILocation)\n \n ... \n\n def getMarkerIcon(self):\n \"\"\" Can be implemented as select field. See Maps.Location content \"\"\"\n return \"Red Marker\"\n\nAdd following snippet to custom content view/template::\n\n