Ignore:
Timestamp:
2020-03-29T23:03:21+02:00 (5 years ago)
Author:
malcolmh
Message:

more map features

File:
1 edited

Legend:

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

    r35392 r35404  
    5959        OSMtags.put("landuse=industrial", new KeyVal<>(Obj.BUAARE, Att.UNKATT, null, null)); OSMtags.put("landuse=commercial", new KeyVal<>(Obj.BUAARE, Att.UNKATT, null, null));
    6060        OSMtags.put("landuse=retail", new KeyVal<>(Obj.BUAARE, Att.UNKATT, null, null)); OSMtags.put("landuse=residential", new KeyVal<>(Obj.BUAARE, Att.UNKATT, null, null));
     61        OSMtags.put("boundary_type=territorial_waters", new KeyVal<>(Obj.TESARE, Att.UNKATT, null, null));
    6162    }
    6263
     
    9899
    99100    public static void OSMmap(File in, S57map map, boolean bb) throws Exception {
    100         String k = "";
    101         String v = "";
    102 
    103101        double lat = 0;
    104102        double lon = 0;
    105103        long id = 0;
    106104        long ref = 0;
     105        String k = "";
     106        String v = "";
    107107        String type = "";
    108108        String role = "";
     
    121121            System.exit(-1);
    122122        }
    123         NodeList nList = doc.getElementsByTagName("bounds");
    124         NamedNodeMap nnmap = nList.item(0).getAttributes();
    125         map.bounds.minlat = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("minlat").getNodeValue()));
    126         map.nodes.get(2L).lat = map.bounds.minlat;
    127         map.nodes.get(3L).lat = map.bounds.minlat;
    128         map.bounds.minlon = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("minlon").getNodeValue()));
    129         map.nodes.get(1L).lon = map.bounds.minlon;
    130         map.nodes.get(2L).lon = map.bounds.minlon;
    131         map.bounds.maxlat = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("maxlat").getNodeValue()));
    132         map.nodes.get(1L).lat = map.bounds.maxlat;
    133         map.nodes.get(4L).lat = map.bounds.maxlat;
    134         map.bounds.maxlon = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("maxlon").getNodeValue()));
    135         map.nodes.get(3L).lon = map.bounds.maxlon;
    136         map.nodes.get(4L).lon = map.bounds.maxlon;
     123                NodeList nList = doc.getElementsByTagName("bounds");
     124                NamedNodeMap nnmap;
     125                if (nList.getLength() != 0) {
     126                        nnmap = nList.item(0).getAttributes();
     127                        map.bounds.minlat = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("minlat").getNodeValue()));
     128                        map.nodes.get(2L).lat = map.bounds.minlat;
     129                        map.nodes.get(3L).lat = map.bounds.minlat;
     130                        map.bounds.minlon = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("minlon").getNodeValue()));
     131                        map.nodes.get(1L).lon = map.bounds.minlon;
     132                        map.nodes.get(2L).lon = map.bounds.minlon;
     133                        map.bounds.maxlat = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("maxlat").getNodeValue()));
     134                        map.nodes.get(1L).lat = map.bounds.maxlat;
     135                        map.nodes.get(4L).lat = map.bounds.maxlat;
     136                        map.bounds.maxlon = Math.toRadians(Double.parseDouble(nnmap.getNamedItem("maxlon").getNodeValue()));
     137                        map.nodes.get(3L).lon = map.bounds.maxlon;
     138                        map.nodes.get(4L).lon = map.bounds.maxlon;
     139                }
    137140
    138141        nList = doc.getElementsByTagName("node");
     
    141144            Node nNode = nList.item(i);
    142145            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
    143                 nnmap = nNode.getAttributes();
     146                nnmap = nNode.getAttributes();
    144147                id = Long.parseLong(nnmap.getNamedItem("id").getNodeValue());
    145148                lat = Double.parseDouble(nnmap.getNamedItem("lat").getNodeValue());
Note: See TracChangeset for help on using the changeset viewer.