Umkreissuche
Eingetragen von neofelis (186)
am 03.04.2013 - 17:09 Uhr in
am 03.04.2013 - 17:09 Uhr in
Ich habe nun Addressfield, Geocoder, Geofield und leaflet Modul in einem Verbund am Laufen. Mit einem speziellem Node hinterlege ich die Adressen. Nun wollte ich zusätzlich eine Umkreissuche (möglichst ohne apache solr) nach Postleitzahl oder auch anderes mit Stichwörtern realisieren. Gibt es da ein gescheites Modul für Drupal 7, welches mit den oben genannten Modulen zusammenarbeitet?
- Anmelden oder Registrieren um Kommentare zu schreiben
OpenLayers Proximity
am 03.04.2013 - 20:17 Uhr
Ich hatte mal eine Umkreissuche mit OpenLayers und OpenLayers Proximity umgesetzt, weis aber nicht, ob das mit Leaflet zusammen funktioniert.
viele Grüße
Helrunar
Projekt Waterkant - CM-Solutions
Also, der Kollege hier sagt
am 03.04.2013 - 20:21 Uhr
Also, der Kollege hier sagt schon: http://drupal.stackexchange.com/questions/14659/need-a-simple-google-map...
Bin das gerade mal am ausprobieren und berichte, sobald das Konstrukt erfolgreich ist.
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Wenn du die aktuelle
am 03.04.2013 - 20:29 Uhr
Wenn du die aktuelle 7.x-2.x-dev Version vom [do:geofield] Modul verwendest, hast du in Views die Möglichkeit über einen exposed Filter eine Umkreissuche darzustellen. Das Ganze funktioniert dann auch im Zusammenspiel mit leaflet Maps.
Ausgabe:
Im View selbst verwendest du dann einfach den Filter Content: Geodata - proximity als exposed-Filter - so kann dann auch der Nutzer eigene Orte Eingeben oder den Umkreis ändern.
OpenLayers und Leaflet selbst spielen nicht zusammen, da beide eigentlich "nur" eine Javascript Bibliothek zur Anzeige von Karten / Visualisierung von Geodaten zur Verfügung stellen. Da müsstest du dich schon für eine Möglichkeit entscheiden - entscheidend ist dabei wohl der Use-Case. Openlayers bietet dir schon sehr viel Out-of-the-box - leaflet hingegen kommt leichtgewichtig daher ( hat aber CSS3 / HTML5 / Mobile Support) und kann durch Plugins gut erweitert werden.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Danke :), darauf bin ich auch
am 03.04.2013 - 20:35 Uhr
Danke :), darauf bin ich auch schon gekommen und habe ich auch gemacht. Soweit so gut, bin gerade im Abschnitt Filter, aber er zeigt mir generell nicht die Leaflet Map an. Egal was ich mache. Hier http://onlinecasino-forum.de/casino/alexander-sibert zeigt er direkt aus dem Field heraus an. Das funktioniert, aber wenn ich per Views ausgebe nicht.
http://onlinecasino-forum.de/datenschutz
Ich mache euch mal Screenshots von meinem View und Einstellungen.
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Anbei die Screenshots
am 03.04.2013 - 20:43 Uhr
Anbei die Screenshots
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Waren falsche Einstellungen
am 03.04.2013 - 21:21 Uhr
Waren falsche Einstellungen in Views, nun zeigt er mir schon mal die Map an.
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Hallo Steffen, ich habe nun
am 04.04.2013 - 05:47 Uhr
Hallo Steffen,
ich habe nun soweit so gut fast alles drin. Ajax muss ja für exposed filter aktiviert sein, aber irgendwie funzt es noch nicht wirklich. Hier mein Auszug des View:
$view = new view();
$view->name = 'casino_map';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Casino Map';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Casino Map';
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mehr';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'input_required';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Search';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Zurücksetzen';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Sortieren nach';
$handler->display->display_options['exposed_form']['options']['expose_sort_order'] = FALSE;
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Aufsteigend';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Absteigend';
$handler->display->display_options['exposed_form']['options']['text_input_required_format'] = 'full_html';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['style_plugin'] = 'leaflet';
$handler->display->display_options['style_options']['data_source'] = 'field_location';
$handler->display->display_options['style_options']['name_field'] = 'title';
$handler->display->display_options['style_options']['description_field'] = 'title';
$handler->display->display_options['style_options']['map'] = 'OSM Mapnik';
$handler->display->display_options['style_options']['icon'] = array(
'iconUrl' => '',
'shadowUrl' => '',
'iconSize' => array(
'x' => '',
'y' => '',
),
'iconAnchor' => array(
'x' => '',
'y' => '',
),
'shadowAnchor' => array(
'x' => '',
'y' => '',
),
'popupAnchor' => array(
'x' => '',
'y' => '',
),
);
/* Feld: Inhalt: Titel */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Feld: Inhalt: Location */
$handler->display->display_options['fields']['field_location']['id'] = 'field_location';
$handler->display->display_options['fields']['field_location']['table'] = 'field_data_field_location';
$handler->display->display_options['fields']['field_location']['field'] = 'field_location';
$handler->display->display_options['fields']['field_location']['label'] = '';
$handler->display->display_options['fields']['field_location']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_location']['click_sort_column'] = 'geom';
$handler->display->display_options['fields']['field_location']['settings'] = array(
'data' => 'full',
);
/* Feld: Inhalt: Location - proximity */
$handler->display->display_options['fields']['field_geofield_distance']['id'] = 'field_geofield_distance';
$handler->display->display_options['fields']['field_geofield_distance']['table'] = 'field_data_field_location';
$handler->display->display_options['fields']['field_geofield_distance']['field'] = 'field_geofield_distance';
$handler->display->display_options['fields']['field_geofield_distance']['label'] = '';
$handler->display->display_options['fields']['field_geofield_distance']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_geofield_distance']['precision'] = '0';
$handler->display->display_options['fields']['field_geofield_distance']['source'] = 'exposed_geofield_filter';
$handler->display->display_options['fields']['field_geofield_distance']['geofield_proximity_manual'] = array(
'lat' => '',
'lon' => '',
);
$handler->display->display_options['fields']['field_geofield_distance']['geofield_proximity_entity_url_field'] = 'field_location';
$handler->display->display_options['fields']['field_geofield_distance']['geofield_proximity_current_user_field'] = 'field_location';
$handler->display->display_options['fields']['field_geofield_distance']['radius_of_earth'] = '6371';
/* Sortierkriterien: Inhalt: Beitragsdatum */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Filterkriterium: Inhalt: Veröffentlicht */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filterkriterium: Inhalt: Typ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'casino' => 'casino',
);
/* Filterkriterium: Inhalt: Location - proximity */
$handler->display->display_options['filters']['field_geofield_distance']['id'] = 'field_geofield_distance';
$handler->display->display_options['filters']['field_geofield_distance']['table'] = 'field_data_field_location';
$handler->display->display_options['filters']['field_geofield_distance']['field'] = 'field_geofield_distance';
$handler->display->display_options['filters']['field_geofield_distance']['value'] = array(
'distance' => '10',
'distance2' => 200,
'unit' => '6371',
'origin' => '',
);
$handler->display->display_options['filters']['field_geofield_distance']['exposed'] = TRUE;
$handler->display->display_options['filters']['field_geofield_distance']['expose']['operator_id'] = 'field_geofield_distance_op';
$handler->display->display_options['filters']['field_geofield_distance']['expose']['label'] = 'Location - proximity';
$handler->display->display_options['filters']['field_geofield_distance']['expose']['operator'] = 'field_geofield_distance_op';
$handler->display->display_options['filters']['field_geofield_distance']['expose']['identifier'] = 'field_geofield_distance';
$handler->display->display_options['filters']['field_geofield_distance']['expose']['remember_roles'] = array(
2 => 0,
1 => '1',
3 => 0,
6 => 0,
4 => 0,
5 => 0,
);
$handler->display->display_options['filters']['field_geofield_distance']['source'] = 'geocoder';
$handler->display->display_options['filters']['field_geofield_distance']['geofield_proximity_entity_url_field'] = 'field_location';
$handler->display->display_options['filters']['field_geofield_distance']['geofield_proximity_current_user_field'] = 'field_location';
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$translatables['casino_map'] = array(
t('Master'),
t('Casino Map'),
t('mehr'),
t('Search'),
t('Zurücksetzen'),
t('Sortieren nach'),
t('Aufsteigend'),
t('Absteigend'),
t('Select any filter and click on Apply to see results'),
t('.'),
t(','),
t('Location - proximity'),
t('Block'),
);
Kannst du mir mal Screenshots von deinen View Einstellungen zusenden? Dann kann ich das mal mit meinen abgleichen.
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Funktioniert die Umkreissuche
am 04.04.2013 - 07:06 Uhr
Funktioniert die Umkreissuche denn ohne Ajax in deinem View ?
Mit Ajax scheint es wohl noch das Problem zu geben, dass die Karte nicht wieder automatisch "raus" zoomt, wenn man bspw. im Umkreis von 10km und dann im Umkreis von 100km sucht - das filtern der Inhalte an sich funktioniert problemlos.
Für die Ajax-Funktionalität müsstest du dich mal durch die Issues von geofield arbeiten und schauen, ob der Bug dort schon aufgeführt ist.
http://drupal.org/project/issues/geofield?status=All&categories=All
Mit deinem bisherigen Setup verstößt du gerade noch gegen die Nutzungsbedingungen von GoogleGeocoder - diesen darfst du nur nutzen, wenn du die Daten auch auf Google-Kartenmaterial anzeigst. Alternative Geocoder, die dann auch das Einbinden von OpenStreetmap und anderen Karten erlauben findest du auf der Projektseite des [do:geocoder] Moduls.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Danke für den Tip, habe nun
am 04.04.2013 - 07:48 Uhr
Danke für den Tip, habe nun Ajax deaktiviert, ich hatte es nur aktiviert, weil ich folgenden Hinweis bekam:
Exposed filters in block displays require "Use AJAX" to be set to work correctly.
Hervorgehobenes Formular
Stil des hervorgehobenen Formulars:Eingabe erforderlich | .. sobald das aktiviert ist. Deaktiviere ich Ajax fehlen mir die exposed Filter.
Benutzt du von leaflet die aktuelle dev oder etwas ältere stable Release?
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Achso, ich habe die Domain
am 04.04.2013 - 07:51 Uhr
Achso, ich habe die Domain geändert zu http://onlinecasino-magazin.de - da siehst du es
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Auf der Seite wird auch die
am 04.04.2013 - 11:00 Uhr
Auf der Seite wird auch die Leaflet Library nicht geladen - funktioniert das Ganze denn generell auf deinen Seiten?
Hast du Leaflet selbst korrekt eingerichtet - hier brauchst du auf jeden Fall noch die Javascript Library im sites/all/libraries Verzeichnis.
Am Besten kannst du ganze auch ohne die Filter testen - schau da erstmal, ob er dir den View korrekt lädt.
Im Beispiel nutze ich die Version 7.x-1.0-beta2 des leaflet Moduls.
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Ja, ist alles drin, mit der
am 04.04.2013 - 11:13 Uhr
Ja, ist alles drin, mit der Library ebenfalls, siehe den Node über field. Ich nutze auch die gleiche Beta2 Version von Leaflet wie du.
http://onlinecasino-magazin.de/casino/alexander-sibert
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Also, er lädt die Library nur
am 04.04.2013 - 12:34 Uhr
Also, er lädt die Library nur dann nicht, sobald ich rechts auf Hervorheben aktivieren klicke. In Basis ohne Filter funktioniert es problemlos. Ohne Ajax Aktivierung zeigt er gar nichts an.
Beste Grüße
Alexander Sibert
Internet: http://catopuma.de - Internet-Agentur für Webentwicklung und Internet-Marketing
facebook: https://www.facebook.com/neofelis.1
twitter: https://twitter.com/neofelis_de
Nodes im Umkreis anzeigen
am 23.04.2013 - 17:54 Uhr
Habe ein ähnliches Problem und möchte mich gern hier dran hängen ;o)
Ich benutze, wie Helrunar, OpenLayers und OpenLayers Proximity.
Habe es aber bisher nicht hinbekommen, dass er mir in der Sidebar Einträge in 10 km Umkreis anzeigt.
Ich brauch doch dafür eigentlich nur einen Filter und die Felder mit den long/lat-Daten, oder?
Da der aktuelle Node der Vergleichsnode sein soll, nehm ich als STandort "Get location from a Node".
Hab ich das soweit richtig verstanden?
Gruß
Helge
Ich habe auch das Problem,
am 16.09.2013 - 17:58 Uhr
Ich habe auch das Problem, dass Drupal den Standort des Benutzers anhand dessen GPS-Koordinaten (alternativ IP-Adresse) ermitteln soll und dann in einer View die 10 nächst gelegenen Objekte ausgeben soll. Hat jemand dazu eine Lösung, das z.B über Geofield oder Geolocation hin zu bekommen?
Web: Halle im Bild | n8aktiv
Social: Facebook | Xing