シンプルなGoogleマップソリューションが必要です。モジュールの迷路で失われた


15

まず、Drupalのどのバージョン(6または7)を使用する必要があるかは気にしないとだけ言っておきます。私は両方のバージョンの経験があり、今までGoogleマップで作業する必要はありませんでした。要件は非常に基本的です(私が理解していることから):

1)マップに追加するすべての会社のノードを用意します

2)ノード編集フォームで、アドレスを追加し、カスタムのGoogleマップに追加します(または、Googleマップの場所のリンクをコピーアンドペーストします)。

3)特定の場所に最も近い会社を見つけるための検索機能がある

そこにはたくさんの異なるモジュールがありますが、15以上の異なるモジュールを調べるのではなく、正しい方向を指し示すだけで、最終的に自分用にカスタムモジュールを作成する必要があることに気付きます。

前もって感謝します。

回答:


36

OpenLayersを使用してこれを実装するDrupal機能を作成しました(http://drupal.org/project/ol_locatorを参照)か、次のウォークスルーを使用して独自の設定を行うことができます。

  1. 次のモジュールをダウンロードして有効にします。

  2. サブモジュールを有効にします。

    • ジオフィールドマップ7.x-1.0-alpha5
    • ビューUI 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayersビュー7.x-2.0-alpha2
  3. admin/structure/types/addLocation」という新しいコンテンツタイプに移動して作成します

  4. admin/structure/types/manage/location/fields次のフィールドに移動して追加します。

    • ラベル:住所>フィールド名:住所>フィールドタイプ:郵便住所>ウィジェット:動的住所フォーム
  5. リストから希望する利用可能な国を選択します。それらをすべて許可するには、空白のままにします。

  6. 「住所フォーム(国固有)」をオフにします

    • 注:国とそれに関連するフィールドは、Addressfieldモジュールによって処理されます。国が表示されない場合、または適切なフィールドがない場合は、そのモジュールhttp://drupal.org/project/addressfieldに問題を提出する必要があります(あなたの問題に関するキューに問題があるかどうかを確認します投稿する前に最初に国がありません)
  7. ラベル:ジオフィールド>フィールド名:ジオフィールド>フィールドタイプ:ジオフィールド>ウィジェット:別のフィールドのジオコード

  8. Geofield admin/structure/types/manage/ol_locator_location/displayDefault表示に移動して変更します。

    • ラベル:非表示>形式:OpenLayers
  9. 歯車のアイコンをクリックして、次を選択します。

    • OpenLayersプリセット:Geofield Formater Map>データオプション:完全なジオメトリを使用
  10. admin/structure/openlayers/layers/settings次に移動して設定します。

    • Google Maps APIバージョン:v3.2
  11. テスト場所を作成して、ジオコーディングが機能しているかどうかをテストしてみましょう

    • テストコンテンツタイプを作成するときは、十分に確立されたアドレスを使用していることを確認してください。Googleがあなたの住所を知らない場合、新しいサイトも知りません。
  12. admin/structure/views/add次の情報を含む新しいビューに移動して作成します

    • ビュー名:近接検索>説明:ユーザーが近接検索を行えるように、ダイナミックマップ上にジオコーディングされた場所を表示します。>表示:タイプのコンテンツ:並べ替え場所:未分類>続行して編集
  13. 以下のフィールドを追加し、注記がある場合を除き、デフォルト値を保持します。

    1. コンテンツ:タイトル >チェックオフラベルの作成:「タイトル」
    2. 内容:住所(住所)
    3. コンテンツ:ジオフィールド(ジオフィールド)>表示から除外
    4. 近接:距離(距離)
  14. 次のフィルター基準を既存に追加します。

    • コンテンツ:公開(はい)および
    • 内容:タイプ(=場所)
    • 近接:大円(露出)>このフィルターを訪問者に公開し、変更できるようにします>ラベル:近接>値フィールドに「10」を追加>測定単位のロック解除>ロケーションのロック解除
  15. ヘッダー >グローバル:テキスト領域>ビューに結果がない場合でも表示

    • 「あなたの近くの場所を見つけてください。あなたの都市、州/州または郵便番号を使用して検索できます。」
  16. 結果なしの動作 >グローバル:テキスト領域および次を追加:

    • 「申し訳ございませんが結果が見つかりませんでした。
      1)あなたの郵便/郵便番号の精度を確認してください
      )2.あなたの街、都道府県のスペルチェック
      近接距離を増やす)3.」
  17. 送信ボタンのテキスト:検索

  18. 新しいディスプレイを追加:「OpenLayers Data Overlay

  19. 書式

    • [設定]> [このオープンレイヤーを適用(オーバーライド)]> [データソースのマップ:WKT]> [WKTフィールド:Geofield]> [説明フィールド]>> [適用](この表示)
  20. ビューを保存する

  21. に行く admin/structure/openlayers/maps

  22. デフォルトのマップを複製する

  23. 一般情報>名前:location_map タイトル:ロケーションマップ>マップの説明:これはデフォルトのロケーションマップです。

  24. レイヤーとスタイル>オーバーレイレイヤー(作成したばかりのビューを選択)場所 "有効" "アクティブ化" Geofield Formatterのプレースホルダーについても同じ操作を行います

  25. 動作>ポップアップ(戻ってきて、後で「ポップアップを適用するレイヤーを選択」する必要があります)>レイヤーにズーム「マップがロードされたときにズームするレイヤーを選択」 >ポイントズームレベル:20 ****

  26. 地図を保存する

  27. 作成したばかりのビューに戻ります

    • admin/structure/views/view/proximity_search/edit
  28. ディスプレイを追加 「ページ」を

    • 道: /locator
    • 形式:OpenLayersマップ>適用(この表示)>マップ:ロケーションマップ(OpenLayersで作成したばかりのマップ)>適用
  29. ビューを保存します(ビューの下部にあるプレビューペインに、テストコンテンツとともにマップが表示されるはずです。

  30. ディスプレイの追加:「添付ファイル」

    • 形式:表>適用(この画面)
    • 添付先:ページ
    • 露出フィルターを継承:はい
    • ヘッダーを削除>グローバル:テキスト領域>適用(この表示)
    • 表示するアイテム:指定した数のアイテムを表示します| 5アイテム
    • ページャーを継承:はい
    • ポケットベルのレンダリング:はい
  31. ビューを保存

  32. Behaviors> Pop Up> Layers> proximity_search_openlayers_1(Openlayersマップで作成したビュー)

  33. [レイヤーにズーム]>マップの読み込み時に特定のレイヤーの範囲にズームします。>proximity_search_openlayers_1

  34. に戻るadmin/structure/types/manage/location/display>歯車アイコンをクリックし、「レイヤーを開く」プリセットを作成したロケーションマップに変更する>更新>保存

出来上がり!完了


1
あなたは私があなたに恵みと自動報酬、それを配置するように詳述されている答え:D私は今の手順を試してみて、あなたはそれが働いた方法を知ってもらおう
F1234k

それは単に答えではなく、チュートリアルです:)
Codium

+1。ただしol_locator、モジュールの新しいバージョンでは機能がバグになる可能性があり、バージョン番号の制限がないことに注意することが重要です。(残念ながら)それを経験しました。しかし、あなたの答えは本当にきちんと詳細です。
Sk8erPeter

モジュールにバグがある場合は、モジュールの発行キューに、動作していないもの(詳細)を記載してください。問題を修正するのに問題はありませんが、それらについて知る必要があります。:)

OpenLayers Locatorをテストしたところ、宣伝どおりに非常にうまく機能しています。ありがとう@nicoz。
ナイジェルウォーターズ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.