diff --git a/leaflet.formatters.inc b/leaflet.formatters.inc
index e190e49..14f0610 100644
--- a/leaflet.formatters.inc
+++ b/leaflet.formatters.inc
@@ -205,7 +205,7 @@ function leaflet_field_formatter_settings_summary($field, $instance, $view_mode)
 /**
  * Implements hook_field_formatter_view().
  */
-function leaflet_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
+function leaflet_field_formatter_view($entity, $field, $instance, $langcode, $items, $display) {
   $element = array();
   $settings = $display['settings'];
 
@@ -221,7 +221,7 @@ function leaflet_field_formatter_view($entity_type, $entity, $field, $instance,
 
         // if only a single feature, set the popup content to the entity title
         if ($settings['popup'] && count($items) == 1) {
-          $features[0]['popup'] = entity_label($entity_type, $entity);
+          $features[0]['popup'] = $entity->label();
         }
 
         if (!empty($settings['icon']) && $settings['icon']['iconUrl']) {
@@ -325,3 +325,33 @@ function leaflet_process_geofield($items = array()) {
 
   return $data;
 }
+
+function leaflet_process_rendered_geofield($geofield_value) {
+  $coords = explode('<br/>', $geofield_value);
+  // If we have the Latitude/Longitude format, which is rendered as
+  // "Latitude: lat<br/>Longitude: long", convert it to an array('point', lat, lon)
+  // Other formats are handled by geoPHP::load(), below.
+  if (count($coords) == 2) {
+    $lat = str_replace('Latitude: ', '',  $coords[0]);
+    $lon = str_replace('Longitude: ', '',  $coords[1]);
+    return array(
+      array(
+        'geo_type' => 'point',
+        'lat' => $lat,
+        'lon' =>$lon
+      )
+    );
+  }
+  else {
+    geophp_load();
+    $geometry = geoPHP::load($geofield_value);
+     return array(
+      array(
+        'geo_type' => 'point',
+        'lat' => $geometry->coords[1],
+        'lon' => $geometry->coords[0]
+      )
+    );
+  }
+
+}
\ No newline at end of file
diff --git a/leaflet.info.yml b/leaflet.info.yml
index 908a280..6b05db8 100644
--- a/leaflet.info.yml
+++ b/leaflet.info.yml
@@ -1,7 +1,4 @@
-name = Leaflet
-description = Integration with the Leaflet map scripting library.
-core = 7.x
-
-dependencies[] = libraries
-
-files[] = leaflet.formatters.inc
+name: Leaflet
+description: Integration with the Leaflet map scripting library.
+version: VERSION
+core: 8.x
diff --git a/leaflet.install b/leaflet.install
index e97327e..1a20419 100644
--- a/leaflet.install
+++ b/leaflet.install
@@ -10,9 +10,19 @@
  */
 function leaflet_requirements($phase) {
   $requirements = array();
-
-  // Ensure js library is available.
-  if ($phase == 'runtime' && !file_exists(libraries_get_path('leaflet') . '/dist/leaflet.js')) {
+  if ($phase != 'runtime') {
+    return $requirements;
+  }
+  // Ensure js library is installed. Show number of maps avaialble.
+  if (file_exists(leaflet_libraries_get_path('leaflet') . '/dist/leaflet.js')) {
+    $requirements['leaflet'] = array(
+      'title' => t('Leaflet library'),
+      'value' => t('Installed. @maps available.', array(
+        '@maps' => format_plural(count(leaflet_map_get_info()),'One map', '@count maps'))),
+      'severity' => REQUIREMENT_OK,
+    );
+  }
+  else {
     $requirements['leaflet'] = array(
       'title' => t('Leaflet library not found'),
       'value' => t('The !leaflet javascript library was not found. Please !download it into the libraries folder. Also ensure that the library is named leaflet with a lower case "l".',
diff --git a/leaflet.make.example b/leaflet.make.example
index 324155b..f5493e8 100644
--- a/leaflet.make.example
+++ b/leaflet.make.example
@@ -1,6 +1,6 @@
 api = 2
 
-core = 7.x
+core = 8.x
 
 projects[libraries] = 1
 
diff --git a/leaflet.module b/leaflet.module
index 333ad0e..891faad 100644
--- a/leaflet.module
+++ b/leaflet.module
@@ -13,34 +13,38 @@ function leaflet_theme($existing, $type, $theme, $path) {
   );
 }
 
+function leaflet_libraries_get_path($base) {
+  return module_exists('libraries') ? libraries_get_path($base) : "sites/all/libraries/$base";
+}
+
 /**
- * Implements hook_library().
+ * Implements hook_library_info().
  */
-function leaflet_library() {
+function leaflet_library_info() {
   $libraries['leaflet'] = array(
     'title' => 'Leaflet',
     'website' => 'http://leaflet.cloudmade.com',
-    'version' => '0.4',
+    'version' => '0.5',
     'js' => array(
       array(
         'type' => 'inline',
-        'data' => 'L_ROOT_URL = "' . base_path() . libraries_get_path('leaflet') . '/dist/";',
+        'data' => 'L_ROOT_URL = "' . base_path() . leaflet_libraries_get_path('leaflet') . '/dist/";',
         'group' => JS_LIBRARY,
         'preprocess' => FALSE
       ),
       array(
         'type' => 'file',
-        'data' => libraries_get_path('leaflet') . '/dist/leaflet.js',
+        'data' => leaflet_libraries_get_path('leaflet') . '/dist/leaflet.js',
         'group' => JS_LIBRARY,
         'preprocess' => FALSE
       ),
     ),
     'css' => array(
-      libraries_get_path('leaflet') . '/dist/leaflet.css' => array(
+      leaflet_libraries_get_path('leaflet') . '/dist/leaflet.css' => array(
         'type' => 'file',
         'media' => 'screen',
       ),
-      libraries_get_path('leaflet') . '/dist/leaflet.ie.css' => array(
+      leaflet_libraries_get_path('leaflet') . '/dist/leaflet.ie.css' => array(
         'browsers' => array(
           'IE' => 'lte IE 8',
           '!IE' => FALSE,
@@ -52,7 +56,7 @@ function leaflet_library() {
   $libraries['leaflet-drupal'] = array(
     'title' => 'Leaflet initialization',
     'website' => 'http://drupal.org/project/leaflet',
-    'version' => '7.x-1.x',
+    'version' => VERSION,
     'js' => array(
       drupal_get_path('module', 'leaflet') . '/leaflet.drupal.js' => array(),
     ),
@@ -110,8 +114,8 @@ function leaflet_map_get_info($map = NULL) {
   $map_info = &$drupal_static_fast['leaflet_map_info'];
 
   if (empty($map_info)) {
-    if ($cache = cache_get("leaflet_map_info")) {
-      $map_info = $cache->data;
+    if ($cached = cache()->get('leaflet_map_info')) {
+      $map_info = $cached->data;
     }
     else {
       $map_info = module_invoke_all('leaflet_map_info');
@@ -119,7 +123,7 @@ function leaflet_map_get_info($map = NULL) {
       // Let other modules alter the map info.
       drupal_alter('leaflet_map_info', $map_info);
 
-      cache_set("leaflet_map_info", $map_info);
+      cache()->set('leaflet_map_info', $map_info);
     }
   }
 
diff --git a/leaflet_views/leaflet_views.info.yml b/leaflet_views/leaflet_views.info.yml
index 3f220d3..ebdb62f 100644
--- a/leaflet_views/leaflet_views.info.yml
+++ b/leaflet_views/leaflet_views.info.yml
@@ -1,9 +1,7 @@
-name = Leaflet views
-description = Views integration for the Leaflet module.
-core = 7.x
-dependencies[] = leaflet
-dependencies[] = geofield
-dependencies[] = views
-dependencies[] = entity
-files[] = leaflet_views.views.inc
-files[] = leaflet_views_plugin_style.inc
+name: Leaflet Views
+description: Views integration for the Leaflet module.
+version: VERSION
+core: 8.x
+dependencies:
+  - leaflet
+  - views
\ No newline at end of file
diff --git a/leaflet_views/lib/Drupal/leaflet_views/Plugin/views/style/LeafletMap.php b/leaflet_views/lib/Drupal/leaflet_views/Plugin/views/style/LeafletMap.php
index 84eade3..f808649 100644
--- a/leaflet_views/lib/Drupal/leaflet_views/Plugin/views/style/LeafletMap.php
+++ b/leaflet_views/lib/Drupal/leaflet_views/Plugin/views/style/LeafletMap.php
@@ -19,7 +19,7 @@ use Drupal\views\Plugin\views\style\StylePluginBase;
  *
  * @ingroup views_style_plugins
  *
- * Attributes set below end up in the $this->definition[] array
+ * Attributes set below end up in the $this->definition[] array.
  *
  * @Plugin(
  *   id = "leafet_map",
@@ -84,11 +84,11 @@ class LeafletMap extends StylePluginBase {
     $fields = array();
     $fields_geo_data = array();
     foreach ($this->displayHandler->getHandlers('field') as $field_id => $handler) {
-      $fields[$field_id] = $handler->label();
-      // @todo RdB: something similar to line below for D8
-      //if (!empty($handler->field_info['type']) && $handler->field_info['type'] == 'geofield') {
-        $fields_geo_data[$field_id] = $fields[$field_id];
-      //}
+      $label = $handler->label() ?: $field_id;
+      $fields[$field_id] = $label;
+      if (!empty($handler->field_info['type']) && $handler->field_info['type'] == 'geofield') {
+        $fields_geo_data[$field_id] = $label;
+      }
     }
 
     // Check whether we have a geo data field we can work with
@@ -322,14 +322,20 @@ class LeafletMap extends StylePluginBase {
       return t('Preview is not available for Leaflet map.');
     }
     $data = array();
-
+    $geofield_name = $this->options['data_source'];
     if ($this->options['data_source']) {
       $this->render_fields($this->view->result);
       foreach ($this->view->result as $id => $result) {
-        $geofield = $this->get_field_value($id, $this->options['data_source']);
 
-        if (!empty($geofield)) {
-          $points = leaflet_process_geofield($geofield);
+        $geofield_value = $this->get_field_value($id, $geofield_name);
+
+        if (empty($geofield_value)) {
+          // In case the result is not among the raw results, get it from the
+          // rendered results.
+          $geofield_value = leaflet_process_rendered_geofield($this->rendered_fields[$id][$geofield_name]);
+        }
+        if (!empty($geofield_value)) {
+          $points = leaflet_process_geofield($geofield_value);
 
           // Render the entity with the selected view mode
           if ($this->options['description_field'] === '#rendered_entity' && is_object($result)) {
