Changeset 29209 in osm for applications/editors/josm/plugins/smed2/src/s57/S57obj.java
- Timestamp:
- 2013-01-27T17:08:57+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/smed2/src/s57/S57obj.java
r29049 r29209 2 2 3 3 import java.util.EnumMap; 4 import java.util.HashMap; 5 import java.util.Map; 4 6 5 7 public class S57obj { … … 62 64 ObjS57.put(Obj.$COMPS,503); ObjS57.put(Obj.$TEXTS,504); 63 65 } 66 64 67 private static final EnumMap<Obj, Integer> ObjIENC = new EnumMap<Obj, Integer>(Obj.class); 65 68 static { … … 78 81 } 79 82 80 private static final EnumMap<Obj, String> ObjSTR= newEnumMap<Obj, String>(Obj.class);83 private static final HashMap<Integer, Obj> S57Obj = new HashMap<Integer, Obj>(); 81 84 static { 82 ObjSTR.put(Obj.UNKOBJ, ""); ObjSTR.put(Obj.ADMARE, "administrative_area"); ObjSTR.put(Obj.AIRARE, "airfield"); ObjSTR.put(Obj.ACHBRT, "anchor_berth"); 83 ObjSTR.put(Obj.ACHARE, "anchorage"); ObjSTR.put(Obj.BCNCAR, "beacon_cardinal"); ObjSTR.put(Obj.BCNISD, "beacon_isolated_danger"); 84 ObjSTR.put(Obj.BCNLAT, "beacon_lateral"); ObjSTR.put(Obj.BCNSAW, "beacon_safe_water"); ObjSTR.put(Obj.BCNSPP, "beacon_special_purpose"); 85 ObjSTR.put(Obj.BERTHS, "berth"); ObjSTR.put(Obj.BRIDGE, "bridge"); ObjSTR.put(Obj.BUISGL, "building"); ObjSTR.put(Obj.BUAARE, "built-up_area"); 86 ObjSTR.put(Obj.BOYCAR, "buoy_cardinal"); ObjSTR.put(Obj.BOYINB, "buoy_installation"); ObjSTR.put(Obj.BOYISD, "buoy_isolated_danger"); 87 ObjSTR.put(Obj.BOYLAT, "buoy_lateral"); ObjSTR.put(Obj.BOYSAW, "buoy_safe_water"); ObjSTR.put(Obj.BOYSPP, "buoy_special_purpose"); 88 ObjSTR.put(Obj.CBLARE, "cable_area"); ObjSTR.put(Obj.CBLOHD, "cable_overhead"); ObjSTR.put(Obj.CBLSUB, "cable_submarine"); ObjSTR.put(Obj.CANALS, "canal"); 89 ObjSTR.put(Obj.CANBNK, "canal_bank"); ObjSTR.put(Obj.CTSARE, "cargo_area"); ObjSTR.put(Obj.CAUSWY, "causeway"); ObjSTR.put(Obj.CTNARE, "caution_area"); 90 ObjSTR.put(Obj.CHKPNT, "checkpoint"); ObjSTR.put(Obj.CGUSTA, "coastguard_station"); ObjSTR.put(Obj.COALNE, "coastline"); ObjSTR.put(Obj.CONZNE, "contiguous_zone"); 91 ObjSTR.put(Obj.COSARE, "continental_shelf"); ObjSTR.put(Obj.CTRPNT, "control_point"); ObjSTR.put(Obj.CONVYR, "conveyor"); ObjSTR.put(Obj.CRANES, "crane"); 92 ObjSTR.put(Obj.CURENT, "current"); ObjSTR.put(Obj.CUSZNE, "custom_zone"); ObjSTR.put(Obj.DAMCON, "dam"); ObjSTR.put(Obj.DAYMAR, "daymark"); 93 ObjSTR.put(Obj.DWRTCL, "deep_water_route_centreline"); ObjSTR.put(Obj.DWRTPT, "deep_water_route"); ObjSTR.put(Obj.DEPARE, "depth_area"); 94 ObjSTR.put(Obj.DEPCNT, "depth_contour"); ObjSTR.put(Obj.DISMAR, "distance_mark"); ObjSTR.put(Obj.DOCARE, "dock"); ObjSTR.put(Obj.DRGARE, "dredged_area"); 95 ObjSTR.put(Obj.DRYDOC, "dry_dock"); ObjSTR.put(Obj.DMPGRD, "dumping_ground"); ObjSTR.put(Obj.DYKCON, "dyke"); ObjSTR.put(Obj.EXEZNE, "exclusive_economic_zone"); 96 ObjSTR.put(Obj.FAIRWY, "fairway"); ObjSTR.put(Obj.FNCLNE, "wall"); ObjSTR.put(Obj.FERYRT, "ferry_route"); ObjSTR.put(Obj.FSHZNE, "fishery_zone"); 97 ObjSTR.put(Obj.FSHFAC, "fishing_facility"); ObjSTR.put(Obj.FSHGRD, "fishing_ground"); ObjSTR.put(Obj.FLODOC, "floating_dock"); ObjSTR.put(Obj.FOGSIG, "fog_signal"); 98 ObjSTR.put(Obj.FORSTC, "fortified_structure"); ObjSTR.put(Obj.FRPARE, "free_port_area"); ObjSTR.put(Obj.GATCON, "gate"); ObjSTR.put(Obj.GRIDRN, "gridiron"); 99 ObjSTR.put(Obj.HRBARE, "harbour_area"); ObjSTR.put(Obj.HRBFAC, "harbour"); ObjSTR.put(Obj.HULKES, "hulk"); ObjSTR.put(Obj.ICEARE, "ice_area"); 100 ObjSTR.put(Obj.ICNARE, "incineration_zone"); ObjSTR.put(Obj.ISTZNE, "inshore_traffic_zone"); ObjSTR.put(Obj.LAKARE, "lake"); ObjSTR.put(Obj.LAKSHR, "lake_shore"); 101 ObjSTR.put(Obj.LNDARE, "land_area"); ObjSTR.put(Obj.LNDELV, "land_elevation"); ObjSTR.put(Obj.LNDRGN, "land_region"); ObjSTR.put(Obj.LNDMRK, "landmark"); 102 ObjSTR.put(Obj.LIGHTS, "light"); ObjSTR.put(Obj.LITFLT, "light_float"); ObjSTR.put(Obj.LITVES, "light_vessel"); ObjSTR.put(Obj.LOCMAG, "local_magnetic_anomaly"); 103 ObjSTR.put(Obj.LOKBSN, "lock_basin"); ObjSTR.put(Obj.LOGPON, "log_pond"); ObjSTR.put(Obj.MAGVAR, "magnetic_variation"); ObjSTR.put(Obj.MARCUL, "marine_farm"); 104 ObjSTR.put(Obj.MIPARE, "military_area"); ObjSTR.put(Obj.MORFAC, "mooring"); ObjSTR.put(Obj.NAVLNE, "navigation_line"); ObjSTR.put(Obj.OBSTRN, "obstruction"); 105 ObjSTR.put(Obj.OFSPLF, "platform"); ObjSTR.put(Obj.OSPARE, "production_area"); ObjSTR.put(Obj.OILBAR, "oil_barrier"); ObjSTR.put(Obj.PILPNT, "pile"); 106 ObjSTR.put(Obj.PILBOP, "pilot_boarding"); ObjSTR.put(Obj.PIPARE, "pipeline_area"); ObjSTR.put(Obj.PIPOHD, "pipeline_overhead"); ObjSTR.put(Obj.PIPSOL, "pipeline_submarine"); 107 ObjSTR.put(Obj.PONTON, "pontoon"); ObjSTR.put(Obj.PRCARE, "precautionary_area"); ObjSTR.put(Obj.PRDARE, "land_production_area");ObjSTR.put(Obj.PYLONS, "pylon"); 108 ObjSTR.put(Obj.RADLNE, "radar_line"); ObjSTR.put(Obj.RADRNG, "radar_range"); ObjSTR.put(Obj.RADRFL, "radar_reflector"); ObjSTR.put(Obj.RADSTA, "radar_station"); 109 ObjSTR.put(Obj.RTPBCN, "radar_transponder"); ObjSTR.put(Obj.RDOCAL, "calling-in_point"); ObjSTR.put(Obj.RDOSTA, "radio_station"); ObjSTR.put(Obj.RAILWY, "railway"); 110 ObjSTR.put(Obj.RAPIDS, "rapids"); ObjSTR.put(Obj.RCRTCL, "recommended_route_centreline"); ObjSTR.put(Obj.RECTRC, "recommended_track"); 111 ObjSTR.put(Obj.RCTLPT, "recommended_traffic_lane"); ObjSTR.put(Obj.RSCSTA, "rescue_station"); ObjSTR.put(Obj.RESARE, "restricted_area"); 112 ObjSTR.put(Obj.RETRFL, "retro_reflector"); ObjSTR.put(Obj.RIVERS, "river"); ObjSTR.put(Obj.RIVBNK, "river_bank"); ObjSTR.put(Obj.ROADWY, "road"); 113 ObjSTR.put(Obj.RUNWAY, "runway"); ObjSTR.put(Obj.SNDWAV, "sand_waves"); ObjSTR.put(Obj.SEAARE, "sea_area"); ObjSTR.put(Obj.SPLARE, "seaplane_landing_area"); 114 ObjSTR.put(Obj.SBDARE, "seabed_area"); ObjSTR.put(Obj.SLCONS, "shoreline_construction"); ObjSTR.put(Obj.SISTAT, "signal_station_traffic"); 115 ObjSTR.put(Obj.SISTAW, "signal_station_warning"); ObjSTR.put(Obj.SILTNK, "tank"); ObjSTR.put(Obj.SLOTOP, "slope_topline"); ObjSTR.put(Obj.SLOGRD, "sloping_ground"); 116 ObjSTR.put(Obj.SMCFAC, "small_craft_facility"); ObjSTR.put(Obj.SOUNDG, "sounding"); ObjSTR.put(Obj.SPRING, "spring"); ObjSTR.put(Obj.SQUARE, "square"); 117 ObjSTR.put(Obj.STSLNE, "territorial_baseline"); ObjSTR.put(Obj.SUBTLN, "submarine_transit_lane"); ObjSTR.put(Obj.SWPARE, "swept_area"); 118 ObjSTR.put(Obj.TESARE, "territorial_area"); ObjSTR.put(Obj.TS_PRH, ""); ObjSTR.put(Obj.TS_PNH, ""); ObjSTR.put(Obj.TS_PAD, ""); ObjSTR.put(Obj.TS_TIS, ""); 119 ObjSTR.put(Obj.T_HMON, ""); ObjSTR.put(Obj.T_NHMN, ""); ObjSTR.put(Obj.T_TIMS, ""); ObjSTR.put(Obj.TIDEWY, "tideway"); ObjSTR.put(Obj.TOPMAR, "topmark"); 120 ObjSTR.put(Obj.TSELNE, "separation_line"); ObjSTR.put(Obj.TSSBND, "separation_boundary"); ObjSTR.put(Obj.TSSCRS, "separation_crossing"); 121 ObjSTR.put(Obj.TSSLPT, "separation_lane"); ObjSTR.put(Obj.TSSRON, "separation_roundabout"); ObjSTR.put(Obj.TSEZNE, "separation_zone"); ObjSTR.put(Obj.TUNNEL, "tunnel"); 122 ObjSTR.put(Obj.TWRTPT, "two-way_route"); ObjSTR.put(Obj.UWTROC, "rock"); ObjSTR.put(Obj.UNSARE, "unsurveyed_area"); ObjSTR.put(Obj.VEGATN, "vegetation"); 123 ObjSTR.put(Obj.WATTUR, "water_turbulence"); ObjSTR.put(Obj.WATFAL, "waterfall"); ObjSTR.put(Obj.WEDKLP, "weed"); ObjSTR.put(Obj.WRECKS, "wreck"); 124 ObjSTR.put(Obj.TS_FEB, "tidal_stream"); ObjSTR.put(Obj.M_ACCY, ""); ObjSTR.put(Obj.M_CSCL, ""); ObjSTR.put(Obj.M_COVR, "coverage"); ObjSTR.put(Obj.M_HDAT, ""); 125 ObjSTR.put(Obj.M_HOPA, ""); ObjSTR.put(Obj.M_NPUB, ""); ObjSTR.put(Obj.M_NSYS, ""); ObjSTR.put(Obj.M_PROD, ""); ObjSTR.put(Obj.M_QUAL, "data_quality"); 126 ObjSTR.put(Obj.M_SDAT, ""); ObjSTR.put(Obj.M_SREL, ""); ObjSTR.put(Obj.M_UNIT, ""); ObjSTR.put(Obj.M_VDAT, ""); ObjSTR.put(Obj.C_AGGR, ""); ObjSTR.put(Obj.C_ASSO, ""); 127 ObjSTR.put(Obj.C_STAC, ""); ObjSTR.put(Obj.$AREAS, ""); ObjSTR.put(Obj.$LINES, ""); ObjSTR.put(Obj.$CSYMB, ""); ObjSTR.put(Obj.$COMPS, ""); ObjSTR.put(Obj.$TEXTS, ""); 128 ObjSTR.put(Obj.NOTMRK, "notice"); ObjSTR.put(Obj.WTWAXS, "waterway_axis"); ObjSTR.put(Obj.WTWPRF, "waterway_profile"); ObjSTR.put(Obj.BRGARE, "bridge_area"); 129 ObjSTR.put(Obj.BUNSTA, "bunker_station"); ObjSTR.put(Obj.COMARE, "communication_area"); ObjSTR.put(Obj.HRBBSN, "harbour_basin"); ObjSTR.put(Obj.LOKARE, "lock_area"); 130 ObjSTR.put(Obj.LKBSPT, "lock_basin_part"); ObjSTR.put(Obj.PRTARE, "port_area"); ObjSTR.put(Obj.BCNWTW, "beacon_waterway"); ObjSTR.put(Obj.BOYWTW, "buoy_waterway"); 131 ObjSTR.put(Obj.REFDMP, "refuse_dump"); ObjSTR.put(Obj.RTPLPT, "route_planning_point"); ObjSTR.put(Obj.TERMNL, "terminal"); ObjSTR.put(Obj.TRNBSN, "turning_basin"); 132 ObjSTR.put(Obj.WTWARE, "waterway_area"); ObjSTR.put(Obj.WTWGAG, "waterway_gauge"); ObjSTR.put(Obj.TISDGE, "time_schedule"); ObjSTR.put(Obj.VEHTRF, "vehicle_transfer"); 133 ObjSTR.put(Obj.EXCNST, "exceptional_structure"); ObjSTR.put(Obj.LG_SDM, ""); ObjSTR.put(Obj.LG_VSP, ""); ObjSTR.put(Obj.LITMAJ, "light_major"); ObjSTR.put(Obj.LITMIN, "light_minor"); 85 for (Map.Entry<Obj, Integer> entry : ObjS57.entrySet()) { 86 S57Obj.put(entry.getValue(), entry.getKey()); 87 } 88 for (Map.Entry<Obj, Integer> entry : ObjIENC.entrySet()) { 89 S57Obj.put(entry.getValue(), entry.getKey()); 90 } 134 91 } 135 136 public static String decodeType(Integer type) { // Convert S57 feature code to OSeaM object string 137 String str = ObjSTR.get(lookupType(type)); 138 return str != null ? str : ""; 92 93 private static final EnumMap<Obj, String> ObjStr = new EnumMap<Obj, String>(Obj.class); 94 static { 95 ObjStr.put(Obj.UNKOBJ, ""); ObjStr.put(Obj.ADMARE, "administrative_area"); ObjStr.put(Obj.AIRARE, "airfield"); ObjStr.put(Obj.ACHBRT, "anchor_berth"); 96 ObjStr.put(Obj.ACHARE, "anchorage"); ObjStr.put(Obj.BCNCAR, "beacon_cardinal"); ObjStr.put(Obj.BCNISD, "beacon_isolated_danger"); 97 ObjStr.put(Obj.BCNLAT, "beacon_lateral"); ObjStr.put(Obj.BCNSAW, "beacon_safe_water"); ObjStr.put(Obj.BCNSPP, "beacon_special_purpose"); 98 ObjStr.put(Obj.BERTHS, "berth"); ObjStr.put(Obj.BRIDGE, "bridge"); ObjStr.put(Obj.BUISGL, "building"); ObjStr.put(Obj.BUAARE, "built-up_area"); 99 ObjStr.put(Obj.BOYCAR, "buoy_cardinal"); ObjStr.put(Obj.BOYINB, "buoy_installation"); ObjStr.put(Obj.BOYISD, "buoy_isolated_danger"); 100 ObjStr.put(Obj.BOYLAT, "buoy_lateral"); ObjStr.put(Obj.BOYSAW, "buoy_safe_water"); ObjStr.put(Obj.BOYSPP, "buoy_special_purpose"); 101 ObjStr.put(Obj.CBLARE, "cable_area"); ObjStr.put(Obj.CBLOHD, "cable_overhead"); ObjStr.put(Obj.CBLSUB, "cable_submarine"); ObjStr.put(Obj.CANALS, "canal"); 102 ObjStr.put(Obj.CANBNK, "canal_bank"); ObjStr.put(Obj.CTSARE, "cargo_area"); ObjStr.put(Obj.CAUSWY, "causeway"); ObjStr.put(Obj.CTNARE, "caution_area"); 103 ObjStr.put(Obj.CHKPNT, "checkpoint"); ObjStr.put(Obj.CGUSTA, "coastguard_station"); ObjStr.put(Obj.COALNE, "coastline"); ObjStr.put(Obj.CONZNE, "contiguous_zone"); 104 ObjStr.put(Obj.COSARE, "continental_shelf"); ObjStr.put(Obj.CTRPNT, "control_point"); ObjStr.put(Obj.CONVYR, "conveyor"); ObjStr.put(Obj.CRANES, "crane"); 105 ObjStr.put(Obj.CURENT, "current"); ObjStr.put(Obj.CUSZNE, "custom_zone"); ObjStr.put(Obj.DAMCON, "dam"); ObjStr.put(Obj.DAYMAR, "daymark"); 106 ObjStr.put(Obj.DWRTCL, "deep_water_route_centreline"); ObjStr.put(Obj.DWRTPT, "deep_water_route"); ObjStr.put(Obj.DEPARE, "depth_area"); 107 ObjStr.put(Obj.DEPCNT, "depth_contour"); ObjStr.put(Obj.DISMAR, "distance_mark"); ObjStr.put(Obj.DOCARE, "dock"); ObjStr.put(Obj.DRGARE, "dredged_area"); 108 ObjStr.put(Obj.DRYDOC, "dry_dock"); ObjStr.put(Obj.DMPGRD, "dumping_ground"); ObjStr.put(Obj.DYKCON, "dyke"); ObjStr.put(Obj.EXEZNE, "exclusive_economic_zone"); 109 ObjStr.put(Obj.FAIRWY, "fairway"); ObjStr.put(Obj.FNCLNE, "wall"); ObjStr.put(Obj.FERYRT, "ferry_route"); ObjStr.put(Obj.FSHZNE, "fishery_zone"); 110 ObjStr.put(Obj.FSHFAC, "fishing_facility"); ObjStr.put(Obj.FSHGRD, "fishing_ground"); ObjStr.put(Obj.FLODOC, "floating_dock"); ObjStr.put(Obj.FOGSIG, "fog_signal"); 111 ObjStr.put(Obj.FORSTC, "fortified_structure"); ObjStr.put(Obj.FRPARE, "free_port_area"); ObjStr.put(Obj.GATCON, "gate"); ObjStr.put(Obj.GRIDRN, "gridiron"); 112 ObjStr.put(Obj.HRBARE, "harbour_area"); ObjStr.put(Obj.HRBFAC, "harbour"); ObjStr.put(Obj.HULKES, "hulk"); ObjStr.put(Obj.ICEARE, "ice_area"); 113 ObjStr.put(Obj.ICNARE, "incineration_zone"); ObjStr.put(Obj.ISTZNE, "inshore_traffic_zone"); ObjStr.put(Obj.LAKARE, "lake"); ObjStr.put(Obj.LAKSHR, "lake_shore"); 114 ObjStr.put(Obj.LNDARE, "land_area"); ObjStr.put(Obj.LNDELV, "land_elevation"); ObjStr.put(Obj.LNDRGN, "land_region"); ObjStr.put(Obj.LNDMRK, "landmark"); 115 ObjStr.put(Obj.LIGHTS, "light"); ObjStr.put(Obj.LITFLT, "light_float"); ObjStr.put(Obj.LITVES, "light_vessel"); ObjStr.put(Obj.LOCMAG, "local_magnetic_anomaly"); 116 ObjStr.put(Obj.LOKBSN, "lock_basin"); ObjStr.put(Obj.LOGPON, "log_pond"); ObjStr.put(Obj.MAGVAR, "magnetic_variation"); ObjStr.put(Obj.MARCUL, "marine_farm"); 117 ObjStr.put(Obj.MIPARE, "military_area"); ObjStr.put(Obj.MORFAC, "mooring"); ObjStr.put(Obj.NAVLNE, "navigation_line"); ObjStr.put(Obj.OBSTRN, "obstruction"); 118 ObjStr.put(Obj.OFSPLF, "platform"); ObjStr.put(Obj.OSPARE, "production_area"); ObjStr.put(Obj.OILBAR, "oil_barrier"); ObjStr.put(Obj.PILPNT, "pile"); 119 ObjStr.put(Obj.PILBOP, "pilot_boarding"); ObjStr.put(Obj.PIPARE, "pipeline_area"); ObjStr.put(Obj.PIPOHD, "pipeline_overhead"); ObjStr.put(Obj.PIPSOL, "pipeline_submarine"); 120 ObjStr.put(Obj.PONTON, "pontoon"); ObjStr.put(Obj.PRCARE, "precautionary_area"); ObjStr.put(Obj.PRDARE, "land_production_area");ObjStr.put(Obj.PYLONS, "pylon"); 121 ObjStr.put(Obj.RADLNE, "radar_line"); ObjStr.put(Obj.RADRNG, "radar_range"); ObjStr.put(Obj.RADRFL, "radar_reflector"); ObjStr.put(Obj.RADSTA, "radar_station"); 122 ObjStr.put(Obj.RTPBCN, "radar_transponder"); ObjStr.put(Obj.RDOCAL, "calling-in_point"); ObjStr.put(Obj.RDOSTA, "radio_station"); ObjStr.put(Obj.RAILWY, "railway"); 123 ObjStr.put(Obj.RAPIDS, "rapids"); ObjStr.put(Obj.RCRTCL, "recommended_route_centreline"); ObjStr.put(Obj.RECTRC, "recommended_track"); 124 ObjStr.put(Obj.RCTLPT, "recommended_traffic_lane"); ObjStr.put(Obj.RSCSTA, "rescue_station"); ObjStr.put(Obj.RESARE, "restricted_area"); 125 ObjStr.put(Obj.RETRFL, "retro_reflector"); ObjStr.put(Obj.RIVERS, "river"); ObjStr.put(Obj.RIVBNK, "river_bank"); ObjStr.put(Obj.ROADWY, "road"); 126 ObjStr.put(Obj.RUNWAY, "runway"); ObjStr.put(Obj.SNDWAV, "sand_waves"); ObjStr.put(Obj.SEAARE, "sea_area"); ObjStr.put(Obj.SPLARE, "seaplane_landing_area"); 127 ObjStr.put(Obj.SBDARE, "seabed_area"); ObjStr.put(Obj.SLCONS, "shoreline_construction"); ObjStr.put(Obj.SISTAT, "signal_station_traffic"); 128 ObjStr.put(Obj.SISTAW, "signal_station_warning"); ObjStr.put(Obj.SILTNK, "tank"); ObjStr.put(Obj.SLOTOP, "slope_topline"); ObjStr.put(Obj.SLOGRD, "sloping_ground"); 129 ObjStr.put(Obj.SMCFAC, "small_craft_facility"); ObjStr.put(Obj.SOUNDG, "sounding"); ObjStr.put(Obj.SPRING, "spring"); ObjStr.put(Obj.SQUARE, "square"); 130 ObjStr.put(Obj.STSLNE, "territorial_baseline"); ObjStr.put(Obj.SUBTLN, "submarine_transit_lane"); ObjStr.put(Obj.SWPARE, "swept_area"); 131 ObjStr.put(Obj.TESARE, "territorial_area"); ObjStr.put(Obj.TS_PRH, ""); ObjStr.put(Obj.TS_PNH, ""); ObjStr.put(Obj.TS_PAD, ""); ObjStr.put(Obj.TS_TIS, ""); 132 ObjStr.put(Obj.T_HMON, ""); ObjStr.put(Obj.T_NHMN, ""); ObjStr.put(Obj.T_TIMS, ""); ObjStr.put(Obj.TIDEWY, "tideway"); ObjStr.put(Obj.TOPMAR, "topmark"); 133 ObjStr.put(Obj.TSELNE, "separation_line"); ObjStr.put(Obj.TSSBND, "separation_boundary"); ObjStr.put(Obj.TSSCRS, "separation_crossing"); 134 ObjStr.put(Obj.TSSLPT, "separation_lane"); ObjStr.put(Obj.TSSRON, "separation_roundabout"); ObjStr.put(Obj.TSEZNE, "separation_zone"); ObjStr.put(Obj.TUNNEL, "tunnel"); 135 ObjStr.put(Obj.TWRTPT, "two-way_route"); ObjStr.put(Obj.UWTROC, "rock"); ObjStr.put(Obj.UNSARE, "unsurveyed_area"); ObjStr.put(Obj.VEGATN, "vegetation"); 136 ObjStr.put(Obj.WATTUR, "water_turbulence"); ObjStr.put(Obj.WATFAL, "waterfall"); ObjStr.put(Obj.WEDKLP, "weed"); ObjStr.put(Obj.WRECKS, "wreck"); 137 ObjStr.put(Obj.TS_FEB, "tidal_stream"); ObjStr.put(Obj.M_ACCY, ""); ObjStr.put(Obj.M_CSCL, ""); ObjStr.put(Obj.M_COVR, "coverage"); ObjStr.put(Obj.M_HDAT, ""); 138 ObjStr.put(Obj.M_HOPA, ""); ObjStr.put(Obj.M_NPUB, ""); ObjStr.put(Obj.M_NSYS, ""); ObjStr.put(Obj.M_PROD, ""); ObjStr.put(Obj.M_QUAL, "data_quality"); 139 ObjStr.put(Obj.M_SDAT, ""); ObjStr.put(Obj.M_SREL, ""); ObjStr.put(Obj.M_UNIT, ""); ObjStr.put(Obj.M_VDAT, ""); ObjStr.put(Obj.C_AGGR, ""); ObjStr.put(Obj.C_ASSO, ""); 140 ObjStr.put(Obj.C_STAC, ""); ObjStr.put(Obj.$AREAS, ""); ObjStr.put(Obj.$LINES, ""); ObjStr.put(Obj.$CSYMB, ""); ObjStr.put(Obj.$COMPS, ""); ObjStr.put(Obj.$TEXTS, ""); 141 ObjStr.put(Obj.NOTMRK, "notice"); ObjStr.put(Obj.WTWAXS, "waterway_axis"); ObjStr.put(Obj.WTWPRF, "waterway_profile"); ObjStr.put(Obj.BRGARE, "bridge_area"); 142 ObjStr.put(Obj.BUNSTA, "bunker_station"); ObjStr.put(Obj.COMARE, "communication_area"); ObjStr.put(Obj.HRBBSN, "harbour_basin"); ObjStr.put(Obj.LOKARE, "lock_area"); 143 ObjStr.put(Obj.LKBSPT, "lock_basin_part"); ObjStr.put(Obj.PRTARE, "port_area"); ObjStr.put(Obj.BCNWTW, "beacon_waterway"); ObjStr.put(Obj.BOYWTW, "buoy_waterway"); 144 ObjStr.put(Obj.REFDMP, "refuse_dump"); ObjStr.put(Obj.RTPLPT, "route_planning_point"); ObjStr.put(Obj.TERMNL, "terminal"); ObjStr.put(Obj.TRNBSN, "turning_basin"); 145 ObjStr.put(Obj.WTWARE, "waterway_area"); ObjStr.put(Obj.WTWGAG, "waterway_gauge"); ObjStr.put(Obj.TISDGE, "time_schedule"); ObjStr.put(Obj.VEHTRF, "vehicle_transfer"); 146 ObjStr.put(Obj.EXCNST, "exceptional_structure"); ObjStr.put(Obj.LG_SDM, ""); ObjStr.put(Obj.LG_VSP, ""); ObjStr.put(Obj.LITMAJ, "light_major"); ObjStr.put(Obj.LITMIN, "light_minor"); 139 147 } 140 141 public static Integer encodeType(String type) { // Convert OSM object string to S57 feature code 142 if (type != null) { 143 for (Obj obj : ObjSTR.keySet()) { 144 if (ObjSTR.get(obj).equals(type)) { 145 if (ObjS57.get(obj) != null) 146 return ObjS57.get(obj); 147 else if (ObjIENC.get(obj) != null) 148 return ObjIENC.get(obj); 149 else break; 150 } 151 } 148 149 private static final HashMap<String, Obj> StrObj = new HashMap<String, Obj>(); 150 static { 151 for (Map.Entry<Obj, String> entry : ObjStr.entrySet()) { 152 StrObj.put(entry.getValue(), entry.getKey()); 152 153 } 153 return 0; 154 } 155 156 public static Obj decodeType(Integer objl) { // Convert S57 feature code to OSeaM object enumeration 157 Obj obj = S57Obj.get(objl); 158 return (obj != null) ? obj : Obj.UNKOBJ; 154 159 } 155 160 156 161 public static Integer encodeType(Obj type) { // Convert OSM object enumeration to S57 feature code 157 if (ObjS57. get(type) != null)162 if (ObjS57.containsKey(type)) 158 163 return ObjS57.get(type); 159 else if (ObjIENC. get(type) != null)164 else if (ObjIENC.containsKey(type)) 160 165 return ObjIENC.get(type); 161 166 return 0; 162 167 } 163 168 164 public static Obj lookupType(Integer type) { // Convert S57 feature code to OSeaM object enumeration165 if (type < 10000) {166 for (Obj obj : ObjS57.keySet()) {167 if (ObjS57.get(obj).equals(type)) {168 return obj;169 }170 }171 } else {172 for (Obj obj : ObjIENC.keySet()) {173 if (ObjIENC.get(obj).equals(type)) {174 return obj;175 }176 }177 }178 return Obj.UNKOBJ;179 }180 181 169 public static String stringType(Obj type) { // Convert OSeaM object enumeration to OSeaM object string 182 String str = ObjS TR.get(type);170 String str = ObjStr.get(type); 183 171 return str != null ? str : ""; 184 172 } 185 173 186 174 public static Obj enumType(String type) { // Convert OSeaM object string to OSeaM object enumeration 187 for (Obj obj : ObjSTR.keySet()) { 188 if (ObjSTR.get(obj).equals(type)) { 189 return obj; 190 } 191 } 192 return Obj.UNKOBJ; 175 if (StrObj.containsKey(type)) 176 return StrObj.get(type); 177 else 178 return Obj.UNKOBJ; 193 179 } 194 180
Note:
See TracChangeset
for help on using the changeset viewer.