Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

[gelöst] Gmap & Location: mehrere Fragen

Eingetragen von hurgl (127)
am 30.03.2010 - 13:08 Uhr in
  • Module
  • Drupal 6.x

Hallo,

ich beschäftige mich immer noch mit dem Thema Kartendarstellung auf meiner Drupal-Seite und bin nun auf einige Probleme gestossen, die ich hier anführen möchte:

1. Wo kann ich die Überschift über meiner Karte ändern, der steht immer noch auf "Node Locations" und das ist für den Besucher wohl ein bisschen verwirrend.

2. Meine Nodes, die auf der Karte dargestellt werden sollen, sind quasi in 3 Bereiche aufgeteilt (nennen wir sie A, B und C). Wie krieg ich es hin, dass ich mir zusätzlich zu der Gesamtkarte (mit /map/node -> wo dann alle Einträge angezeigt werden) dann 3 "Unterkarten" erstellen kann, die dann nur die Einträge aus dem jeweiligen Bereich A, B oder C anzeigen, sozusagen eine Teilmenge.

3. Schön wäre auch, wenn ich in der Gesamtkarte 3 farblich unterschiedliche Marker (für jeden Bereich eine andere Farbe) verwenden könnte, damit der Benutzer gleich am Marker sieht, zu welchem Bereich der Eintrag gehört.

4. In dem Detail-Node, welcher durch Klick auf einen Marker angezeigt wird (ein Content Profile), binde ich eine kleine Karte mit der jeweiligen Adresse dieses Nodes ein, als Block Location Map. Leider fehlen bei dieser kleinen Karte die Zoom- und Verschiebe-Pfeile, sowie die Darstellungsoptionen, sodass die Karte nicht so wirklich zu gebrauchen ist. Wie krieg ich denn die fehlenden Elemente da rein?

Ich hoffe, der ein oder andere kann mir ein bisschen helfen.
Vielen Dan auf jeden Fall schon mal im Voraus.

Gruss, hurgl.

‹ [gelöst] Commentare Funktion persenalisieren [gelöst] Wysiwyg + CK Editor + IMCE ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Also zu Punkt 1, Node

Eingetragen von tiger (415)
am 30.03.2010 - 13:34 Uhr

Also zu Punkt 1, Node Locations einfach unter Sprachen übersetzen
2. und 3. Da kommst du sicher mit einer gmap view mit exposed Filters weiter. Wenn du die view vom Typ node erstellst kannst du verschiedene Marker wählen.
4. Man kann doch im Block das Macro angeben, dieses kannst du mit dem Macrogenerator erstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Macro-Generator klingt gut,

Eingetragen von hurgl (127)
am 30.03.2010 - 13:51 Uhr

Macro-Generator klingt gut, den hab ich schon mal gesehen. Da ich aber mit dem Ding nichts anzufangen wusste, hab ich den Menüpunkt im Navigationsmenü deaktiviert :-).

Danke auch für den Tip mit den exposed filters, davon hab ich auch schon mal was gehört, aber noch nicht verwendet. Werd ich heute abend mal ausprobieren und hier Rückmeldung geben...

Gruss, hurgl.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Makro-Generator hat super

Eingetragen von hurgl (127)
am 30.03.2010 - 21:27 Uhr

Makro-Generator hat super funktioniert.
Die Übersetzung ist auch durch.

Was mir leider Probleme bereitet ist der View vom Typ Gmap, da kriege ich immer folgende Fehlermeldung beim Aufruf des Views:
Fatal error: Cannot access empty property in /home/www/....

Folgende Einstellungen habe ich gemacht:
Darstellung: GMap
Zeilendesign: Node

Filter: = Ja (in der DB steht auch der Wert Ja drin)

Was mach ich denn hier falsch?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau doch mal das

Eingetragen von tiger (415)
am 31.03.2010 - 07:17 Uhr

Schau doch mal das an
http://drupal.org/node/428206

