2
A
回答
3
您可以創建自己的折線實現。以下是一個基於現有的MapPolygonImpl
的示例。這是hacky,但似乎沒有辦法在JMapViewer
添加行。
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Path2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.openstreetmap.gui.jmapviewer.Coordinate;
import org.openstreetmap.gui.jmapviewer.JMapViewer;
import org.openstreetmap.gui.jmapviewer.MapPolygonImpl;
import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate;
public class TestMap {
public static class MapPolyLine extends MapPolygonImpl {
public MapPolyLine(List<? extends ICoordinate> points) {
super(null, null, points);
}
@Override
public void paint(Graphics g, List<Point> points) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setColor(getColor());
g2d.setStroke(getStroke());
Path2D path = buildPath(points);
g2d.draw(path);
g2d.dispose();
}
private Path2D buildPath(List<Point> points) {
Path2D path = new Path2D.Double();
if (points != null && points.size() > 0) {
Point firstPoint = points.get(0);
path.moveTo(firstPoint.getX(), firstPoint.getY());
for (Point p : points) {
path.lineTo(p.getX(), p.getY());
}
}
return path;
}
}
private static void createAndShowUI() {
JFrame frame = new JFrame("Demo");
JMapViewer viewer = new JMapViewer();
List<Coordinate> coordinates = new ArrayList<Coordinate>();
coordinates.add(new Coordinate(50, 10));
coordinates.add(new Coordinate(52, 15));
coordinates.add(new Coordinate(55, 15));
MapPolyLine polyLine = new MapPolyLine(coordinates);
viewer.addMapPolygon(polyLine);
frame.add(viewer);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowUI();
}
});
}
}
1
AFAIK JMapViewer擴展了JPanel。
因此,您只需重寫paintComponent並使用給定的Graphics對象。
class MyMap extends JMapViewer {
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.drawPolyline(...);
}
}
相關問題
- 1. 在HTML5中繪製折線
- 2. 繪製折線
- 3. 在PictureBox上繪製折線
- 4. 如何在android中繪製折線圖
- 5. 在Google地圖中繪製折線
- 6. 如何在ASP.NET中繪製折線圖
- 7. 使用c在DrawingContext中繪製折線#
- 8. 在MPAndroidChart中隱藏繪製折線圖
- 9. 在ggplot2中繪製折線圖
- 10. 在折線中繪製反應 - Android,osmdroid
- 11. 在matplotlib中繪製折線圖
- 12. Angularjs Openlayer繪製折線
- 13. 繪製折線圖彎曲
- 14. 用mpandroid繪製折線圖
- 15. Android繪製折線圖V2
- 16. 在kendo UI中如何在折線圖中繪製垂直線
- 17. 如何繪製R中的折線圖?
- 18. 折線未繪製在地圖上
- 19. 在道路上繪製折線android
- 20. 用多條線繪製折線圖
- 21. 繪製折線結果像素線
- 22. 在Google折線圖中繪製一條基線
- 23. gnuplot - 繪製堆積折線圖
- 24. Google MAP URL繪製折線的參數
- 25. 繪製四個象限的折線圖
- 26. 動態繪製多條折線圖
- 27. 如何使用matplotlib繪製折線圖
- 28. 繪製折線圖使用chart.js之
- 29. 繪製逐漸淡出的折線
- 30. 繪製折線圖與圖表
您可能能夠使用所示[這裏]的方法(http://stackoverflow.com/q/10744798/230513)。 – trashgod