サイトを静的/カスタム JSP サイトから Drupal (現時点では 6.2.8) に変換中です。昨年、ダイナミック マップができました (こちらをご覧ください: http://archive.summer.harvard.edu/help/directions.jsp ) 。
重要な動作は、1 つのドロップダウンから何かを選択すると、別のドロップダウン自体がフィルタリングされて「正当な」値が表示され、すぐにマップが更新されて選択された建物が表示されるというものでした。方向性はプラスでしたが、Drupal バージョンでは予定されていません。
私のデータ/ビューは次のように構成されています: 建物の名前、タイプ、緯度/経度、および位置データを含む建物のコンテンツ タイプがあります。2 つの openlayers ビューがあります。1 つはマップ データ用で、nid を引数として受け取り、建物のノードに対してフィルター処理を行い、タイプと名前のフィルターを公開します。もう 1 つは、「ブロック内の公開フィルター」を使用するように設定され、nid を引数として受け入れるマップ ビュー自体です。
私は OpenLayers とビューを使用してかなり近づくことができましたが、途中でいくつかの障害を見つけました。具体的には、タイプと建物のドロップダウンに公開フィルターを使用する場合、マップを更新するには、フォームを送信してページをリロードする必要があります。
Drupal への移行時に、古いマップからの ajaxy 動作を維持できることを本当に望んでいました。だから私はいくつかのオプションを考えましたが、どれもまだうまく機能していません:
マップ ビュー自体が nid 引数を取るため、フィルターはまったく必要ないかもしれません。select 入力だけを持つ別のビューを作成し、それぞれに nid をマップに送信する何らかの onselect があるとしたらどうでしょうか? (たとえば、ビューをjsonデータソースとして使用して、jquery UIオートコンプリートでそれらを構築できます)
パネルを使用してビュー間で引数を渡す何らかの方法があるのではないでしょうか? (しかし、ページをリロードせずに動的に行うことはできますか?)
これはすべて間違っているのでしょうか。マップ クライアント側のカスタム コーディングに戻る必要がありますか?