web-dev-qa-db-ja.com

ユーザー近接検索?

D7を実行しています。私は、a)ユーザーがアカウントを登録するときに場所(Zip、住所、都市、州など)でユーザーにタグを付ける方法、およびb)訪問者が(Zipを介して)場所を入力する検索を設定する方法を理解しようとしています、住所など)。検索で入力された場所への近さでソートされたすべての登録ユーザーのリストを返します。パートb)への回答はより複雑に見えるので、もっと興味がありますが、この時点での正直な助言は非常にありがたいです。私は今、数週間行き詰まっています。

ありがとう、エドワードサップ

4
Edward Sapp

D7でロケーションを行うには、2つの基本的なアプローチがあります。

Do It With Drupal 2011 でのKaren Stevensonのプレゼンテーションによると、現在、location/gmapのみがD7で位置近接検索を実行していますが、あまりうまくいきません。

このプレゼンテーションと本Mapping with Drupalに基づいて、ロケーションモジュールを使用して自分のサイトに近接検索を設定しました。それは機能しますが、ひどくユーザーフレンドリーではありません、それはテーマに苦労します、そしてそれはまだ明らかに開発中です。しかし、それは私が自分でロールすることに到達することができたであろうよりもはるかに良い解決策です。

3
Patrick Kenny

Drupal.orgで以下のgeoモジュールの組み合わせを使用して、D7のユーザー近接検索をセットアップできました。

オープンレイヤー

アドレスフィールド

ジオフィールド

ジオコーダー

最後のものはgithubにあります...(drupal.orgの既存のモジュールはまだユーザーをカバーしていません)。

https://github.com/FeyP/proximity

このコンボとビューを使用すると、ユーザーの近接検索の設定が比較的簡単になります。

これを機能させるには、ユーザープロファイルに住所フィールドと地理フィールドを追加する必要があります。 geofieldを "Geocode from another field"に設定すると、住所フィールドからの正しい位置情報が自動的に保存されます。次に、ユーザービューで、githubモジュールが提供する近接フィルターを使用して、住所、郵便番号などの近接をフィルタリングできます。特定の距離内。

通常のノード近接検索の優れたビューの例を備えた機能モジュールもあります。このモジュールは、proximityモジュールを除いて、上記と同じモジュールレシピを使用しますが、githubコードは元のモジュールから分岐し、ユーザーの場所のエンティティサポートを追加するだけなので機能します。

http://drupal.org/project/ol_locator

1
Gregg Gavitt

私はあなたの近接検索(b)を支援するかもしれないこのウェブサイトを見つけました。 GMAPをOpenLayersに置き換えても、近接検索を機能させることができました。 http://torontowebsitedeveloper.com/drupal-video-tutorials/creating-drupal-7-proximity-search

1
Suzanne

考えられる解決策の1つは http://drupal.org/project/location だと思います。このようなデータを格納できるようにするlocation_userモジュールがあります。

このモジュールの非常に優れている点は、ユーザー入力(郵便番号、州、国など)に基づいて地理位置情報もサポートしていることです。ジオロケーション用の2つのバックエンドがあります(Zipデータベースが必要です。詳細は http://drupal.org/node/103801 を参照)またはgoogle maps api。

適切に地理的に配置されたユーザーを使用して、並べ替え基準として近接性を使用してビューを作成できます(ロケーションモジュールにはビューの統合があります)。

私はD6でそのような解決策を試してみましたが、それは私にとってはうまくいきました。その場所にはD7開発バージョンがあるので、D7でも実行できるはずです。

1
harijari