X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fnodes%2FNetworkDrawingNode.java;h=13bd2cbe9426a536e9ce3b8030a0a4b0ca1b5158;hb=refs%2Fchanges%2F69%2F469%2F1;hp=147442343c13b6b7c3dfa42ab04694757aa4f834;hpb=b10b919b6756df3b423dd416df6b1b06abc15f22;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/NetworkDrawingNode.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/NetworkDrawingNode.java index 14744234..13bd2cbe 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/NetworkDrawingNode.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/NetworkDrawingNode.java @@ -17,6 +17,7 @@ import org.simantics.db.WriteGraph; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.diagram.ui.DiagramModelHints; +import org.simantics.district.network.ModelledCRS; import org.simantics.district.network.ui.DNEdgeBuilder; import org.simantics.district.network.ui.NetworkDrawingParticipant; import org.simantics.g2d.canvas.Hints; @@ -150,20 +151,34 @@ public class NetworkDrawingNode extends G2DNode { } return super.mouseDoubleClicked(e); } - + private void createEdge(Point2D start, Point2D end) { double padding = GeometryUtils.getScale(getTransform()); - double[] startCoords = new double[] { start.getX(), start.getY() }; - double[] endCoords = new double[] { end.getX(), end.getY() }; + /* + * To convert y-coordinates to map coordinates in ruler, use: + * double val = (y-offsetY)/scaleY; + * val = Math.toDegrees(Math.atan(Math.sinh(Math.toRadians(val)))); + * String str = formatValue(val); + */ + // TODO: fix scale + double scale = 100000; + double startLat = ModelledCRS.yToLatitude(start.getY() / scale); + double startLon = ModelledCRS.xToLongitude(start.getX() / scale); + + double endLat = ModelledCRS.yToLatitude(end.getY() / scale); + double endLon = ModelledCRS.xToLongitude(end.getX() / scale); + + double[] startCoords = new double[] { startLon, startLat }; + double[] endCoords = new double[] { endLon, endLat }; DNEdgeBuilder builder = new DNEdgeBuilder(diagramResource, diagram); Simantics.getSession().asyncRequest(new WriteRequest() { @Override public void perform(WriteGraph graph) throws DatabaseException { - builder.create(graph, startCoords, endCoords, padding); + builder.create(graph, startCoords, endCoords, padding / scale); } });