oder wähle statt node mal Felder.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Sprechblase im Marker ist leer

Eingetragen von hurgl (127)
am 15.04.2010 - 14:05 Uhr

Mittlerweile habe ich es hinbekomen, dass die Karte mit dem Teilbereich (Filter) angezeit wird. Allerdings besteht noch das Problem, dass die Marker nicht auf den Eintrag verweisen, dh wenn ich auf einen Marker klicke, möchte ich gerne zum Eintrag geleitet werden. Es öffnet sich aber nur eine Sprechblae mit meinen Feldern, die ich selektiere (Firma, Strasse, PLZ, Ort), die Anzeige ist jedoch leer (Details zur Firma werden nicht angezeigt).

Irgendjemand eine Idee?

Ausserdem ist die Performance der Karte ziemlich mau. Es werden ca. 300 Marker abgefragt und der Aufbau der Karte dauert ca. 50 Sekunden. Wenn sie dann da ist und ich auf einen Marker klicke, braucht die Sprechblase auch ca. 10 Sekunden zum Erscheinen... Gibts hier ne Einstellung, die ich vergessen habe?

Gruss, hurgl.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die schlechte Performance

Eingetragen von hurgl (127)
am 16.04.2010 - 13:52 Uhr

Die schlechte Performance scheint ein temporäres Problem bei mit gewesen zu sein. Nun öffnet sich die Karte innerhalb von ca. 3 Sekunden, was ich schon als ziemlich schnell erachte.
Hat vielleicht trotzdem jemand eine Idee mit der Sprechblase, dass ich da die Adresse der Firma reinkriege und einen Link zum Öffnen des Content-Profiles?

Gruss, hurgl.

  • Anmelden oder Registrieren um Kommentare zu schreiben

hurgl schrieb Die schlechte

Eingetragen von gargamel (127)
am 02.05.2010 - 00:52 Uhr
hurgl schrieb

Die schlechte Performance scheint ein temporäres Problem bei mit gewesen zu sein. Nun öffnet sich die Karte innerhalb von ca. 3 Sekunden, was ich schon als ziemlich schnell erachte.
Hat vielleicht trotzdem jemand eine Idee mit der Sprechblase, dass ich da die Adresse der Firma reinkriege und einen Link zum Öffnen des Content-Profiles?

Gruss, hurgl.

tach, hast du da schon eine Lösung? Hänge an diesem Problem genauso...
ich hätte vorher die anderen Patches probieren sollen. Die hier funktioniert:

<?php
--- sites/all/modules/gmap/gmap_plugin_style_gmap.inc.orig    Fri Apr 03 18:34:50 2009
+++ sites/all/modules/gmap/gmap_plugin_style_gmap.inc    Wed Nov 18 18:09:24 2009
@@ -94,6 +94,7 @@
    
// Render each group separately and concatenate.  Plugins may override this
     // method if they wish some other way of handling grouping.
    
$output = '';
+   
$this->view->row_index = 0;
     foreach (
$sets as $title => $records) {
      
$markers = array();
      
$offsets = array();
@@ -
136,6 +137,7 @@
           );
          
$offsets[$markername]++;
         }
