Ignore:
Timestamp:
2014-03-01T18:57:59+01:00 (12 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/panels/PanelS57.java

    r30298 r30314  
    5050
    5151        public void startImport(File inf) throws IOException {
    52                 JFileChooser ifc = new JFileChooser(Main.pref.get("smed2plugin.file"));
    5352                FileInputStream in = new FileInputStream(inf);
    5453                PanelMain.setStatus("Select OSM types file", Color.yellow);
    55                 ifc.setCurrentDirectory(inf);
     54                JFileChooser ifc = new JFileChooser(Main.pref.get("smed2plugin.typesfile"));
    5655                int returnVal = ifc.showOpenDialog(Main.parent);
    5756                if (returnVal == JFileChooser.APPROVE_OPTION) {
    58                         Main.pref.put("smed2plugin.file", ifc.getSelectedFile().getPath());
     57                        Main.pref.put("smed2plugin.typesfile", ifc.getSelectedFile().getPath());
    5958                        Scanner tin = new Scanner(new FileInputStream(ifc.getSelectedFile()));
    6059                        while (tin.hasNext()) {
     
    8281                                                        while ((snode = map.nodes.get(ref)) != null) {
    8382                                                                if (!done.contains(ref)) {
    84                                                                         Node node = new Node(new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon)));
    85                                                                         node.setOsmId(ref, 1);
     83                                                                        Node node = new Node(ref, 1);
     84                                                                        node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
    8685                                                                        data.addPrimitive(node);
    8786                                                                        addKeys(node, feature, type);
     
    110109                                                                        Snode snode = map.nodes.get(ref);
    111110                                                                        if (!done.contains(ref)) {
    112                                                                                 Node node = new Node(new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon)));
    113                                                                                 node.setOsmId(ref, 1);
     111                                                                                Node node = new Node(ref, 1);
     112                                                                                node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
    114113                                                                                data.addPrimitive(node);
    115114                                                                                done.add(ref);
     
    129128                                                                        way.addNode((Node)data.getPrimitiveById(ref, OsmPrimitiveType.NODE));
    130129                                                                }
    131                                                                 addKeys(way, feature, type);
    132                                                         }
    133                                                         done.add(edge);
     130                                                        }
     131                                                        addKeys(way, feature, type);
    134132                                                }
    135133                                        } else if (feature.geom.prim == Pflag.AREA) {
     
    143141                                                                        Snode snode = map.nodes.get(ref);
    144142                                                                        if (!done.contains(ref)) {
    145                                                                                 Node node = new Node(new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon)));
    146                                                                                 node.setOsmId(ref, 1);
     143                                                                                Node node = new Node(ref, 1);
     144                                                                                node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
    147145                                                                                data.addPrimitive(node);
    148146                                                                                done.add(ref);
     
    153151                                                git = map.new GeomIterator(feature.geom);
    154152                                                while (git.hasComp()) {
    155                                                         git.nextComp();
    156                                                         while (git.hasEdge()) {
    157                                                                 long edge = git.nextEdge();
    158                                                                 if (!done.contains(edge)) {
    159                                                                         Way way = new Way(edge, 1);
    160                                                                         data.addPrimitive(way);
    161                                                                         while (git.hasNode()) {
    162                                                                                 long ref = git.nextRef(true);
    163                                                                                 way.addNode((Node)data.getPrimitiveById(ref, OsmPrimitiveType.NODE));
    164                                                                         }
    165                                                                         done.add(edge);
     153                                                        long ref = git.nextComp();
     154                                                        Way way = new Way(ref, 1);
     155                                                        data.addPrimitive(way);
     156                                                        while (git.hasEdge()) {
     157                                                                git.nextEdge();
     158                                                                while (git.hasNode()) {
     159                                                                        ref = git.nextRef();
     160                                                                        way.addNode((Node) data.getPrimitiveById(ref, OsmPrimitiveType.NODE));
    166161                                                                }
    167162                                                        }
     
    170165                                                data.addPrimitive(rel);
    171166                                                git = map.new GeomIterator(feature.geom);
    172                                                 int outers = feature.geom.refs.get(0).size;
    173                                                 while (git.hasComp()) {
    174                                                         git.nextComp();
    175                                                         while (git.hasEdge()) {
    176                                                                 long way = git.nextEdge();
    177                                                                 if (outers-- > 0) {
    178                                                                         rel.addMember(new RelationMember("outer", (Way)data.getPrimitiveById(way, OsmPrimitiveType.WAY)));
    179                                                                 } else {
    180                                                                         rel.addMember(new RelationMember("inner", (Way)data.getPrimitiveById(way, OsmPrimitiveType.WAY)));
    181                                                                 }
     167                                                int outers = feature.geom.outers;
     168                                                while (git.hasComp()) {
     169                                                        long ref = git.nextComp();
     170                                                        if (outers-- > 0) {
     171                                                                rel.addMember(new RelationMember("outer", (Way) data.getPrimitiveById(ref, OsmPrimitiveType.WAY)));
     172                                                        } else {
     173                                                                rel.addMember(new RelationMember("inner", (Way) data.getPrimitiveById(ref, OsmPrimitiveType.WAY)));
    182174                                                        }
    183175                                                }
Note: See TracChangeset for help on using the changeset viewer.