Ignore:
Timestamp:
2016-02-27T09:09:45+01:00 (10 years ago)
Author:
malcolmh
Message:

[seachart] update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/src/s57/S57osm.java

    r31955 r32082  
    3535        static {
    3636                OSMtags.put("natural=coastline", new KeyVal<>(Obj.COALNE, Att.UNKATT, null, null)); OSMtags.put("natural=water", new KeyVal<>(Obj.LAKARE, Att.UNKATT, null, null));
     37                OSMtags.put("water=river", new KeyVal<>(Obj.RIVERS, Att.UNKATT, null, null)); OSMtags.put("water=canal", new KeyVal<>(Obj.CANALS, Att.UNKATT, null, null));
    3738                OSMtags.put("waterway=riverbank", new KeyVal<>(Obj.RIVERS, Att.UNKATT, null, null)); OSMtags.put("waterway=dock", new KeyVal<>(Obj.HRBBSN, Att.UNKATT, null, null));
    3839                OSMtags.put("waterway=lock", new KeyVal<>(Obj.HRBBSN, Att.UNKATT, null, null)); OSMtags.put("landuse=basin", new KeyVal<>(Obj.LAKARE, Att.UNKATT, null, null));
     
    5152                }
    5253       
    53         public static KeyVal<?> OSMtag(String key, String val) {
     54        public static void OSMtag(ArrayList<KeyVal<?>> osm, String key, String val) {
    5455                KeyVal<?> kv = OSMtags.get(key + "=" + val);
    5556                if (kv != null) {
     
    5758                                ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
    5859                                list.add((Enum<?>)kv.val);
    59                                 return new KeyVal<>(kv.obj, kv.att, kv.conv, list);
    60                         }
    61                         return kv;
    62                 }
    63                 return new KeyVal<>(Obj.UNKOBJ, Att.UNKATT, null, null);
    64         }
    65        
    66         public static void OSMmap(BufferedReader in, S57map map) throws Exception {
     60                                osm.add(new KeyVal<>(kv.obj, kv.att, kv.conv, list));
     61                        } else {
     62                                osm.add(kv);
     63                        }
     64                }
     65                KeyVal<?> kvl = null;
     66                KeyVal<?> kvd = null;
     67                boolean rc = false;
     68                boolean rcl = false;
     69                for (KeyVal<?> kvx : osm) {
     70                        if (kvx.obj == Obj.LAKARE) {
     71                                kvl = kvx;
     72                        } else if ((kvx.obj == Obj.RIVERS) || (kvx.obj == Obj.CANALS)) {
     73                                rc = true;
     74                        }
     75                        if (kvx.obj == Obj.DEPARE) {
     76                                kvd = kvx;
     77                        } else if ((kvx.obj == Obj.RIVERS) || (kvx.obj == Obj.CANALS) || (kvx.obj == Obj.LAKARE)) {
     78                                rcl = true;
     79                        }
     80                }
     81                if (rc && (kvl != null)) {
     82                        osm.remove(kvl);
     83                }
     84                if (rcl && (kvd != null)) {
     85                        osm.remove(kvd);
     86                }
     87                return;
     88        }
     89       
     90        public static void OSMmap(BufferedReader in, S57map map, boolean bb) throws Exception {
    6791                String k = "";
    6892                String v = "";
     
    84108                while ((ln = in.readLine()) != null) {
    85109                        if (inOsm) {
    86                                 if (ln.contains("<bounds")) {
     110                                if (ln.contains("<bounds") && !bb) {
    87111                                        for (String token : ln.split("[ ]+")) {
    88112                                                if (token.matches("^minlat=.+")) {
Note: See TracChangeset for help on using the changeset viewer.