Changeset 3619 in osm for applications


Ignore:
Timestamp:
2007-07-19T02:03:17+02:00 (18 years ago)
Author:
ulf
Message:
  • add an experimental way to show unknown key/value combinations (currently commented out)
  • don't add duplicate rules into the internal hashtable
File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyles.java

    r3590 r3619  
    88{
    99        HashMap<String, ElemStyle> styles;
     10        static int nr = 0;
     11
    1012
    1113        public ElemStyles()
     
    1618        public void add (String k, String v, ElemStyle style)
    1719        {
     20                ElemStyle  old_style;
    1821                String key = k + "=" + v;
    1922               
     
    3033                        key = key + "node";
    3134                }
    32                 styles.put(key, style);
     35                /* avoid duplicates - for now */
     36                old_style = styles.get(key);
     37                if(old_style == null) {
     38                        /* new key/value, insert */
     39                        styles.put(key, style);
     40                } else {
     41                        if(style.getMaxScale() < old_style.getMaxScale()) {
     42                                /* existing larger scale key/value, replace */
     43                                styles.remove(old_style);
     44                                styles.put(key, style);
     45                        }
     46                }
    3347        }
    3448
     
    3852                {
    3953                        String classname;
     54                        String kv = null;
    4055                       
    4156                        if(p instanceof org.openstreetmap.josm.data.osm.Node) {
     
    4863                        {
    4964                                String key = iterator.next();
    50                                 String kv = key + "=" + p.keys.get(key) + classname;
     65                                kv = key + "=" + p.keys.get(key) + classname;
    5166                                if(styles.containsKey(kv))
    5267                                {
     
    5469                                }
    5570                        }
     71
     72            // not a known key/value combination
     73                        boolean first_line = true;
     74
     75            // filter out trivial tags and show the rest
     76                        iterator = p.keys.keySet().iterator();
     77                        while(iterator.hasNext())       
     78                        {
     79                                String key = iterator.next();
     80                                kv = key + "=" + p.keys.get(key);
     81                                if(     !kv.startsWith("created_by=") &&
     82                                        !kv.startsWith("converted_by=") &&
     83                                        !kv.startsWith("source=") &&
     84                                        !kv.startsWith("note=") &&
     85                                        !kv.startsWith("layer=") &&
     86                                        !kv.startsWith("bridge=") &&
     87                                        !kv.startsWith("tunnel=") &&
     88                                        !kv.startsWith("oneway=") &&
     89                                        !kv.startsWith("speedlimit=") &&
     90                                        !kv.startsWith("motorcar=") &&
     91                                        !kv.startsWith("horse=") &&
     92                                        !kv.startsWith("bicycle=") &&
     93                                        !kv.startsWith("foot=")
     94                                        ) {
     95                                               
     96                                        if (first_line) {
     97                                                nr++;
     98                                                //System.out.println("mappaint - rule not found[" + nr + "]: " + kv + " id:" + p.id);
     99                                        } else {
     100                                                //System.out.println("mappaint - rule not found[" + nr + "]: " + kv);
     101                                        }
     102                                        first_line=false;
     103                                }
     104                        }
    56105                }
     106               
    57107                return null;
    58108        }
Note: See TracChangeset for help on using the changeset viewer.