+       
$this->view->row_index++;
       }
       if (!empty(
$markers)) { // Don't draw empty maps.
        
$map = gmap_parse_macro($this->options['macro']);
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich versteh leider die Lösung

Eingetragen von hurgl (127)
am 02.05.2010 - 13:36 Uhr

Ich versteh leider die Lösung nicht.
Die Originaldatei hab ich mir angeschaut (sites/all/modules/gmap/gmap_plugin_style_gmap.inc -> bei mir liegt das in /modules/gmap/gmap_plugin_style_gmap.inc). Aber wie krieg ich denn die Codeschnipsel in die Datei rein bzw. an welchen Stellen?
Kannst du mal die ganze korrigierte Datei posten, is ja nicht so lang?
Danke.

Gruss, hurgl.

  • Anmelden oder Registrieren um Kommentare zu schreiben

das + davor bedeutet, du

Eingetragen von gargamel (127)
am 02.05.2010 - 14:05 Uhr

das + davor im Patch bedeutet, du sollst diesen Schnipsel an der besagten Stelle einfügen. Die Zeilen davor und danach zeigen dir, wo sie rein gehören.

<?php
// $Id: gmap_plugin_style_gmap.inc,v 1.7 2009/02/05 21:51:53 bdragon Exp $

/**
* @file
* GMap style plugin.
*/

/**
* Style plugin to render a map.
*
* @ingroup views_style_plugins
*/
class gmap_plugin_style_gmap extends views_plugin_style {
  /**
   * Set default options
   */
  function option_definition() {
    $options = parent::option_definition();

    $options['macro'] = array(
      'default' => '[gmap ]',
    );

    $options['datasource'] = array(
      'default' => 'location',
    );

    $options['markers'] = array('default' => 'static');
    $options['markertype'] = array('default' => 'drupal');

    $options['latfield'] = array('default' => '');
    $options['lonfield'] = array('default' => '');
    $options['markerfield'] = array('default' => '');

    return $options;
  }

  function query() {
    if ($this->options['datasource'] == 'location') {
      $table = $this->view->query->ensure_table('location');
      $this->view->query->add_field($table, 'latitude', 'gmap_lat');
      $this->view->query->add_field($table, 'longitude', 'gmap_lon');
    }

    if ($this->options['markers'] == 'nodetype') {
      $this->view->query->add_field('node', 'type', 'gmap_node_type');
    }
    else if ($this->options['markers'] == 'taxonomy') {
      $this->view->query->add_field('gmap_taxonomy_node', 'marker', 'gmap_node_marker');
    }
    else if ($this->options['markers'] == 'userrole') {
      $this->view->query->add_field('users_roles', 'rid', 'gmap_role_marker');
    }
  }

  function render() {
    if (empty($this->row_plugin)) {
      vpr('gmap_plugin_style_gmap: Missing row plugin');
      return;
    }

    $lat_field = 'gmap_lat';
    $lon_field = 'gmap_lon';

    // Determine fieldname for latitude and longitude fields.
    if ($this->options['datasource'] == 'fields') {
      $lat_field = $this->view->display_handler->get_handler('field', $this->options['latfield'])->field_alias;
      $lon_field = $this->view->display_handler->get_handler('field', $this->options['lonfield'])->field_alias;
    }

    // Determine fieldname for marker field.
    if ($this->options['markers'] == 'field') {
      $marker_field = $this->view->display_handler->get_handler('field', $this->options['markerfield'])->field_alias;
    }

    $markername = isset($this->options['markertype']) ? $this->options['markertype'] : 'drupal';

    $markertypes = variable_get('gmap_node_markers', array());
    if ($this->options['markers'] == 'nodetype') {
      $markertypes = variable_get('gmap_node_markers', array());
    }
    else if ($this->options['markers'] == 'userrole') {
      $markertypes = variable_get('gmap_role_markers', array(DRUPAL_AUTHENTICATED_RID => 'drupal'));
    }

    // Group the rows according to the grouping field, if specified.
    $sets = $this->render_grouping($this->view->result, $this->options['grouping']);

    // Render each group separately and concatenate.  Plugins may override this
    // method if they wish some other way of handling grouping.
    $output = '';
    $this->view->row_index = 0;
    foreach ($sets as $title => $records) {
      $markers = array();
      $offsets = array();
        foreach ($records as $label => $row) {
        $lat = (float)$row->{$lat_field};
        $lon = (float)$row->{$lon_field};
        if (!empty($lat) && !empty($lon)) {
          if ($this->options['markers'] == 'nodetype') {
            if (isset($markertypes[$row->gmap_node_type])) {
              $markername = $markertypes[$row->gmap_node_type];
            }
          }
          else if ($this->options['markers'] == 'taxonomy') {
            if (!empty($row->gmap_node_marker)) {
              $markername = $row->gmap_node_marker;
            }
          }
          else if ($this->options['markers'] == 'userrole') {
            if (!empty($row->gmap_role_marker)) {
              $markername = $markertypes[DRUPAL_AUTHENTICATED_RID];
              if (isset($markertypes[$row->gmap_role_marker])) {
                $markername = $markertypes[$row->gmap_role_marker];
              }
            }
          }
          else if ($this->options['markers'] == 'field') {
            if (!empty($row->{$marker_field})) {
              $markername = $row->{$marker_field};
            }
          }
          if (!isset($offsets[$markername])) {
            $offsets[$markername] = 0;
          }
          $markers[] = array(
            'latitude' => $lat,
            'longitude' => $lon,
            'markername' => $markername,
            'offset' => $offsets[$markername],
            'text' => $this->row_plugin->render($row),
          );
          $offsets[$markername]++;
        }
        $this->view->row_index++;
      }
      if (!empty($markers)) { // Don't draw empty maps.
        $map = gmap_parse_macro($this->options['macro']);
        $map['markers'] = $markers;
        $output .= theme($this->theme_functions(), $this->view, $this->options, $map, $title);
      }
    }
    return $output;
  }

  /**
   * Render the given style.
   */
  function options_form(&$form, &$form_state) {
    parent::options_form($form, $form_state);
    $form['macro'] = array(
      '#type' => 'textfield',
      '#title' => t('Macro'),
      '#size' => 1000,
      '#default_value' => $this->options['macro'],
    );

    $form['datasource'] = array(
      '#type' => 'select',
      '#title' => t('Data Source'),
      '#options' => array(
        'location' => t('Location.module'),
        'fields' => t('Choose latitude and longitude fields'),
      //'geocode' => t('Just-in-time geocoding on field named "address"'),
      ),
      '#default_value' => $this->options['datasource'],
      '#multiple' => FALSE,
    );

    $options = array();
    // @@@ Fix this when I'm not having a monday morning.
    // There's likely a more "correct" way.
    foreach ($this->display->display_options['fields'] as $id => $handler) {
      $data = views_fetch_data($handler['table']);
      $options[$id] = $handler['label'];
    }

    $form['latfield'] = array(
      '#title' => t('Latitude field'),
      '#description' => t('Format must be degrees decimal.'),
      '#type' => 'select',
      '#options' => $options,
      '#default_value' => $this->options['latfield'],
      '#process' => array('views_process_dependency'),
      '#dependency' => array('edit-style-options-datasource' => array('fields')),
    );
    $form['lonfield'] = array(
      '#title' => t('Longitude field'),
      '#description' => t('Format must be degrees decimal.'),
      '#type' => 'select',
      '#options' => $options,
      '#default_value' => $this->options['lonfield'],
      '#process' => array('views_process_dependency'),
      '#dependency' => array('edit-style-options-datasource' => array('fields')),
    );

    $form['markers'] = array(
      '#type' => 'select',
      '#title' => t('Marker handling'),
      // @@@ Detect view type automatically?
      '#options' => array(
        'nodetype' => t('By content type (for node views)'),
        'taxonomy' => t('By term (for node views)'),
        'userrole' => t('By user role (for user views)'),
        'field' => t('Use marker field'),
        'static' => t('Use single marker type'),
      ),
      '#default_value' => $this->options['markers'],
    );

    $form['markerfield'] = array(
      '#type' => 'select',
      '#title' => t('Marker field'),
      '#description' => t('You can use a views field to set the <em>markername</em> property of the markers.'),
      '#options' => $options,
      '#default_value' => $this->options['markerfield'],
      '#process' => array('views_process_dependency'),
      '#dependency' => array('edit-style-options-markers' => array('field')),
    );

    // Hide the taxonomy handling if gmap_taxonomy.module isn't installed.
    if (!module_exists('gmap_taxonomy')) {
      unset($form['markers']['#options']['taxonomy']);
    }

    $form['markertype'] = array(
      '#type' => 'gmap_markerchooser',
      '#title' => t('Marker / fallback marker to use'),
      '#default_value' => $this->options['markertype'],
    );
  }
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktioniert super. VIIEEELEN

Eingetragen von hurgl (127)
am 02.05.2010 - 15:06 Uhr

Funktioniert super. VIIEEELEN Dank!

  • Anmelden oder Registrieren um Kommentare zu schreiben

gargamel, du bist der Held :D

Eingetragen von Crouchie (157)
am 23.06.2010 - 15:47 Uhr

Seit Tagen habe ich das selbe Problem und endlich bin hier auf die Lösung gestoßen. Vielen Dank für den Snippet, oder besser gesagt die ganze Datei ;) Auch wenn der Thread schon geschlossen ist, muss ich auf Grund meiner Beinahevezweiflung noch mal ein großes Dankeschön aussprechen :)

