public void reproject( Coordinate coordinate, final CoordinateSystem source, final CoordinateSystem destiny) { try { Coordinate coordinateSource = new Coordinate(); Coordinate coordinateTarget = new Coordinate(); if (source.getName().startsWith("Geographics")) { coordinateSource.x = coordinate.y; coordinateSource.y = coordinate.x; } else { coordinateSource.x = coordinate.x; coordinateSource.y = coordinate.y; } CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:" + source.getEPSGCode()); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:" + destiny.getEPSGCode()); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); JTS.transform(coordinateSource, coordinateTarget, transform); if (destiny.getName().startsWith("Geographics")) { coordinate.x = coordinateTarget.y; coordinate.y = coordinateTarget.x; } else { coordinate.x = coordinateTarget.x; coordinate.y = coordinateTarget.y; } } catch (NoSuchAuthorityCodeException e) { e.printStackTrace(); } catch (FactoryException e) { e.printStackTrace(); } catch (VerifyError e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
public void reproject( Coordinate coordinate, final CoordinateSystem source, final CoordinateSystem destiny) { try { // CRSAuthorityFactory crsFactory = FactoryFinder.getCRSAuthorityFactory("EPSG", null); CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:" + source.getEPSGCode()); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:" + destiny.getEPSGCode()); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); GeometryFactory h = AppContext.getApplicationContext().getGeometryFactory(); h = new GeometryFactory(h.getPrecisionModel(), destiny.getEPSGCode()); Coordinate coordinateFinal = coordinate; JTS.transform(coordinate, coordinateFinal, transform); } catch (NoSuchAuthorityCodeException e) { JOptionPane.showMessageDialog(null, e.getMessage()); } catch (FactoryException e) { JOptionPane.showMessageDialog(null, e.getMessage()); } catch (VerifyError e) { JOptionPane.showMessageDialog(null, e.getMessage()); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); } }
private static void addSourceToRoute(Point p, boolean b) { // TODO Auto-generated method stub String[] redes = configProperties.getRedesNames(); GeometryFactory fact = new GeometryFactory(); try { if (redes != null) { NetworkManager networkMgr = NetworkModuleUtilWorkbench.getNetworkManager(context); CoordinateSystem coordSys = context.getLayerManager().getCoordinateSystem(); if (coordSys != null) { p.setSRID(coordSys.getEPSGCode()); } CoordinateReferenceSystem crs = CRS.decode("EPSG:" + coordSys.getEPSGCode()); org.opengis.geometry.primitive.Point primitivePoint = GeographicNodeUtil.createISOPoint(p, crs); ExternalInfoRouteLN externalInfoRouteLN = new ExternalInfoRouteLN(); ArrayList<VirtualNodeInfo> virtualNodesInfo = new ArrayList<VirtualNodeInfo>(); for (int i = 0; i < redes.length; i++) { configuatorNetworks.put( redes[i], ((LocalGISNetworkManager) networkMgr).getAllNetworks().get(redes[i])); VirtualNodeInfo nodeInfo = null; try { nodeInfo = externalInfoRouteLN.getVirtualNodeInfo( new GeopistaRouteConnectionFactoryImpl(), primitivePoint, networkMgr, redes[i], 100); } catch (Exception e) { e.printStackTrace(); } if (nodeInfo != null) { virtualNodesInfo.add(nodeInfo); } } if (virtualNodesInfo.size() == 0) return; Iterator<VirtualNodeInfo> it = virtualNodesInfo.iterator(); double lastDistante = -1; VirtualNodeInfo selectedNodeInfo = null; while (it.hasNext()) { VirtualNodeInfo vNodeinfo = it.next(); if (lastDistante == -1 || lastDistante > vNodeinfo.getDistance()) { selectedNodeInfo = vNodeinfo; lastDistante = vNodeinfo.getDistance(); } } // // ((LocalGISNetworkManager)networkMgr).addNewVirtualNode(networkMgr.getNetwork(selectedNodeInfo.getNetworkName()).getGraph() // , selectedNodeInfo.getEdge() // , selectedNodeInfo.getRatio() // , this); nodesInfo.put(selectedNodeInfo.hashCode(), selectedNodeInfo); // Coordinate coord = selectedNodeInfo.getLinestringVtoB().getCoordinateN(0); Point geom_nodes = fact.createPoint(coord); Feature feature = new BasicFeature(nodesFeatureCol.getFeatureSchema()); feature.setGeometry(geom_nodes); // feature.setAttribute("nodeId", new Integer(node.getID())); feature.setAttribute("nodeId", selectedNodeInfo.hashCode()); sourcePointLayer.getFeatureCollectionWrapper().add(feature); } else { } } catch (NoSuchAuthorityCodeException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FactoryException e) { // TODO Auto-generated catch block e.printStackTrace(); } }