web-dev-qa-db-ja.com

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

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

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

2)ノード編集フォームで、アドレスを追加し、それをカスタムGoogleマップに追加したい(またはGoogleマップの場所のリンクをコピーして貼り付けたい)

3)検索機能を使用して、特定の場所に最も近い会社を見つける

そこにはさまざまなモジュールがたくさんあります。自分でカスタムモジュールを作成する必要があることを最後に理解するためだけに、 15+異なるモジュール ではなく、正しい方向を示したいと思います。 。

前もって感謝します。

15
F1234k

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

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

  2. サブモジュールを有効にする:

    • Geofield Map 7.x-1.0-alpha5
    • Views UI 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayersビュー7.x-2.0-alpha2
  3. admin/structure/types/addに移動し、「Location」という新しいコンテンツタイプを作成します

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

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

  6. 「住所フォーム(国別)」をチェックしてください

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

  8. admin/structure/types/manage/ol_locator_location/displayに移動し、GeofieldのDefault表示を変更します。

    • レーベル:Hidden>フォーマット:OpenLayers
  9. 歯車アイコンをクリックして、以下を選択します。

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

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

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

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

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

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

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

    • "申し訳ありませんが、結果は見つかりませんでした。
      1。)郵便番号の正確さを確認してください
      2。)市、州、または州のスペルをチェックします
      3。)近接距離を増やします]
  17. Submit button text:検索

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

  19. フォーマット

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

  21. admin/structure/openlayers/mapsに移動

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

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

  24. レイヤーとスタイル>オーバーレイレイヤー(先ほど作成したビューを選択)場所「有効」「アクティブ」ジオフィールドフォーマッターのプレースホルダーについても同じ

  25. Behaviors> Pop Up(戻って来なければなりません"ポップアップを適用するレイヤーを選択してください。"後で)>レイヤーにズーム"マップが読み込まれたときにズームするレイヤーを選択" =>ポイントズームレベル:20****

  26. 地図を保存

  27. 先ほど作成したビューに戻ります

    • admin/structure/views/view/proximity_search/edit
  28. 表示を追加"ページ"

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

  30. ディスプレイを追加:"attachment"

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

  32. Behaviors> Pop Up> Layers>プロキシミティサーチオープンレイヤー1

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

  34. admin/structure/types/manage/location/displayに戻り、歯車アイコンをクリックしてOpen Layers Presetを先ほど作成したLocation Mapに変更します> Update> Save

出来上がり!できた

36
user842

simple google maps モジュールを使用します。とてもシンプルで使いやすいです。

2
Niks