について 2 つの質問がありJMapViewer
ます。
マップに追加
MapDotMarkers
した後、各ドットを要約リストと結び付けたいと思います (特定Pannel
のテキストには、おそらくドットに関する説明が書かれています)。どうやってやるの?map
を画面に表示するには、どの方法を使用すればよいですか?
について 2 つの質問がありJMapViewer
ます。
マップに追加MapDotMarkers
した後、各ドットを要約リストと結び付けたいと思います (特定Pannel
のテキストには、おそらくドットに関する説明が書かれています)。どうやってやるの?
map
を画面に表示するには、どの方法を使用すればよいですか?
残念ながら、要約リストをマップに追加する簡単な方法はありませんが、次の方法があります。
要約リストを追加するソリューション全体は、カスタム 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);
}
// ...
}
ダウンロードしたソース ファイル Demo.java とライブラリ JMapViewer を確認してください。これには、質問に対する回答が含まれています。いくつかの単純な行で簡単にマップを表示したり、ドットを作成したり、ツールチップを追加したりできます。上記のソース ファイルを確認し、さらにサポートが必要な場合はお知らせください。このファイル (Demo.java) はありますか?