Hi, Here is a demo script which finds route from the service or yournavigation.org. Save the following code into lib\ext\BeanTools, draw one or more lines with OpenJUMP by using EPSG:4326 system, run the tool and copy the URLs from the result window into browser and you will get the routes in KML format. Script creates a request which follows the YOURS syntax http://wiki.openstreetmap.org/wiki/YOURS and it is simple to modify to use other YOURS parameters. I also made another version which is getting routes from the service of the Helsinki Region Traffic and it works fine too.
With a little bit of work it should be possible to make an OpenJUMP routing service plugin. Creating a request is easy but a very good plugin should be able to handle coordinate conversions between OJ project coordinate system and the one used by the routing service. And then OpenJUMP should be able to parse the returning route which is typically in GPX or KML format. However, I tested also a workaround by using GDAL in between. OpenJUMP can create a ogr2ogr request and ogr2ogr can save the result as a shapefile and possibly converted into another projection. Get_YOURS_Route.bsh ============== { import com.vividsolutions.jts.geom.*; import com.vividsolutions.jump.feature.*; import com.vividsolutions.jump.geom.EnvelopeUtil; import com.vividsolutions.jump.workbench.model.*; htmlFrame = wc.workbench.frame.outputFrame; htmlFrame.createNewDocument(); htmlFrame.setTitle("Output for gdal_translate"); fc = wc.getLayerNamePanel().getSelectedLayers()[0].getFeatureCollectionWrapper(); int j=1; for (Iterator i = fc.getFeatures().iterator(); i.hasNext();) { Feature feature = (Feature) i.next(); LineString lineString = (LineString)feature.getGeometry(); htmlFrame.addText("http://www.yournavigation.org/api/1.0/gosmore.php?format=kml&flat=" +lineString.getStartPoint().getY()+"&flon=" +lineString.getStartPoint().getX()+"&tlat=" +lineString.getEndPoint().getY()+"&tlon=" +lineString.getEndPoint().getX() +"&v=motorcar" +"&fast=1" +"&layer=mapnik"); j++; } wc.workbench.frame.flash(htmlFrame); htmlFrame.surface(); } With small modifications the script works with the routing service of the Helsinki Region Traffic. Coordinates must be in EPSG:2392 system. Can be tested for example with LINESTRING (2538008.7818696885 6679830.130311615, 2538096.0339943343 6679899.818696884) htmlFrame.addText("\"http://pk.hsl.fi/getroute/?format=gpx&profile=kleroweighted&from=location*Koordinaatti[" +lineString.getStartPoint().getX()+", " +lineString.getStartPoint().getY()+"]" +"*"+lineString.getStartPoint().getX() +"*"+lineString.getStartPoint().getY() +"&to=location*Koordinaatti[" +lineString.getEndPoint().getX()+", " +lineString.getEndPoint().getY()+"]" +"*"+lineString.getEndPoint().getX() +"*"+lineString.getEndPoint().getY() +"\"" ); -Jukka- ________________________________________ Michaël Michaud wrote: > Hi Jukka, > You can easily pick start and end point with > Geometry geometry = feature.getGeometry(); // this will return something whatever the geometry is Coordinate[] cc = geometry.getCoordinates(); x_start = cc[0].x; y_start = cc[0].y; x_end = cc[cc.length-1].x; y_end = cc[cc.length-1].y; // this is more readable if you make sure your geometry is a linestring before LineString lineString = (LineString)feature.getGeometry(); x_start = lineString.getStartPoint().getX(); y_start = lineString.getStartPoint().getY(); x_end = lineString.getEndPoint().getX(); y_end = lineString.getEndPoint().getX(); > Warning : I did not check the code > Michaël > PS let us know what you achieved with this code >> Hi, >> >> How could I pick Startpoint_X, Startpoint_Y, Endpoint_X,Endpoint_Y from a >> linestring with BeanShell? Meaning is to build a http request for an >> external routing service. Something similar is done in the following code >> with envelope of a geometry for building a WFS GetFeature request with BBOX >> filter. >> >> Geometry geometry = feature.getGeometry(); >> Envelope env = geometry.getEnvelopeInternal(); >> htmlFrame.addText("wget " >> +"\"http://hip.latuviitta.org/cgi-bin/" >> +"tinyows?" >> +"SERVICE=WFS" >> +"&VERSION=1.0.0" >> +"&REQUEST=GetFeature" >> +"&TYPENAME=lv:municipalities" >> +"&BBOX=" >> +env.getMinX()+"," >> +env.getMinY()+"," >> +env.getMaxX()+"," >> +env.getMaxY()+"\"" >> +" -O prexif_" >> +j >> +".gml" ); >> >> -Jukka Rahkonen- > > ------------------------------------------------------------------------------ > Own the Future-Intel® Level Up Game Demo Contest 2013 > Rise to greatness in Intel's independent game demo contest. > Compete for recognition, cash, and the chance to get your game > on Steam. $5K grand prize plus 10 genre and skill prizes. > Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel ------------------------------------------------------------------------------ Own the Future-Intel® Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel