2017-12-10 7 views
0

私はOpenLayersを使用するプログラムを持っています。基本的に、ユーザーは3桁の国コードを入力して、その国をマップ上で選択します。したがって、ユーザーが「USA」と入力した場合は、地図上で米国が選択されます。私はOpenLayersを使うのがとても新しいですが、これを行うにはol.interaction.Selectを使う必要があると思います。一般的に OpenLayersに国コードから国を選択させるにはどうすればいいですか?

+0

ポリゴンを選択して表示するには、国コードと国境界座標が必要です。 –

+0

境界、名前、コードのソース:https://github.com/johan/world.geo.json/blob/master/countries.geo.json?short_path=afdfc39 – dube

答えて

0

は、次のものが必要です。

  1. ベクターデータソースは、国に対応し、かつその3桁の国コードでインデックス化。 dubeの答えが1をポイントし、OpenLayersのサイトに同じファイルがあると思われますhere。好都合なことに、これらのファイルは、機能IDとして国コードを使用し、ベクターデータソースのIDで機能をルックアップするのは簡単です。
  2. 少なくとも、上記のソースを含むベクターレイヤーを持つOpenLayersマップ。
  3. オプションで、イメージタイルを含むマップのベースレイヤー。ベクタデータソースを使用して国の境界線を描画する場合は、適切な塗りとアウトラインスタイルで、ソースが国ベクトルであるマップレイヤを使用して、このレイヤーを使用せずに行うこともできます。しかし、国のベクトルデータは非常に粗く、マップタイル(OpenStreetMap、Stamen、Bing、Googleなど)は、特にユーザーがほとんどすべてをズームするときわめて見栄えがよいかもしれません。
  4. ハイライト用のオーバーレイレイヤー。これは、ユーザーが認識可能な国コードを入力したときに、選択された国のフィーチャーオブジェクトを追加したり削除したりするために、強調表示の塗りつぶしとアウトラインスタイル(赤や太字、不透明な塗りつぶしの色など)を持つベクターレイヤーです。

OpenLayers vector-layerには、必要なコードの90%が含まれています。マウスの動きを見る代わりに、ユーザーが国コードを入力するテキストエレメントの変更を監視します。

例としてthis gistを参照してください。

関連する問題