1

について 2 つの質問がありJMapViewerます。

  • マップに追加MapDotMarkersした後、各ドットを要約リストと結び付けたいと思います (特定Pannelのテキストには、おそらくドットに関する説明が書かれています)。どうやってやるの?

  • mapを画面に表示するには、どの方法を使用すればよいですか?

4

2 に答える 2

1

残念ながら、要約リストをマップに追加する簡単な方法はありませんが、次の方法があります。

要約リストを追加するソリューション全体は、カスタム MapMarker の作成に基づいています。たとえば、現在の MapMarker クラスを拡張する「SummaryMapMarker」という名前の新しいクラスを追加する必要があります。JMapViewer ソース コード (JMapViewer オープン ソースからダウンロード) に付属している既存の MapMarkerCircle.java を確認してください。MapMarkerCircle のコピーを作成し、名前を MapMarkerSummary.java などに変更して、必要に応じて変更します。次に、有名なペイント メソッドを使用して地図上に要約を出力できます。つまり、Graphics g を使用して、g.drawLine、g.drawString、g.drawRect などを使用して、線、円、四角形、テキスト、画像を描画します。任意のカスタム サマリーを作成できます (本当に何でも!)。簡単に言えば、全体的なアイデアは、画面のピクセル (x、y) 座標に基づいて、画面上で好きなように描画できるようにすることです。以下、参考までに貼り付けておきます。十分でない場合に備えて、さらに詳細が必要な場合はお知らせください。私は自分で派手な要約を作成し、それをマップ ビューアーに追加することができました。クラス MapMarkerSummary が完了したら、DotMap マーカーを追加するように、メイン クラス内のメイン パネルに追加できます (例: map().addMapMarker(new MapMarkerSummary...) )。

public class MapMarkerSummary extends MapObjectImpl implement MapMarker {

public void paint(Graphics g, Point position, int radio) {
    // ...
    int size_h = radio;
    int size = 64;
    g.setColor(Color.blue);

    g.draw3DRect(position.x - 5, position.y - 5, 400, 120, true);
    g.drawString("20°C", position.x + size - 10, position.y + 25);
    g.drawString("30°C", position.x + size - 10, position.y + 37);
    g.setColor(Color.gray);
    g.drawLine(position.x + size + 18, position.y - 4, position.x + size + 18 ,        position.y + 112);
}
// ...

}

于 2013-11-22T05:24:27.330 に答える
0

ダウンロードしたソース ファイル Demo.java とライブラリ JMapViewer を確認してください。これには、質問に対する回答が含まれています。いくつかの単純な行で簡単にマップを表示したり、ドットを作成したり、ツールチップを追加したりできます。上記のソース ファイルを確認し、さらにサポートが必要な場合はお知らせください。このファイル (Demo.java) はありますか?

于 2013-11-09T23:47:44.077 に答える