VG Crouchie

  • Anmelden oder Registrieren um Kommentare zu schreiben

Crouchie schrieb Seit Tagen

Eingetragen von gargamel (127)
am 23.06.2010 - 18:43 Uhr
Crouchie schrieb

Seit Tagen habe ich das selbe Problem und endlich bin hier auf die Lösung gestoßen. Vielen Dank für den Snippet, oder besser gesagt die ganze Datei ;) Auch wenn der Thread schon geschlossen ist, muss ich auf Grund meiner Beinahevezweiflung noch mal ein großes Dankeschön aussprechen :)

VG Crouchie

na dann bin ich ja froh das ich auch mal was beitragen kann ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Punkt 3?!

Eingetragen von DerTobi75 (48)
am 12.10.2010 - 10:09 Uhr

Hi,

wie hast Du denn Punkt Nr. 3 hinbekommen? Bei mir zeigt der auf der Views Map immer nur den Default Marker an ;(

Viele Grüße,

Tobi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe es nun auch hinbekommen,

Eingetragen von DerTobi75 (48)
am 12.10.2010 - 14:02 Uhr

Habe es nun auch hinbekommen, puh ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Bitte um Einschätzung: Upgrade von Drupal 7 auf 9
  • SQL-Injection? User hat sich Zugriff aufs Admin-Konto geholt und Änderungen vorgenommen.
  • [gelöst]Webform Meldung nach Submission
  • Migration über feeds von D6 auf D8
  • Anbindung externe Datenbank MongoDB
  • Webform - einzelne Komponenten übersetzen
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Webhoster Installation von D8 zu D9 Upgraden - Fragen...
  • Drupal Freelancer*in / Entwickler*in in Berlin gesucht
  • [gelöst]Nach Update auf 3.1.21: Feld "Allowed User" funktioniert nicht mehr
  • Wie Massenupdate durchführen, wenn Bulk Operations abbricht?
  • [gelöst]Texteditor in Drupal 9.x
Weiter

Neue Kommentare

  • Backdrop CMS
    vor 14 Stunden 21 Minuten
  • Zitat: ob ein reibungsloses
    vor 15 Stunden 31 Minuten
  • Kann die Ursache eventuell an
    vor 21 Stunden 23 Minuten
  • Unter General
    vor 21 Stunden 36 Minuten
  • Hallo Andreas, Ich habe Dir
    vor 1 Tag 15 Stunden
  • montviso schrieb Aber egal,
    vor 1 Tag 16 Stunden
  • Beispiel
    vor 1 Tag 17 Stunden
  • Oh Mann.In
    vor 1 Tag 17 Stunden
  • zitate, termine und messen
    vor 2 Tagen 23 Minuten
  • Suchmaschinenfreundlichen URL
    vor 2 Tagen 5 Stunden

Statistik

Beiträge im Forum: 248358
Registrierte User: 19749

Neue User:

  • Aman_Musani
  • Dustinjex
  • Rickywap

» Alle User anzeigen

User nach Punkten sortiert:
wla9283
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association