2009-07-24 9 views
5

プログラムでアイコンをベクトルとしてベクターとして描画する具体的な例はありますか?具体的には、与えられた座標に大きさと方位角を持つデータがあり、これらの値に基づいてアイコン(または別のグラフィック要素)を生成したいと考えています。私はそれに近づくかもしれない方法でKMLでベクトル矢印をプログラムで作成する

いくつかの考え:

  1. イメージディレクトリ(ブルートフォース方法):360別の画像ファイルの画像ディレクター(恐らくバッチが単一の画像を回転させる)各ポインティングください対応する方位角で表示する。私は "Excel to KML"のようなものを見ましたが、Webユーティリティではなくプログラム内で使用できるコードを探しています。 問題:Arrowにはマグニチュードコンテキストが含まれていないため、ラベルにする必要があります。私はむしろ矢印を動的に長くしたいと思う。 KMLで

  2. ラインの作成:おそらくmagnituteに比例した線の長さと、座標点を原点とする行を作成する式を作成し、及び方位に応じて角度を付け。その後、矢印の頭を作るために前の行の終わりからさらに2行、おそらく30度程度になるでしょう。 :別の画像アイコンではないため、KMLでの動作を確認できません。また、このアルゴリズムを生成するのがどれほど簡単かもわかりません。

  3. 別の画像生成:はおそらく、ImageMagickのまたは動的に上記と同様の方法での.pngファイルを生成するために同様のものを使用してPHPファイルを作成し、URIを使用して、アイコンにリンク「domain.tldに/imagegen.php?magnitude=magvalue &方位角= azmvalue "。 問題:画像生成のアルゴリズムを実際に作成することには依然として問題があります。

だから、質問は:誰が世代を(単に矢印ではなく)プログラム的なベクトルの解決策を打ち出していますか?

答えて

3

オプション1を使ってこれを(Fortran!で)行いましたが、矢印の画像を1つだけ使用し、KMLのIconStyle要素を使用してサイズと方向を設定しました。

あなたが持っているどのようなフォーマットからでもベクトルを見出し(北から時計回りに0度と360度の間の角度で)に変換し、ベクトルの長さをスケール係数(10進表記の浮動小数点数)に変換することです。また、各ベクトルに固有の名前を付ける必要があります。

<IconStyle id="my-vector-1"> 
    <scale>1.8</scale> 
    <heading>90.0</heading> 
    <Icon> 
     <href>/path/to/arrow.png</href> 
    </Icon> 
</IconStyle> 

、その後にベクトルを配置する。次に、各ベクトルのためのKMLのチャンクを作成し、「私のベクトル-1」1.8の規模および90.0(すなわち東側)の見出しでは、ベクターのために言いますマップはIconStyleを参照:

<Placemark> 
    <styleUrl>#my-vector-1</styleUrl> 
    <Point> 
    <coordinates>-10.5,10.8</coordinates> 
    </Point> 

にすべてのことをラップ:

<kml><Document> ... </Document></kml> 

、あなたはDISでなければなりませんベクトルの束を演奏する。スケールファクタを正しく取得するには実験が必要です(矢印イメージのサイズにもよりますが)が、このアプローチはすばやく多くの異なるイメージを読み込む必要があります。それが助けであれば、私はおそらくこれを行うためにFortranを掘り下げることができます...

+0

カンニングは、見出しを変えることによって回転するベクトルイメージを取得します。助言がありますか? –

関連する問題