GMap - felhasználónkénti körzetek megjelenítése

scorchio képe

Sziasztok,

szeretnék egy olyan GMaps-et megoldani, amiben nem a felhasználók pontos helye látszódna, hanem egy kilométerben megadható körzet a megadott cím körül. Fontos lenne, hogy ez a körzetméret felhasználónként más és más lehessen.

Azt persze meg tudtam oldani, hogy egy külön tartalomtípusban adott felhasználóra hivatkozva el tudjam tárolni a körzet méretét (egy ilyen tartalomtípusra, ha jól sejtem, más célok miatt is szükségem lesz...) Már csak azt kéne megoldani, hogy egy GMaps-es térkép valahogy használja is ezt az információt. Van valami ötletetek erre?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Paal képe

Csak úgy hangosan elmélkedve...
Views-zal tudsz térkép nézetet készíteni, amiben az általad megadott körzet mérete lenne a szűrő feltétel.
A legutóbbi Drupal hétvégén aboros kollégának volt hasonló előadása, érdemes azt megnézni:

Hogy távolságot hogyan számol, azt nem tudom, ez minden talán GoogleMaps API segítségével való programozással lehet megoldani.

u.i.: Sajnos állandóan leesett a 3G-s net sebessége, ami miatt többször megszakadt a felvétel... :(

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

scorchio képe

Köszönöm szépen a választ és a videókat, végignéztem az előadást.

A legnagyobb baj az az egésszel, hogy én az összes pontot egyfajta "lefedettségi" térképként szeretném megjeleníteni, szóval nem sok értelme lenne körzet mérete szerint szűrni :\

0
0

Adamek Zoltán aka Scorchio | http://zoltanadamek.com

aboros képe

story tartalom típusomnak adtam egy sugár mezőt, integer. neve: field_radius. van egy gmap térképem ami ezeket a story nodeokat jeleníti meg. mezőként benne van a sugár is.
ezután már csak egy elegáns előfeldolgozóval hozzáadunk shapeket a megadott sugárral a térképhez, kb így:
(az én sminkemet playground -nak hívják)
template.php:

function playground_preprocess_gmap_view_gmap(&$vars) {
  #dsm($vars);
  $map_object = $vars['map_object'];
  $map_object['id'] = 'radiustest';
  foreach ($vars['view']->result as $key => $row) {
    $shapes[$key]['type'] = 'circle'; // type of shape
    $shapes[$key]['radius'] = $row->node_data_field_location_cck_field_radius_value;
    $shapes[$key]['center'][0] = $row->location_node_data_field_location_cck_latitude;
    $shapes[$key]['center'][1]= $row->location_node_data_field_location_cck_longitude;
  }
  $map_object['shapes'] = $shapes;
  $vars['map'] = theme('gmap', array('#settings' => $map_object));
}

ez alapján már mennie kell. ez az előfeldolgozó ugye minden gmap viewnal le fog futni, figyelned kell a varsban hogy az a nézet dolgozódik e fel, amibe bele akarsz szólni. az elején van egy kikommentezett dsm($vars), ha van devel modulod és nem kommentezed ki ezt a sort, láthatsz minden változót ami itt elérhető.
0
0

-
clear: both;

scorchio képe

Nagyon tetszik ez a megoldás. Teljesen jól rá tudtam illeszteni az eddigiekre, nagyon szépen köszönöm! :)

0
0

Adamek Zoltán aka Scorchio | http://zoltanadamek.com