public function getCMSFields()
 {
     Requirements::javascript('google-store-finder/javascript/store-creator.js');
     $fields = parent::getCMSFields();
     // Create a gridfield to hold the student relationship
     $latField = new NumericField('StartLat', 'Starting Latitude', 40);
     $longField = new NumericField('StartLong', 'Starting Longitude', -100);
     $zoomField = new NumericField('StartZoom', 'Starting Zoom', 2);
     $geoLocatedZoomField = new NumericField('GeolocatedZoom', "Geolocated Zoom", 8);
     $mapType = new DropdownField('MapType', 'Map Type', array("RoadMap" => "Road Map", "Satellite" => "Satellite"), "RoadMap");
     // Create a tab named "Students" and add our field to it
     $fields->addFieldToTab('Root.Map', new LiteralField("geolocation-explanation", '<p>This Module will attempt to detect users location if their device supports it.  if not, please enter the starting latitude and longitude. (Default values center North and South America in the map).</p>'));
     $fields->addFieldToTab('Root.Map', $latField);
     $fields->addFieldToTab('Root.Map', $longField);
     $fields->addFieldToTab('Root.Map', $zoomField);
     $fields->addFieldToTab('Root.Map', $geoLocatedZoomField);
     $fields->addFieldToTab('Root.Map', $mapType);
     $markerClassObject = Injector::inst()->create(self::$MarkerClass);
     // Create a default configuration for the new GridField, allowing record editing
     $config = GridFieldConfig_RelationEditor::create();
     // Set the names and data for our gridfield columns
     $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Name' => 'Name'));
     // Create a gridfield to hold the student relationship
     $locationField = new GridField(self::$MarkerClass, DataObject::get_static(self::$MarkerClass, "singular_name"), DataObject::get(self::$MarkerClass), $config);
     // Create a tab named "Students" and add our field to it
     $fields->addFieldToTab('Root.Locations', $locationField);
     return $fields;
 }