diff --git a/public/sites/all/modules/geolocation/geolocation.module b/public/sites/all/modules/geolocation/geolocation.module
index 4ddd50c..2889e39 100644
--- a/public/sites/all/modules/geolocation/geolocation.module
+++ b/public/sites/all/modules/geolocation/geolocation.module
@@ -15,8 +15,75 @@ function geolocation_field_info() {
       'description' => t('Geolocation input.'),
       'default_widget' => 'geolocation_latlng',
       'default_formatter' => 'geolocation_text',
+      'property_type' => 'entity',
+
+      // Integrate with the Entity Metadata module.
+      'property_type' => 'geolocation',
+      'property_callbacks' => array('geolocation_property_info_callback'),
+    ),
+  );
+}
+
+
+
+function geolocation_property_info_callback(&$info, $entity_type, $field, $instance, $field_type) {
+
+  $name = $field['field_name'];
+
+  $property = &$info[$entity_type]['bundles'][$instance['bundle']]['properties'][$name];
+  $property['type'] = ($field['cardinality'] != 1) ? 'list<geolocation>' : 'geolocation';
+  $property['getter callback'] = 'entity_metadata_field_verbatim_get';
+  $property['setter callback'] = 'entity_metadata_field_verbatim_set';
+//   $property['auto creation'] = 'addressfield_default_values';
+  $property['property info'] = geolocation_data_property_info();
+
+//   unset($property['query callback']);
+}
+
+
+
+/**
+ * Defines info for the properties of the address field data structure.
+ */
+function geolocation_data_property_info($name = NULL) {
+  // Build an array of basic property information for the address field.
+
+  $properties = array(
+    'lat' => array(
+      'label' => t('Latitude'),
+      'description' => 'Stores the latitude value',
+    ),
+    'lng' => array(
+      'label' => t('Longitude'),
+      'description' => 'Stores the longitude value',
+    ),
+    'lat_sin' => array(
+      'label' => t('Latitude Sine'),
+      'description' => 'Stores the sine of latitude',
+    ),
+    'lat_cos' => array(
+      'label' => t('Latitude Cosine'),
+      'description' => 'Stores the cosine of latitude',
+    ),
+    'lng_rad' => array(
+      'label' => t('Longitude Radian'),
+      'description' => 'Stores the radian longitude',
     ),
   );
+
+  // Add the default values for each of the address field properties.
+  foreach ($properties as $key => &$value) {
+    $value += array(
+      'description' => !empty($name) ? t('!label of field %name', array('!label' => $value['label'], '%name' => $name)) : '',
+      'type' => 'decimal',
+      'getter callback' => 'entity_property_verbatim_get',
+      'setter callback' => 'entity_property_verbatim_set',
+      'type' => 'decimal',
+      'default' => 0,
+    );
+  }
+
+  return $properties;
 }
 
 /**
