Changeset 29198 in osm for applications/editors/josm/plugins/smed2/src/seamap
- Timestamp:
- 2013-01-14T19:11:27+01:00 (13 years ago)
- Location:
- applications/editors/josm/plugins/smed2/src/seamap
- Files:
-
- 3 edited
-
Renderer.java (modified) (5 diffs)
-
Rules.java (modified) (3 diffs)
-
SeaMap.java (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/smed2/src/seamap/Renderer.java
r29189 r29198 18 18 import s57.S57att.Att; 19 19 import s57.S57obj.Obj; 20 import s57.S57val.ColCOL;21 20 import s57.S57val.*; 22 21 import s57.S57val; … … 66 65 ArrayList<Long> way = map.ways.get(feature.refs); 67 66 Coord coord = map.nodes.get(way.get(0)); 68 double llon = Math.toRadians(coord.lon);69 double llat = Math.toRadians(coord.lat);67 double llon = coord.lon; 68 double llat = coord.lat; 70 69 double sigma = 0.0; 71 70 for (long node : way) { 72 71 coord = map.nodes.get(node); 73 double lat = Math.toRadians(coord.lat);74 double lon = Math.toRadians(coord.lon);72 double lat = coord.lat; 73 double lon = coord.lon; 75 74 sigma += (lon * Math.sin(llat)) - (llon * Math.sin(lat)); 76 75 llon = lon; 77 76 llat = lat; 78 77 } 79 return Math.abs(sigma) / 2.0* 3444 * 3444;78 return Math.abs(sigma) * 3444 * 3444 / 2.0; 80 79 } 81 80 return 0.0; … … 83 82 84 83 public static Coord findCentroid(Feature feature) { 85 double tst = calcArea(feature);86 84 Coord coord; 87 85 ArrayList<Long> way = map.ways.get(feature.refs); … … 105 103 double lon = coord.lon; 106 104 double lat = coord.lat; 107 double arc = (Math.acos(Math.cos( Math.toRadians(lon-llon)) * Math.cos(Math.toRadians(lat-llat))));105 double arc = (Math.acos(Math.cos(lon-llon) * Math.cos(lat-llat))); 108 106 slat += (lat * arc); 109 107 slon += (lon * arc); … … 122 120 } 123 121 122 public static void lineSymbols(Feature feature, Symbol prisymb, double space, Symbol secsymb, int ratio) { 123 if (feature.flag != Fflag.NODE) { 124 ArrayList<Long> way = map.ways.get(feature.refs); 125 for (long node : way) { 126 Point2D point = helper.getPoint(map.nodes.get(node)); 127 128 } 129 } 130 } 131 132 public static void lineVector (Feature feature, LineStyle style) { 133 134 } 135 136 public static void labelText (Feature feature, String str, TextStyle style, Delta delta) { 137 138 } 139 140 public static void lineText (Feature feature, String str, TextStyle style, double offset, Delta delta) { 141 142 } 124 143 } -
applications/editors/josm/plugins/smed2/src/seamap/Rules.java
r29186 r29198 10 10 package seamap; 11 11 12 import java.awt.BasicStroke; 13 import java.awt.Color; 14 import java.awt.Font; 15 import java.awt.geom.AffineTransform; 12 16 import java.util.ArrayList; 13 17 … … 16 20 import s57.S57obj.*; 17 21 18 import seamap.SeaMap.AttItem;19 22 import seamap.SeaMap.*; 20 23 import symbols.*; … … 29 32 map = m; 30 33 zoom = z; 31 ArrayList<Feature> feature;32 if (( feature= map.features.get(Obj.SLCONS)) != null) shoreline(feature);33 if (( feature= map.features.get(Obj.SLCONS)) != null) shoreline(feature);34 if (( feature= map.features.get(Obj.PIPSOL)) != null) pipelines(feature);35 if (( feature= map.features.get(Obj.CBLSUB)) != null) cables(feature);36 if (( feature= map.features.get(Obj.PIPOHD)) != null) pipelines(feature);37 if (( feature= map.features.get(Obj.CBLOHD)) != null) cables(feature);38 if (( feature= map.features.get(Obj.TSEZNE)) != null) separation(feature);39 if (( feature= map.features.get(Obj.TSSCRS)) != null) separation(feature);40 if (( feature= map.features.get(Obj.TSSRON)) != null) separation(feature);41 if (( feature= map.features.get(Obj.TSELNE)) != null) separation(feature);42 if (( feature= map.features.get(Obj.TSSLPT)) != null) separation(feature);43 if (( feature= map.features.get(Obj.TSSBND)) != null) separation(feature);44 if (( feature= map.features.get(Obj.SNDWAV)) != null) areas(feature);45 if (( feature= map.features.get(Obj.OSPARE)) != null) areas(feature);46 if (( feature= map.features.get(Obj.FAIRWY)) != null) areas(feature);47 if (( feature= map.features.get(Obj.DRGARE)) != null) areas(feature);48 if (( feature= map.features.get(Obj.RESARE)) != null) areas(feature);49 if (( feature= map.features.get(Obj.SPLARE)) != null) areas(feature);50 if (( feature= map.features.get(Obj.SEAARE)) != null) areas(feature);51 if (( feature= map.features.get(Obj.OBSTRN)) != null) obstructions(feature);52 if (( feature= map.features.get(Obj.UWTROC)) != null) obstructions(feature);53 if (( feature= map.features.get(Obj.MARCUL)) != null) areas(feature);54 if (( feature= map.features.get(Obj.WTWAXS)) != null) waterways(feature);55 if (( feature= map.features.get(Obj.RECTRC)) != null) transits(feature);56 if (( feature= map.features.get(Obj.NAVLNE)) != null) transits(feature);57 if (( feature= map.features.get(Obj.HRBFAC)) != null) harbours(feature);58 if (( feature= map.features.get(Obj.ACHARE)) != null) harbours(feature);59 if (( feature= map.features.get(Obj.ACHBRT)) != null) harbours(feature);60 if (( feature= map.features.get(Obj.LOKBSN)) != null) locks(feature);61 if (( feature= map.features.get(Obj.LKBSPT)) != null) locks(feature);62 if (( feature= map.features.get(Obj.GATCON)) != null) locks(feature);63 if (( feature= map.features.get(Obj.DISMAR)) != null) distances(feature);64 if (( feature= map.features.get(Obj.HULKES)) != null) ports(feature);65 if (( feature= map.features.get(Obj.CRANES)) != null) ports(feature);66 if (( feature= map.features.get(Obj.LNDMRK)) != null) landmarks(feature);67 if (( feature= map.features.get(Obj.MORFAC)) != null) moorings(feature);68 if (( feature= map.features.get(Obj.NOTMRK)) != null) notices(feature);69 if (( feature= map.features.get(Obj.SMCFAC)) != null) marinas(feature);70 if (( feature= map.features.get(Obj.BRIDGE)) != null) bridges(feature);71 if (( feature= map.features.get(Obj.LITMAJ)) != null) lights(feature);72 if (( feature= map.features.get(Obj.LITMIN)) != null) lights(feature);73 if (( feature= map.features.get(Obj.LIGHTS)) != null) lights(feature);74 if (( feature= map.features.get(Obj.SISTAT)) != null) signals(feature);75 if (( feature= map.features.get(Obj.SISTAW)) != null) signals(feature);76 if (( feature= map.features.get(Obj.CGUSTA)) != null) signals(feature);77 if (( feature= map.features.get(Obj.RDOSTA)) != null) signals(feature);78 if (( feature= map.features.get(Obj.RADSTA)) != null) signals(feature);79 if (( feature= map.features.get(Obj.RSCSTA)) != null) signals(feature);80 if (( feature= map.features.get(Obj.PILBOP)) != null) signals(feature);81 if (( feature= map.features.get(Obj.WTWGAG)) != null) gauges(feature);82 if (( feature= map.features.get(Obj.OFSPLF)) != null) platforms(feature);83 if (( feature= map.features.get(Obj.WRECKS)) != null) wrecks(feature);84 if (( feature= map.features.get(Obj.LITVES)) != null) floats(feature);85 if (( feature= map.features.get(Obj.LITFLT)) != null) floats(feature);86 if (( feature= map.features.get(Obj.BOYINB)) != null) floats(feature);87 if (( feature= map.features.get(Obj.BOYLAT)) != null) buoys(feature);88 if (( feature= map.features.get(Obj.BOYCAR)) != null) buoys(feature);89 if (( feature= map.features.get(Obj.BOYISD)) != null) buoys(feature);90 if (( feature= map.features.get(Obj.BOYSAW)) != null) buoys(feature);91 if (( feature= map.features.get(Obj.BOYSPP)) != null) buoys(feature);92 if (( feature= map.features.get(Obj.BOYWTW)) != null) buoys(feature);93 if (( feature= map.features.get(Obj.BCNLAT)) != null) beacons(feature);94 if (( feature= map.features.get(Obj.BCNCAR)) != null) beacons(feature);95 if (( feature= map.features.get(Obj.BCNISD)) != null) beacons(feature);96 if (( feature= map.features.get(Obj.BCNSAW)) != null) beacons(feature);97 if (( feature= map.features.get(Obj.BCNSPP)) != null) beacons(feature);98 if (( feature= map.features.get(Obj.BCNWTW)) != null) beacons(feature);34 ArrayList<Feature> objects; 35 if ((objects = map.features.get(Obj.SLCONS)) != null) for (Feature feature : objects) shoreline(feature); 36 if ((objects = map.features.get(Obj.SLCONS)) != null) for (Feature feature : objects) shoreline(feature);; 37 if ((objects = map.features.get(Obj.PIPSOL)) != null) for (Feature feature : objects) pipelines(feature); 38 if ((objects = map.features.get(Obj.CBLSUB)) != null) for (Feature feature : objects) cables(feature); 39 if ((objects = map.features.get(Obj.PIPOHD)) != null) for (Feature feature : objects) pipelines(feature); 40 if ((objects = map.features.get(Obj.CBLOHD)) != null) for (Feature feature : objects) cables(feature); 41 if ((objects = map.features.get(Obj.TSEZNE)) != null) for (Feature feature : objects) separation(feature); 42 if ((objects = map.features.get(Obj.TSSCRS)) != null) for (Feature feature : objects) separation(feature); 43 if ((objects = map.features.get(Obj.TSSRON)) != null) for (Feature feature : objects) separation(feature); 44 if ((objects = map.features.get(Obj.TSELNE)) != null) for (Feature feature : objects) separation(feature); 45 if ((objects = map.features.get(Obj.TSSLPT)) != null) for (Feature feature : objects) separation(feature); 46 if ((objects = map.features.get(Obj.TSSBND)) != null) for (Feature feature : objects) separation(feature); 47 if ((objects = map.features.get(Obj.SNDWAV)) != null) for (Feature feature : objects) areas(feature); 48 if ((objects = map.features.get(Obj.OSPARE)) != null) for (Feature feature : objects) areas(feature); 49 if ((objects = map.features.get(Obj.FAIRWY)) != null) for (Feature feature : objects) areas(feature); 50 if ((objects = map.features.get(Obj.DRGARE)) != null) for (Feature feature : objects) areas(feature); 51 if ((objects = map.features.get(Obj.RESARE)) != null) for (Feature feature : objects) areas(feature); 52 if ((objects = map.features.get(Obj.SPLARE)) != null) for (Feature feature : objects) areas(feature); 53 if ((objects = map.features.get(Obj.SEAARE)) != null) for (Feature feature : objects) areas(feature); 54 if ((objects = map.features.get(Obj.OBSTRN)) != null) for (Feature feature : objects) obstructions(feature); 55 if ((objects = map.features.get(Obj.UWTROC)) != null) for (Feature feature : objects) obstructions(feature); 56 if ((objects = map.features.get(Obj.MARCUL)) != null) for (Feature feature : objects) areas(feature); 57 if ((objects = map.features.get(Obj.WTWAXS)) != null) for (Feature feature : objects) waterways(feature); 58 if ((objects = map.features.get(Obj.RECTRC)) != null) for (Feature feature : objects) transits(feature); 59 if ((objects = map.features.get(Obj.NAVLNE)) != null) for (Feature feature : objects) transits(feature); 60 if ((objects = map.features.get(Obj.HRBFAC)) != null) for (Feature feature : objects) harbours(feature); 61 if ((objects = map.features.get(Obj.ACHARE)) != null) for (Feature feature : objects) harbours(feature); 62 if ((objects = map.features.get(Obj.ACHBRT)) != null) for (Feature feature : objects) harbours(feature); 63 if ((objects = map.features.get(Obj.LOKBSN)) != null) for (Feature feature : objects) locks(feature); 64 if ((objects = map.features.get(Obj.LKBSPT)) != null) for (Feature feature : objects) locks(feature); 65 if ((objects = map.features.get(Obj.GATCON)) != null) for (Feature feature : objects) locks(feature); 66 if ((objects = map.features.get(Obj.DISMAR)) != null) for (Feature feature : objects) distances(feature); 67 if ((objects = map.features.get(Obj.HULKES)) != null) for (Feature feature : objects) ports(feature); 68 if ((objects = map.features.get(Obj.CRANES)) != null) for (Feature feature : objects) ports(feature); 69 if ((objects = map.features.get(Obj.LNDMRK)) != null) for (Feature feature : objects) landmarks(feature); 70 if ((objects = map.features.get(Obj.MORFAC)) != null) for (Feature feature : objects) moorings(feature); 71 if ((objects = map.features.get(Obj.NOTMRK)) != null) for (Feature feature : objects) notices(feature); 72 if ((objects = map.features.get(Obj.SMCFAC)) != null) for (Feature feature : objects) marinas(feature); 73 if ((objects = map.features.get(Obj.BRIDGE)) != null) for (Feature feature : objects) bridges(feature); 74 if ((objects = map.features.get(Obj.LITMAJ)) != null) for (Feature feature : objects) lights(feature); 75 if ((objects = map.features.get(Obj.LITMIN)) != null) for (Feature feature : objects) lights(feature); 76 if ((objects = map.features.get(Obj.LIGHTS)) != null) for (Feature feature : objects) lights(feature); 77 if ((objects = map.features.get(Obj.SISTAT)) != null) for (Feature feature : objects) signals(feature); 78 if ((objects = map.features.get(Obj.SISTAW)) != null) for (Feature feature : objects) signals(feature); 79 if ((objects = map.features.get(Obj.CGUSTA)) != null) for (Feature feature : objects) signals(feature); 80 if ((objects = map.features.get(Obj.RDOSTA)) != null) for (Feature feature : objects) signals(feature); 81 if ((objects = map.features.get(Obj.RADSTA)) != null) for (Feature feature : objects) signals(feature); 82 if ((objects = map.features.get(Obj.RSCSTA)) != null) for (Feature feature : objects) signals(feature); 83 if ((objects = map.features.get(Obj.PILBOP)) != null) for (Feature feature : objects) signals(feature); 84 if ((objects = map.features.get(Obj.WTWGAG)) != null) for (Feature feature : objects) gauges(feature); 85 if ((objects = map.features.get(Obj.OFSPLF)) != null) for (Feature feature : objects) platforms(feature); 86 if ((objects = map.features.get(Obj.WRECKS)) != null) for (Feature feature : objects) wrecks(feature); 87 if ((objects = map.features.get(Obj.LITVES)) != null) for (Feature feature : objects) floats(feature); 88 if ((objects = map.features.get(Obj.LITFLT)) != null) for (Feature feature : objects) floats(feature); 89 if ((objects = map.features.get(Obj.BOYINB)) != null) for (Feature feature : objects) floats(feature); 90 if ((objects = map.features.get(Obj.BOYLAT)) != null) for (Feature feature : objects) buoys(feature); 91 if ((objects = map.features.get(Obj.BOYCAR)) != null) for (Feature feature : objects) buoys(feature); 92 if ((objects = map.features.get(Obj.BOYISD)) != null) for (Feature feature : objects) buoys(feature); 93 if ((objects = map.features.get(Obj.BOYSAW)) != null) for (Feature feature : objects) buoys(feature); 94 if ((objects = map.features.get(Obj.BOYSPP)) != null) for (Feature feature : objects) buoys(feature); 95 if ((objects = map.features.get(Obj.BOYWTW)) != null) for (Feature feature : objects) buoys(feature); 96 if ((objects = map.features.get(Obj.BCNLAT)) != null) for (Feature feature : objects) beacons(feature); 97 if ((objects = map.features.get(Obj.BCNCAR)) != null) for (Feature feature : objects) beacons(feature); 98 if ((objects = map.features.get(Obj.BCNISD)) != null) for (Feature feature : objects) beacons(feature); 99 if ((objects = map.features.get(Obj.BCNSAW)) != null) for (Feature feature : objects) beacons(feature); 100 if ((objects = map.features.get(Obj.BCNSPP)) != null) for (Feature feature : objects) beacons(feature); 101 if ((objects = map.features.get(Obj.BCNWTW)) != null) for (Feature feature : objects) beacons(feature); 99 102 } 100 103 101 private static void shoreline(ArrayList<Feature> features) { 102 // for (Feature feature : features) { 103 // } 104 } 105 private static void pipelines(ArrayList<Feature> features) {} 106 private static void cables(ArrayList<Feature> features) {} 107 private static void separation(ArrayList<Feature> features) {} 108 private static void areas(ArrayList<Feature> features) {} 109 private static void obstructions(ArrayList<Feature> features) {} 110 private static void waterways(ArrayList<Feature> features) {} 111 private static void transits(ArrayList<Feature> features) {} 112 private static void harbours(ArrayList<Feature> features) {} 113 private static void locks(ArrayList<Feature> features) {} 114 private static void distances(ArrayList<Feature> features) {} 115 private static void ports(ArrayList<Feature> features) {} 116 private static void landmarks(ArrayList<Feature> features) { 117 for (Feature feature : features) { 118 ArrayList<CatLMK> cats = (ArrayList<CatLMK>) Renderer.getAttVal(feature, feature.type, 0, Att.CATLMK); 119 Symbol catSym = Landmarks.Shapes.get(cats.get(0)); 120 ArrayList<FncFNC> fncs = (ArrayList<FncFNC>) Renderer.getAttVal(feature, feature.type, 0, Att.FUNCTN); 121 Symbol fncSym = Landmarks.Funcs.get(fncs.get(0)); 122 if ((fncs.get(0) == FncFNC.FNC_CHCH) && (cats.get(0) == CatLMK.LMK_TOWR)) catSym = Landmarks.ChurchTower; 123 if ((cats.get(0) == CatLMK.LMK_UNKN) && (fncs.get(0) == FncFNC.FNC_UNKN) && (feature.objs.get(Obj.LIGHTS) != null)) catSym = Beacons.LightMajor; 124 if (cats.get(0) == CatLMK.LMK_RADR) fncSym = Landmarks.RadioTV; 125 Renderer.symbol(feature, catSym, feature.type, null); 126 Renderer.symbol(feature, fncSym, feature.type, null); 127 } 128 } 129 private static void moorings(ArrayList<Feature> features) { 130 for (Feature feature : features) { 131 CatMOR cat = (CatMOR) Renderer.getAttVal(feature, feature.type, 0, Att.CATMOR); 104 private static void shoreline(Feature feature) { 105 CatSLC cat = (CatSLC) Renderer.getAttVal(feature, feature.type, 0, Att.CATSLC); 106 if (zoom >= 12) { 132 107 switch (cat) { 133 case MOR_DLPN: 134 Renderer.symbol(feature, Harbours.Dolphin, feature.type, null); 135 break; 136 case MOR_DDPN: 137 Renderer.symbol(feature, Harbours.DeviationDolphin, feature.type, null); 138 break; 139 case MOR_BLRD: 140 case MOR_POST: 141 Renderer.symbol(feature, Harbours.Bollard, feature.type, null); 142 break; 143 case MOR_BUOY: 144 BoySHP shape = (BoySHP) Renderer.getAttVal(feature, feature.type, 0, Att.BOYSHP); 145 if (shape == BoySHP.BOY_UNKN) shape = BoySHP.BOY_SPHR; 146 Renderer.symbol(feature, Buoys.Shapes.get(shape), feature.type, null); 147 break; 148 } 149 } 150 } 151 private static void notices(ArrayList<Feature> features) {} 152 private static void marinas(ArrayList<Feature> features) {} 153 private static void bridges(ArrayList<Feature> features) {} 154 private static void wrecks(ArrayList<Feature> features) {} 155 private static void gauges(ArrayList<Feature> features) {} 156 private static void lights(ArrayList<Feature> features) { 157 for (Feature feature : features) { 158 switch (feature.type) { 159 case LITMAJ: 160 Renderer.symbol(feature, Beacons.LightMajor, feature.type, null); 161 break; 162 case LITMIN: 163 case LIGHTS: 164 Renderer.symbol(feature, Beacons.LightMinor, feature.type, null); 165 break; 166 } 167 } 168 } 169 private static void signals(ArrayList<Feature> features) { 170 for (Feature feature : features) { 171 switch (feature.type) { 172 case SISTAT: 173 case SISTAW: 174 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 175 break; 176 case RDOSTA: 177 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 178 break; 179 case RADSTA: 180 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 181 break; 182 case PILBOP: 183 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 184 break; 185 case CGUSTA: 186 // Renderer.symbol(feature, Harbours.CGuardStation, feature.type, null); 187 break; 188 case RSCSTA: 189 // Renderer.symbol(feature, Harbours.RescueStation, feature.type, null); 190 break; 191 } 192 } 193 } 194 private static void floats(ArrayList<Feature> features) { 195 for (Feature feature : features) { 196 switch (feature.type) { 197 case LITVES: 198 Renderer.symbol(feature, Buoys.Super, feature.type, null); 199 break; 200 case LITFLT: 201 Renderer.symbol(feature, Buoys.Float, feature.type, null); 202 break; 203 case BOYINB: 204 Renderer.symbol(feature, Buoys.Storage, feature.type, null); 205 break; 206 } 108 case SLC_TWAL: 109 WatLEV lev = (WatLEV) Renderer.getAttVal(feature, feature.type, 0, Att.WATLEV); 110 if (lev == WatLEV.LEV_CVRS) { 111 Renderer.lineVector(feature, new LineStyle(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 40, 40 }, 0), Color.black, null)); 112 if (zoom >= 15) 113 Renderer.lineText(feature, "(covers)", new TextStyle(new Font("Arial", Font.PLAIN, 80)), 0.5, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 20))); 114 } else { 115 Renderer.lineVector(feature, new LineStyle(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND), Color.black, null)); 116 } 117 if (zoom >= 15) 118 Renderer.lineText(feature, "Training Wall", new TextStyle(new Font("Arial", Font.PLAIN, 80)), 0.5, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -20))); 119 } 120 } 121 } 122 private static void pipelines(Feature feature) { 123 if (zoom >= 14) { 124 if (feature.type == Obj.PIPSOL) { 125 Renderer.lineSymbols(feature, Areas.Pipeline, 1.0, null, 0); 126 } else if (feature.type == Obj.PIPOHD) { 127 128 } 129 } 130 } 131 private static void cables(Feature feature) { 132 if (zoom >= 14) { 133 if (feature.type == Obj.CBLSUB) { 134 Renderer.lineSymbols(feature, Areas.Cable, 0.0, null, 0); 135 } else if (feature.type == Obj.CBLOHD) { 136 137 } 138 } 139 } 140 private static void separation(Feature feature) { 141 switch (feature.type) { 142 case TSEZNE: 143 case TSSCRS: 144 case TSSRON: 145 if (zoom <= 15) 146 Renderer.lineVector(feature, new LineStyle(null, null, new Color(0x80c480ff, true))); 147 else 148 Renderer.lineVector(feature, new LineStyle(new BasicStroke(20, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND), new Color(0x80c480ff, true), null)); 149 AttItem name = feature.atts.get(Att.OBJNAM); 150 if ((zoom >= 10) && (name != null)) 151 Renderer.labelText(feature, (String) name.val, new TextStyle(new Font("Arial", Font.BOLD, 150)), null); 152 break; 153 case TSELNE: 154 Renderer.lineVector(feature, new LineStyle(new BasicStroke(20, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND), new Color(0x80c480ff, true), null)); 155 break; 156 case TSSLPT: 157 Renderer.lineSymbols(feature, Areas.LaneArrow, 0.5, null, 0); 158 break; 159 case TSSBND: 160 Renderer.lineVector(feature, new LineStyle(new BasicStroke(20, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 40, 40 }, 0), new Color(0x80c480ff, true), null)); 161 break; 162 } 163 } 164 private static void areas(Feature feature) { 165 AttItem name = feature.atts.get(Att.OBJNAM); 166 switch (feature.type) { 167 case SPLARE: 168 if (zoom >= 12) { 169 Renderer.symbol(feature, Areas.Plane, Obj.SPLARE, null); 170 Renderer.lineSymbols(feature, Areas.Restricted, 0.5, Areas.LinePlane, 10); 171 } 172 if ((zoom >= 15) && (name != null)) 173 Renderer.labelText(feature, (String) name.val, new TextStyle(new Font("Arial", Font.BOLD, 80)), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -90))); 174 break; 175 case MARCUL: 176 if (zoom >= 14) 177 Renderer.symbol(feature, Areas.MarineFarm, Obj.MARCUL, null); 178 if (zoom >= 16) 179 Renderer.lineVector(feature, new LineStyle(new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 10, 10 }, 0), Color.black, null)); 180 break; 181 case FAIRWY: 182 if (Renderer.calcArea(feature) > 2.0) { 183 if (zoom < 16) 184 Renderer.lineVector(feature, new LineStyle(new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 50, 50 }, 0), new Color(0xc480ff), new Color(0x40ffffff, true))); 185 else 186 Renderer.lineVector(feature, new LineStyle(new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 50, 50 }, 0), new Color(0xc480ff), null)); 187 } else { 188 if (zoom >= 14) 189 Renderer.lineVector(feature, new LineStyle(null, null, new Color(0x40ffffff, true))); 190 } 191 break; 192 case DRGARE: 193 if (zoom < 16) 194 Renderer.lineVector(feature, new LineStyle(new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 25, 25 }, 0), Color.black, new Color(0x40ffffff, true))); 195 else 196 Renderer.lineVector(feature, new LineStyle(new BasicStroke(8, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 25, 25 }, 0), Color.black, null)); 197 if ((zoom >= 12) && (name != null)) 198 Renderer.labelText(feature, (String) name.val, new TextStyle(new Font("Arial", Font.PLAIN, 100)), new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 0))); 199 break; 200 case RESARE: 201 if (zoom >= 12) { 202 Renderer.lineSymbols(feature, Areas.Restricted, 1.0, null, 0); 203 if ((CatREA)Renderer.getAttVal(feature, feature.type, 0, Att.CATREA) == CatREA.REA_NWAK) 204 Renderer.symbol(feature, Areas.NoWake, Obj.RESARE, null); 205 } 206 break; 207 case OSPARE: 208 if ((CatPRA)Renderer.getAttVal(feature, feature.type, 0, Att.CATPRA) == CatPRA.PRA_WFRM) { 209 Renderer.symbol(feature, Areas.WindFarm, Obj.OSPARE, null); 210 Renderer.lineVector(feature, new LineStyle(new BasicStroke(20, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[] { 40, 40 }, 0), Color.black, null)); 211 if ((zoom >= 15) && (name != null)) 212 Renderer.labelText(feature, (String) name.val, new TextStyle(new Font("Arial", Font.BOLD, 80)), new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 10))); 213 } 214 break; 215 case SEAARE: 216 break; 217 case SNDWAV: 218 // if (zoom>=12)) area("fill:url(#sandwaves)"); 219 break; 220 } 221 /* 222 if (is_type("sea_area")) { 223 if (has_attribute("category")) { 224 make_string(""); 225 attribute_switch("category") 226 attribute_case("reach") { if (zoom >= 10) add_string("font-family:Arial;font-weight:normal;font-style:italic;font-size:150;text-anchor:middle") } 227 attribute_case("bay") { if (zoom >= 12) add_string("font-family:Arial;font-weight:normal;font-style:italic;font-size:150;text-anchor:middle") } 228 attribute_case("shoal") { if (zoom >= 14) { 229 if (is_area) { 230 area("stroke:#c480ff;stroke-width:4;stroke-dasharray:25,25;fill:none"); 231 if (has_item_attribute("name")) text(item_attribute("name"), "font-family:Arial;font-weight:normal;font-style:italic;font-size:75;text-anchor:middle", 0, -40); 232 text("(Shoal)", "font-family:Arial;font-weight:normal;font-size:60;text-anchor:middle", 0, 0); 233 } else if (is_line) { 234 if (has_item_attribute("name")) way_text(item_attribute("name"), "font-family:Arial;font-weight:normal;font-style:italic;font-size:75;text-anchor:middle", 0.5, -40, line("stroke:none;fill:none")); 235 way_text("(Shoal)", "font-family:Arial;font-weight:normal;font-size:60;text-anchor:middle", 0.5, 0, line("stroke:none;fill:none")); 236 } else { 237 if (has_item_attribute("name")) text(item_attribute("name"), "font-family:Arial;font-weight:normal;font-style:italic;font-size:75;text-anchor:middle", 0, -40); 238 text("(Shoal)", "font-family:Arial;font-weight:normal;font-size:60;text-anchor:middle", 0, 0); 239 } 240 } 241 } 242 attribute_case("gat|narrows") { if (zoom >= 12) add_string("font-family:Arial;font-weight:normal;font-style:italic;font-size:100;text-anchor:middle") } 243 end_switch 244 if ((strlen(string) > 0) && !attribute_test("category", "shoal")) { 245 int ref = line("stroke:none;fill:none"); 246 if (ref != 0) { 247 if (has_item_attribute("name")) way_text(item_attribute("name"), string, 0.5, 0, ref); 248 } else { 249 if (has_item_attribute("name")) text(item_attribute("name"), string, 0, 0); 250 } 251 } 252 free_string 253 } 254 } 255 */ 256 } 257 258 private static void obstructions(Feature feature) { 259 if ((zoom >= 14) && (feature.type == Obj.UWTROC)) { 260 WatLEV lvl = (WatLEV) Renderer.getAttVal(feature, feature.type, 0, Att.WATLEV); 261 switch (lvl) { 262 case LEV_CVRS: 263 Renderer.symbol(feature, Areas.RockC, feature.type, null); 264 break; 265 case LEV_AWSH: 266 Renderer.symbol(feature, Areas.RockA, feature.type, null); 267 break; 268 default: 269 Renderer.symbol(feature, Areas.Rock, feature.type, null); 270 } 271 } else { 272 Renderer.symbol(feature, Areas.Rock, feature.type, null); 273 } 274 } 275 private static void waterways(Feature feature) { 276 if ((zoom >= 14) && (feature.atts.get(Att.OBJNAM) != null)) { 277 // lineText(item_attribute("name"), "font-family:Arial;font-weight:bold;font-size:80;text-anchor:middle", 0.5, 15, line("stroke:none;fill:none")); 278 } 279 } 280 private static void transits(Feature feature) { 281 } 282 private static void harbours(Feature feature) { 283 } 284 private static void locks(Feature feature) { 285 } 286 private static void distances(Feature feature) { 287 } 288 private static void ports(Feature feature) { 289 } 290 private static void landmarks(Feature feature) { 291 ArrayList<CatLMK> cats = (ArrayList<CatLMK>) Renderer.getAttVal(feature, feature.type, 0, Att.CATLMK); 292 Symbol catSym = Landmarks.Shapes.get(cats.get(0)); 293 ArrayList<FncFNC> fncs = (ArrayList<FncFNC>) Renderer.getAttVal(feature, feature.type, 0, Att.FUNCTN); 294 Symbol fncSym = Landmarks.Funcs.get(fncs.get(0)); 295 if ((fncs.get(0) == FncFNC.FNC_CHCH) && (cats.get(0) == CatLMK.LMK_TOWR)) 296 catSym = Landmarks.ChurchTower; 297 if ((cats.get(0) == CatLMK.LMK_UNKN) && (fncs.get(0) == FncFNC.FNC_UNKN) && (feature.objs.get(Obj.LIGHTS) != null)) 298 catSym = Beacons.LightMajor; 299 if (cats.get(0) == CatLMK.LMK_RADR) 300 fncSym = Landmarks.RadioTV; 301 Renderer.symbol(feature, catSym, feature.type, null); 302 Renderer.symbol(feature, fncSym, feature.type, null); 303 } 304 private static void moorings(Feature feature) { 305 CatMOR cat = (CatMOR) Renderer.getAttVal(feature, feature.type, 0, Att.CATMOR); 306 switch (cat) { 307 case MOR_DLPN: 308 Renderer.symbol(feature, Harbours.Dolphin, feature.type, null); 309 break; 310 case MOR_DDPN: 311 Renderer.symbol(feature, Harbours.DeviationDolphin, feature.type, null); 312 break; 313 case MOR_BLRD: 314 case MOR_POST: 315 Renderer.symbol(feature, Harbours.Bollard, feature.type, null); 316 break; 317 case MOR_BUOY: 318 BoySHP shape = (BoySHP) Renderer.getAttVal(feature, feature.type, 0, Att.BOYSHP); 319 if (shape == BoySHP.BOY_UNKN) 320 shape = BoySHP.BOY_SPHR; 321 Renderer.symbol(feature, Buoys.Shapes.get(shape), feature.type, null); 322 break; 323 } 324 } 325 private static void notices(Feature feature) { 326 } 327 private static void marinas(Feature feature) { 328 } 329 private static void bridges(Feature feature) { 330 } 331 private static void wrecks(Feature feature) { 332 if (zoom >= 14) { 333 CatWRK cat = (CatWRK) Renderer.getAttVal(feature, feature.type, 0, Att.CATWRK); 334 switch (cat) { 335 case WRK_DNGR: 336 case WRK_MSTS: 337 Renderer.symbol(feature, Areas.WreckD, feature.type, null); 338 break; 339 case WRK_HULS: 340 Renderer.symbol(feature, Areas.WreckS, feature.type, null); 341 break; 342 default: 343 Renderer.symbol(feature, Areas.WreckND, feature.type, null); 344 } 345 } else { 346 Renderer.symbol(feature, Areas.WreckND, feature.type, null); 347 } 348 } 349 private static void gauges(Feature feature) { 350 } 351 private static void lights(Feature feature) { 352 switch (feature.type) { 353 case LITMAJ: 354 Renderer.symbol(feature, Beacons.LightMajor, feature.type, null); 355 break; 356 case LITMIN: 357 case LIGHTS: 358 Renderer.symbol(feature, Beacons.LightMinor, feature.type, null); 359 break; 360 } 361 } 362 private static void signals(Feature feature) { 363 switch (feature.type) { 364 case SISTAT: 365 case SISTAW: 366 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 367 break; 368 case RDOSTA: 369 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 370 break; 371 case RADSTA: 372 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 373 break; 374 case PILBOP: 375 Renderer.symbol(feature, Harbours.SignalStation, feature.type, null); 376 break; 377 case CGUSTA: 378 Renderer.symbol(feature, Harbours.CoastGStation, feature.type, null); 379 break; 380 case RSCSTA: 381 Renderer.symbol(feature, Harbours.RescueStation, feature.type, null); 382 break; 383 } 384 } 385 private static void floats(Feature feature) { 386 switch (feature.type) { 387 case LITVES: 388 Renderer.symbol(feature, Buoys.Super, feature.type, null); 389 break; 390 case LITFLT: 391 Renderer.symbol(feature, Buoys.Float, feature.type, null); 392 break; 393 case BOYINB: 394 Renderer.symbol(feature, Buoys.Storage, feature.type, null); 395 break; 396 } 397 if (feature.objs.get(Obj.TOPMAR) != null) 398 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Floats); 399 } 400 private static void platforms(Feature feature) { 401 Renderer.symbol(feature, Landmarks.Platform, feature.type, null); 402 } 403 private static void buoys(Feature feature) { 404 BoySHP shape = (BoySHP) Renderer.getAttVal(feature, feature.type, 0, Att.BOYSHP); 405 Renderer.symbol(feature, Buoys.Shapes.get(shape), feature.type, null); 406 if (feature.objs.get(Obj.TOPMAR) != null) { 407 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Buoys.get(shape)); 408 } 409 } 410 private static void beacons(Feature feature) { 411 BcnSHP shape = (BcnSHP) Renderer.getAttVal(feature, feature.type, 0, Att.BCNSHP); 412 if (((shape == BcnSHP.BCN_PRCH) || (shape == BcnSHP.BCN_WTHY)) && (feature.type == Obj.BCNLAT)) { 413 CatLAM cat = (CatLAM) Renderer.getAttVal(feature, feature.type, 0, Att.CATLAM); 414 switch (cat) { 415 case LAM_PORT: 416 if (shape == BcnSHP.BCN_PRCH) 417 Renderer.symbol(feature, Beacons.PerchPort, feature.type, null); 418 else 419 Renderer.symbol(feature, Beacons.WithyPort, feature.type, null); 420 break; 421 case LAM_STBD: 422 if (shape == BcnSHP.BCN_PRCH) 423 Renderer.symbol(feature, Beacons.PerchStarboard, feature.type, null); 424 else 425 Renderer.symbol(feature, Beacons.WithyStarboard, feature.type, null); 426 break; 427 default: 428 Renderer.symbol(feature, Beacons.Stake, feature.type, null); 429 } 430 } else { 431 Renderer.symbol(feature, Beacons.Shapes.get(shape), feature.type, null); 207 432 if (feature.objs.get(Obj.TOPMAR) != null) 208 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Floats); 209 } 210 } 211 private static void platforms(ArrayList<Feature> features) { 212 for (Feature feature : features) { 213 Renderer.symbol(feature, Landmarks.Platform, feature.type, null); 214 } 215 } 216 private static void buoys(ArrayList<Feature> features) { 217 for (Feature feature : features) { 218 BoySHP shape = (BoySHP) Renderer.getAttVal(feature, feature.type, 0, Att.BOYSHP); 219 Renderer.symbol(feature, Buoys.Shapes.get(shape), feature.type, null); 220 if (feature.objs.get(Obj.TOPMAR) != null) { 221 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Buoys.get(shape)); 222 } 223 } 224 } 225 private static void beacons(ArrayList<Feature> features) { 226 for (Feature feature : features) { 227 BcnSHP shape = (BcnSHP) Renderer.getAttVal(feature, feature.type, 0, Att.BCNSHP); 228 if (((shape == BcnSHP.BCN_PRCH) || (shape == BcnSHP.BCN_WTHY)) && (feature.type == Obj.BCNLAT)) { 229 CatLAM cat = (CatLAM) Renderer.getAttVal(feature, feature.type, 0, Att.CATLAM); 230 switch (cat) { 231 case LAM_PORT: 232 if (shape == BcnSHP.BCN_PRCH) 233 Renderer.symbol(feature, Beacons.PerchPort, feature.type, null); 234 else 235 Renderer.symbol(feature, Beacons.WithyPort, feature.type, null); 236 break; 237 case LAM_STBD: 238 if (shape == BcnSHP.BCN_PRCH) 239 Renderer.symbol(feature, Beacons.PerchStarboard, feature.type, null); 240 else 241 Renderer.symbol(feature, Beacons.WithyStarboard, feature.type, null); 242 break; 243 default: 244 Renderer.symbol(feature, Beacons.Stake, feature.type, null); 245 } 246 } else { 247 Renderer.symbol(feature, Beacons.Shapes.get(shape), feature.type, null); 248 if (feature.objs.get(Obj.TOPMAR) != null) 249 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Beacons); 250 } 433 Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), Obj.TOPMAR, Topmarks.Beacons); 251 434 } 252 435 } -
applications/editors/josm/plugins/smed2/src/seamap/SeaMap.java
r29184 r29198 38 38 39 39 public class AttMap extends EnumMap<Att, AttItem> { 40 private static final long serialVersionUID = 1L;41 40 public AttMap() { 42 41 super(Att.class); … … 45 44 46 45 public class ObjTab extends HashMap<Integer, AttMap> { 47 private static final long serialVersionUID = 1L;48 46 public ObjTab() { 49 47 super(); … … 52 50 53 51 public class ObjMap extends EnumMap<Obj, ObjTab> { 54 private static final long serialVersionUID = 1L;55 52 public ObjMap() { 56 53 super(Obj.class); … … 59 56 60 57 public class NodeTab extends HashMap<Long, Coord> { 61 private static final long serialVersionUID = 1L;62 58 public NodeTab() { 63 59 super(); … … 66 62 67 63 public class WayTab extends HashMap<Long, ArrayList<Long>> { 68 private static final long serialVersionUID = 1L;69 64 public WayTab() { 70 65 super(); … … 73 68 74 69 public class FtrMap extends EnumMap<Obj, ArrayList<Feature>> { 75 private static final long serialVersionUID = 1L;76 70 public FtrMap() { 77 71 super(Obj.class); … … 80 74 81 75 public class FtrTab extends HashMap<Long, Feature> { 82 private static final long serialVersionUID = 1L;83 76 public FtrTab() { 84 77 super(); … … 131 124 132 125 public void addNode(long id, double lat, double lon) { 133 nodes.put(id, new Coord( lat, lon));126 nodes.put(id, new Coord(Math.toRadians(lat), Math.toRadians(lon))); 134 127 feature = new Feature(); 135 128 feature.refs = id; … … 138 131 139 132 public void moveNode(long id, double lat, double lon) { 140 nodes.put(id, new Coord( lat, lon));133 nodes.put(id, new Coord(Math.toRadians(lat), Math.toRadians(lon))); 141 134 } 142 135
Note:
See TracChangeset
for help on using the changeset viewer.
