Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Ok I did the same to see if it works if you replace <code>region.getGpxTrack()</code> with <code>region</code> as I assume in comment. Yes it works. Here is full worked application with that what you are trying to do:</p> <pre><code>import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import org.jdesktop.swingx.JXMapKit; import org.jdesktop.swingx.JXMapKit.DefaultProviders; import org.jdesktop.swingx.JXMapViewer; import org.jdesktop.swingx.mapviewer.GeoPosition; import org.jdesktop.swingx.painter.Painter; public class Starter { public static void main(final String[] args) { final JFrame f = new JFrame(); f.setSize(500, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JXMapKit jXMapKit1 = new JXMapKit(); jXMapKit1.setDefaultProvider(DefaultProviders.OpenStreetMaps); jXMapKit1.setCenterPosition(new GeoPosition(5.41984, 100.33924)); jXMapKit1.setZoom(3); final List&lt;GeoPosition&gt; region = new ArrayList&lt;GeoPosition&gt;(); region.add(new GeoPosition(5.42031, 100.34389)); region.add(new GeoPosition(5.41984, 100.33924)); region.add(new GeoPosition(5.42300, 100.33456)); final Painter&lt;JXMapViewer&gt; lineOverlay = new Painter&lt;JXMapViewer&gt;() { @Override public void paint(Graphics2D g, final JXMapViewer map, final int w, final int h) { g = (Graphics2D) g.create(); // convert from viewport to world bitmap final Rectangle rect = jXMapKit1.getMainMap().getViewportBounds(); g.translate(-rect.x, -rect.y); // do the drawing g.setColor(Color.RED); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setStroke(new BasicStroke(2)); int lastX = -1; int lastY = -1; for (final GeoPosition gp : region) { // convert geo to world bitmap pixel final Point2D pt = jXMapKit1.getMainMap().getTileFactory().geoToPixel(gp, jXMapKit1.getMainMap().getZoom()); if (lastX != -1 &amp;&amp; lastY != -1) { g.drawLine(lastX, lastY, (int) pt.getX(), (int) pt.getY()); } lastX = (int) pt.getX(); lastY = (int) pt.getY(); } g.dispose(); } }; jXMapKit1.getMainMap().setOverlayPainter(lineOverlay); f.setContentPane(jXMapKit1); f.setVisible(true); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload