├── CONTRIBUTING.md ├── CustomPresentationLibrary ├── symbols │ ├── pattern │ │ └── ThisFolderIsEmpty.txt │ ├── point │ │ ├── F20_Dolphin.svg │ │ ├── Q9_Square.svg │ │ ├── S1_Ra_transponder_wLight.svg │ │ ├── Q101_Mark.svg │ │ ├── F11_3_Yacht_club.svg │ │ ├── Q130_3_topmark_W.svg │ │ ├── Q9_Arrow_filled.svg │ │ ├── Q9_Cylinder_filled.svg │ │ ├── Q90_Stake_pole.svg │ │ ├── Q130_3_topmark_E.svg │ │ ├── Q9_Rhombus.svg │ │ ├── Q9_Arrow.svg │ │ ├── K13a_Dangerous_underwater_rk.svg │ │ ├── F22_Post.svg │ │ ├── Q130_3_topmark_S.svg │ │ ├── Q130_3_topmark_N.svg │ │ ├── Light_Flare.svg │ │ ├── Q9_Cylinder.svg │ │ ├── Light_Flare_green.svg │ │ ├── Light_Flare_red.svg │ │ ├── Q9_Cross.svg │ │ ├── Q9_Arrow_DownOpen.svg │ │ ├── Q9_Arrow_DownFilled.svg │ │ ├── Light_Flare_white.svg │ │ ├── T1_pilot_boarding_place.svg │ │ ├── Q130_6_Special_mark.svg │ │ ├── L10_Offshore_platform.svg │ │ ├── Q91_Lateral_hand_perch.svg │ │ ├── Q91_Port_hand_perch.svg │ │ ├── F53_Crane.svg │ │ ├── Q83_Beacon_submerged_rock.svg │ │ ├── D22_Vert_clr.svg │ │ ├── B20_Triangulation_point.svg │ │ ├── P1_Light-fixed.svg │ │ ├── E36_Mine.svg │ │ ├── F21_Deviation_dolphin.svg │ │ ├── P1_Light.svg │ │ ├── M40_1b_Radio_calling_in.svg │ │ ├── P1_Light_green.svg │ │ ├── P1_Light_red.svg │ │ ├── P1_Light_white.svg │ │ ├── K29_Wreck_notdangerous.svg │ │ ├── K31_Foul_ground.svg │ │ ├── C32_Mangrove.svg │ │ ├── B22a_Fixed_point.svg │ │ ├── B22_Fixed_point.svg │ │ ├── E25_Windmill.svg │ │ ├── M40_1a_Radio_calling_in.svg │ │ ├── P4_Lighted_beacon.svg │ │ ├── Q26_Super_buoy.svg │ │ ├── F20b_Dolphin.svg │ │ ├── S1_Ra_transponder_bn.svg │ │ ├── Q110a_Beacon_tower.svg │ │ ├── Q80_Beacon.svg │ │ ├── Q21a_Can_buoy.svg │ │ ├── D26_2_SafeVertClearance.svg │ │ ├── Q24_Spar_buoy.svg │ │ ├── Q23a_Pillar_buoy.svg │ │ ├── K11b_Rock_uncovers.svg │ │ ├── Q130_4_Isolated_danger_mark.svg │ │ ├── Q20a_Conical_buoy.svg │ │ ├── E27_Flagpole.svg │ │ ├── E20_Tower.svg │ │ ├── E17_Mosque.svg │ │ ├── N2_2_EntryProhibitedPoint.svg │ │ ├── S5_Radar_conspicuous.svg │ │ ├── R1_Fog_signal.svg │ │ ├── Q110b_Beacon_tower.svg │ │ ├── Q23b_Pillar_buoy.svg │ │ ├── L16_Tanker_mooring.svg │ │ ├── E22_Chimney.svg │ │ ├── F10_Fishing_harbor.svg │ │ ├── Q21b_Can_buoy.svg │ │ ├── F11_2_Yacht_berths.svg │ │ ├── E23_Flare_stack.svg │ │ ├── K1_Obstruction4mm_InDepthRange.svg │ │ ├── Q25a_Barrel_buoy.svg │ │ ├── Q130_5_Safe_water_mark.svg │ │ ├── Q23c_Pillar_buoy.svg │ │ ├── E26_1_Wind_turbine.svg │ │ ├── Q92_Withy_port.svg │ │ ├── Q92_Withy_starboard.svg │ │ ├── Q20b_Conical_buoy.svg │ │ ├── Q30_Light_float.svg │ │ ├── Q31_Light_float.svg │ │ ├── E31_Dish_aerial.svg │ │ ├── K12a_Rock_awash.svg │ │ ├── C31_5_Nipa_palm.svg │ │ ├── Q111_Lattice_beacon.svg │ │ ├── Q130_5_Closed_safe_water_mark.svg │ │ ├── F11_1_Boat_harbor.svg │ │ ├── K12a_Rock_awash2mm.svg │ │ ├── K1_Obstruction4mm_shoal.svg │ │ ├── N21_1_Fishing_ProhibitedPoint.svg │ │ ├── K1_Obstruction6mm_InDepthRange.svg │ │ ├── Q40a_Mooring_buoy.svg │ │ ├── C31_7_Filao.svg │ │ ├── Q25b_Barrel_buoy.svg │ │ ├── E10_Church.svg │ │ ├── Q32_Light_vessel.svg │ │ ├── E28_Radio_mast.svg │ │ ├── K1_Obstruction4mm_InDepthRangeWk.svg │ │ ├── K1_Obstruction6mm_shoal.svg │ │ ├── Q22a_Spherical_buoy.svg │ │ ├── E24_Monument.svg │ │ ├── P63_Flood_light.svg │ │ ├── Q22c_Spherical_buoy.svg │ │ ├── K1_Obstruction4mm_DryWk.svg │ │ ├── K1_Obstruction4mm_shoalWk.svg │ │ ├── K10_LandPoint.svg │ │ ├── K27_SweptDepth.svg │ │ ├── K30_Wreck_safe_clearance.svg │ │ ├── K21_Wreck_uncovers.svg │ │ ├── C31_1_Deciduous_tree.svg │ │ ├── Q42_Ground_tackle.svg │ │ ├── N10_Reported_anchorage.svg │ │ ├── E29_Radio_tower.svg │ │ ├── Q22b_Spherical_buoy.svg │ │ ├── K1_Obstruction6mm_shoal_wiredrag.svg │ │ ├── C31_4_Palm_Tree.svg │ │ ├── C31_8_Eucalypt.svg │ │ ├── K13b_Dangerous_underwater_rk.svg │ │ ├── Q100_cairn.svg │ │ ├── K25_Wreck_danger_no_depth.svg │ │ ├── K1_Obstruction4mm_shoal_wiredrag.svg │ │ ├── C31_3_Conifer_tree.svg │ │ ├── K11a_Rock_uncovers.svg │ │ └── P64_Strip_light.svg │ └── line │ │ ├── L30_Cable.svg │ │ ├── CBLS.svg │ │ ├── N2_1_RestrictedArea.svg │ │ ├── L32_DisusedCable.svg │ │ ├── D15_Embankment.svg │ │ ├── N2_2_EntryProhibitedPoint.svg │ │ ├── C3_Cliffs.svg │ │ ├── L31_1_PowerCable.svg │ │ ├── N21_1_Fishing_ProhibitedPoint.svg │ │ ├── N1_Limit_general.svg │ │ ├── N21_NoFishing.svg │ │ ├── L40_pipeline_supply.svg │ │ ├── L41_pipeline_outfall_intake.svg │ │ ├── D11_Roadway.svg │ │ ├── rock_ledge.svg │ │ ├── N20_NoAnchor.svg │ │ └── N21_1_Fishing_Prohibited.svg └── lua │ ├── ospare01.lua │ ├── sounding.lua │ ├── utilities.lua │ ├── buaare01.lua │ ├── obstnare01.lua │ ├── sbdare01.lua │ ├── convyr02.lua │ ├── pipsol01.lua │ ├── fairwy01.lua │ ├── roadwy01.lua │ ├── coalne01.lua │ ├── navlne01.lua │ ├── cblohd02.lua │ ├── dynamic_light_string.lua │ ├── cblsub02.lua │ ├── slotop01.lua │ ├── depare03.lua │ ├── rectrc01.lua │ ├── bridge02.lua │ ├── unit_conversion.lua │ ├── swpare01.lua │ ├── quapos01.lua │ ├── lndare01.lua │ ├── vertical_clearance.lua │ ├── lndelv01.lua │ └── depare01.lua └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/pattern/ThisFolderIsEmpty.txt: -------------------------------------------------------------------------------- 1 | Pattern folder is empty. If you wish to create a pattern symbol, then the SVG file must be stored in this folder. -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F20_Dolphin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/S1_Ra_transponder_wLight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q101_Mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F11_3_Yacht_club.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_3_topmark_W.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Arrow_filled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Cylinder_filled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q90_Stake_pole.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/L30_Cable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_3_topmark_E.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Rhombus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K13a_Dangerous_underwater_rk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F22_Post.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_3_topmark_S.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_3_topmark_N.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Light_Flare.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Cylinder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Light_Flare_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Light_Flare_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Arrow_DownOpen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q9_Arrow_DownFilled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Light_Flare_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/T1_pilot_boarding_place.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_6_Special_mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/L10_Offshore_platform.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q91_Lateral_hand_perch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q91_Port_hand_perch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F53_Crane.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q83_Beacon_submerged_rock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/CBLS.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/D22_Vert_clr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/B20_Triangulation_point.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P1_Light-fixed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E36_Mine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F21_Deviation_dolphin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P1_Light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/M40_1b_Radio_calling_in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P1_Light_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P1_Light_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P1_Light_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N2_1_RestrictedArea.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K29_Wreck_notdangerous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K31_Foul_ground.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C32_Mangrove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/L32_DisusedCable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/B22a_Fixed_point.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/B22_Fixed_point.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E25_Windmill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/M40_1a_Radio_calling_in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P4_Lighted_beacon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q26_Super_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F20b_Dolphin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/S1_Ra_transponder_bn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q110a_Beacon_tower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q80_Beacon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q21a_Can_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/D26_2_SafeVertClearance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q24_Spar_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/D15_Embankment.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q23a_Pillar_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K11b_Rock_uncovers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_4_Isolated_danger_mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/ospare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | --New function and file at 11.2 (06June2023) 17 | function ospare01(feature, context, symbology) 18 | local collection = symbology.collections[1] 19 | collection:add_symbology_instruction({type='ComplexLine', Name='N1_Limit_general.svg'}) 20 | 21 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q20a_Conical_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/sounding.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | require 'symbolize_depth' 17 | 18 | function sounding(feature, context, symbology) 19 | local depth = tonumber(feature.attributes.Depth) 20 | 21 | if(depth == nil) then 22 | return true 23 | end 24 | 25 | pre_symbolize_depth(feature, depth, symbology) 26 | 27 | return true 28 | end 29 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E27_Flagpole.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E20_Tower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E17_Mosque.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N2_2_EntryProhibitedPoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/N2_2_EntryProhibitedPoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/S5_Radar_conspicuous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/utilities.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function contains(value, array) 17 | if type(value) == 'table' then 18 | for i = 1, #array do 19 | if value[array[i]] then 20 | return true 21 | end 22 | end 23 | else 24 | for i = 1, #array do 25 | if array[i] == value then 26 | return true 27 | end 28 | end 29 | end 30 | 31 | return false 32 | end 33 | 34 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/R1_Fog_signal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q110b_Beacon_tower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q23b_Pillar_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/L16_Tanker_mooring.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/buaare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | --LANDA;brown;0.3500;0.3900;50.000;244;232;193;0.455222 16 | --LANDF;brown;0.4500;0.4200;15.000;154;111; 55;0.289818 17 | -- runs during scenc build, don't expect to change based on display settings 18 | 19 | function buaare01(feature, context, symbology) 20 | local collection = symbology.collections[1] 21 | collection:add_symbology_instruction({type="AreaFill", color='#efd8a3', transparency=0}) 22 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/obstnare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | --New function and file at 11.2 (06June2023) 17 | function obstnare01(feature, context, symbology) 18 | local collection = symbology.collections[1] 19 | collection:add_symbology_instruction({type="AreaFill", color='#d1deef', transparency=0}) -- fill color matches shallow water tint 1 in depare01.lua 20 | collection:add_symbology_instruction({type="SimpleLine", color='#4B4B4B', style='DOT', width=.32}) 21 | 22 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E22_Chimney.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F10_Fishing_harbor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q21b_Can_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F11_2_Yacht_berths.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E23_Flare_stack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_InDepthRange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q25a_Barrel_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_5_Safe_water_mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q23c_Pillar_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E26_1_Wind_turbine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/sbdare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function sbdare01(feature, context, symbology) 17 | local collection = symbology.collections[1] 18 | 19 | local natsur = feature.attributes:get_list_attribute('NATSUR') 20 | local watlev = tonumber(feature.attributes.WATLEV) 21 | if contains(natsur, {9,11,14}) and watlev == 4 then 22 | collection:add_symbology_instruction({type='ComplexLine', Name='rock_ledge.svg'}) 23 | collection.RemoveSymbols = true 24 | collection.DisplayPriority = 5 25 | collection.DisplaySubPriority = 1 26 | end 27 | 28 | return true 29 | end 30 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q92_Withy_port.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q92_Withy_starboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/convyr02.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | function convyr02(feature, context, symbology) 16 | local collection = symbology.collections[1] 17 | 18 | local verclr = feature.attributes.VERCLR 19 | 20 | if(verclr == nil) then 21 | return true 22 | end 23 | 24 | local collection = symbology.collections[1] 25 | local arguments = {label='VERCLR', value=verclr, xoffset=1, yoffset=0} 26 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='vertical_clearance', arguments=arguments}) 27 | 28 | collection.RemoveText = true 29 | 30 | return true 31 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/pipsol01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function set(...) 17 | local ret = {} 18 | for _,k in ipairs({...}) do ret[k] = true end 19 | return ret 20 | end 21 | 22 | function pipsol01(feature, context, symbology) 23 | local collection = symbology.collections[1] 24 | 25 | local catpip = tonumber(feature.attributes.CATPIP) 26 | if set(2,3,4)[catpip] then 27 | collection:add_symbology_instruction({type='ComplexLine', Name='L41_pipeline_outfall_intake.svg'}) 28 | else 29 | collection:add_symbology_instruction({type='ComplexLine', Name='L40_pipeline_supply.svg'}) 30 | end 31 | 32 | return true 33 | end 34 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/C3_Cliffs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q20b_Conical_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q30_Light_float.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q31_Light_float.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E31_Dish_aerial.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K12a_Rock_awash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/fairwy01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | --New at 11.4 16 | function fairwy01(feature, context, symbology) 17 | local collection = symbology.collections[1] 18 | collection:add_symbology_instruction({type = 'ComplexLine', Name = 'N1_1_RecommendedTrack.svg'}) 19 | 20 | local params = 21 | { 22 | type='Text', 23 | hjust='center', 24 | vjust='center', 25 | fontSize=7, 26 | xoffset=3, 27 | yoffset=-3, 28 | color='CHBLK', 29 | textGroup=100, 30 | rotateWithFeature = true, 31 | } 32 | params.text = feature.attributes.OBJNAM 33 | collection:add_symbology_instruction(params) 34 | 35 | return true 36 | end 37 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/L31_1_PowerCable.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_5_Nipa_palm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q111_Lattice_beacon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q130_5_Closed_safe_water_mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/F11_1_Boat_harbor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K12a_Rock_awash2mm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/roadwy01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function set(...) 17 | local ret = {} 18 | for _,k in ipairs({...}) do ret[k] = true end 19 | return ret 20 | end 21 | 22 | function roadwy01(feature, context, symbology) 23 | local collection = symbology.collections[1] 24 | 25 | local catrod = tonumber(feature.attributes.CATROD) 26 | if set(1,2,3)[catrod] then 27 | collection:add_symbology_instruction({type='ComplexLine', Name='D11_Roadway.svg'}) 28 | elseif catrod == 4 then 29 | collection:add_symbology_instruction({type="SimpleLine", color='black', style='DASH', width=.2}) 30 | else 31 | collection:add_symbology_instruction({type="ComplexLine", Name='D11_Roadway.svg'}) 32 | end 33 | 34 | return true 35 | end 36 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_shoal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N21_1_Fishing_ProhibitedPoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/N21_1_Fishing_ProhibitedPoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction6mm_InDepthRange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q40a_Mooring_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_7_Filao.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/coalne01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | require 'quapos01' 16 | 17 | function coalne01(feature, context, symbology) 18 | local prim = feature.prim 19 | local collection = symbology.collections[1] 20 | local catcoa = tonumber(feature.attributes.CATCOA) or 0 21 | 22 | -- if the feature is line 23 | if prim == 2 then 24 | -- if CATCOA value is 6,7,8 or 10, symbolize line segment LS(DASH,1,CSTLN) (see COALNE part in lsymref.dic) 25 | if catcoa == 6 or catcoa == 7 or catcoa == 8 or catcoa == 10 then 26 | collection:add_symbology_instruction({type="SimpleLine", color='CSTLN', style='DASH', width=.32}) 27 | -- if CATCOA doesn't euqal to 6,7,8 or 10, call quapos01 28 | else 29 | return quapos01(feature, context, symbology) 30 | end 31 | end 32 | 33 | return true 34 | end 35 | 36 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q25b_Barrel_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E10_Church.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q32_Light_vessel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E28_Radio_mast.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/navlne01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | --New at 11.4 17 | 18 | function navlne01(feature, context, symbology) 19 | local collection = symbology.collections[1] 20 | local orient = tostring(feature.attributes.ORIENT) 21 | collection:add_symbology_instruction({type="ComplexLine", Name="M1_NavigationLine.svg"}) 22 | 23 | collection.RemoveSymbols = true 24 | 25 | 26 | local params = 27 | { 28 | type='Text', 29 | hjust='right', 30 | vjust='baseline', 31 | fontName='Arial', 32 | fontWeight='medium', 33 | fontSize=10, 34 | xoffset=0, 35 | yoffset=-1, 36 | color='CHBLK', 37 | textGroup=20, 38 | rotateWithFeature=true, 39 | } 40 | params.text = orient..'�' 41 | 42 | collection:add_symbology_instruction(params) 43 | collection.RemoveText = true 44 | 45 | 46 | return true 47 | end 48 | 49 | 50 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_InDepthRangeWk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/cblohd02.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | local function IsNone(value) -- June2023 add function 16 | return (value == nil or #value == 0) 17 | end 18 | 19 | function cblohd02(feature, context, symbology) 20 | local collection = symbology.collections[1] 21 | 22 | local vercsa = feature.attributes.VERCSA 23 | local verclr = feature.attributes.VERCLR 24 | 25 | local arguments = {} 26 | 27 | 28 | 29 | if not IsNone(verclr) then --June2023 fix nil error message. Only verclr would symbolize. 30 | arguments = {label='VERCLR', value=feature.attributes.VERCLR, xoffset=1, yoffset=0} 31 | elseif vercsa then 32 | arguments = {label='VERCSA', value=feature.attributes.VERCSA, xoffset=1, yoffset=0} 33 | end 34 | 35 | if arguments then 36 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='vertical_clearance', arguments=arguments}) 37 | end 38 | 39 | collection.RemoveText = true 40 | 41 | return true 42 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/dynamic_light_string.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | require 'unit_conversion' 16 | 17 | function dynamic_light_string(arguments, context, symbology) 18 | local params = arguments['params'] 19 | local height = tonumber(arguments['height']) or 0 20 | 21 | local collection = symbology.collections[1] 22 | 23 | local units = Units(height, Units.meters) 24 | local format = params.text 25 | 26 | if context.depth_units ~= 1 then 27 | height = math.floor(units:get_value(Units.feet) + .5) -- convert meters to feet 28 | format = '%dft' 29 | else 30 | format = '%dm' 31 | end 32 | 33 | height = math.floor(height + .5) 34 | local height_string = string.format(format, height) 35 | if(height == 0) then 36 | height_string = '' 37 | end 38 | 39 | Debug.log(params.text .. ' ' .. height_string) 40 | 41 | params.text = string.format(params.text, height_string) 42 | 43 | collection:add_symbology_instruction(params) 44 | 45 | return true 46 | end 47 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction6mm_shoal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q22a_Spherical_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/cblsub02.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | function cblsub02(feature, context, symbology) 16 | local collection = symbology.collections[1] 17 | local status = feature.attributes:get_list_attribute('STATUS') --list attribute 18 | local catcbl = tonumber(feature.attributes.CATCBL) --enumerated attribute 19 | 20 | 21 | if contains(status,{4}) then --Disused Submerged Cable, Abandoned 22 | collection:add_symbology_instruction({type="ComplexLine", Name='L32_DisusedCable.svg'}) 23 | 24 | elseif contains(catcbl, {1}) then -- power cable, comment out these two lines to use L30_Cable.svg 25 | collection:add_symbology_instruction({type="ComplexLine", Name='L31_1_PowerCable.svg'}) 26 | 27 | elseif contains(catcbl, {6}) then -- mooring cable 28 | collection:add_symbology_instruction({type="SimpleLine", color='#db4996', style='DASH', width=.16}) 29 | 30 | else --Submerged Cable (Default) 31 | collection:add_symbology_instruction({type="ComplexLine", Name='L30_Cable.svg'}) 32 | 33 | end 34 | 35 | return true 36 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E24_Monument.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/slotop01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function set(...) 17 | local ret = {} 18 | for _,k in ipairs({...}) do ret[k] = true end 19 | return ret 20 | end 21 | 22 | function slotop01(feature, context, symbology) 23 | local collection = symbology.collections[1] 24 | 25 | --local catslo = feature.attributes:get_list_attribute('CATSLO') 26 | local catslo = tonumber(feature.attributes.CATSLO) 27 | if set(4,5,6)[catslo] then 28 | collection:add_symbology_instruction({type='ComplexLine', Name='C3_Cliffs.svg'}) 29 | elseif catslo == 1 then 30 | collection:add_symbology_instruction({type='ComplexLine', Name='D14_Cutting.svg'}) 31 | elseif catslo == 2 then 32 | collection:add_symbology_instruction({type='ComplexLine', Name='D15_Embankment.svg'}) 33 | elseif catslo == 3 then 34 | collection:add_symbology_instruction({type='ComplexLine', Name='C8_Dunes.svg'}) 35 | elseif catslo == 7 then 36 | collection:add_symbology_instruction({type='ComplexLine', Name='Scree.svg'}) 37 | 38 | end 39 | 40 | return true 41 | end 42 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/depare03.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | function depare03(feature, context, symbology) 16 | local collection = symbology.collections[1] 17 | 18 | local arguments = {DRVAL1=feature.attributes.DRVAL1, DRVAL2=feature.attributes.DRVAL2} 19 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='depare01',arguments=arguments}) 20 | -- DRGARE script is moved to drgare02.lua, therefore the instruction below is commented out 21 | -- if(feature.acronym == 'DRGARE') then 22 | -- --collection:add_symbology_instruction({type="AreaPattern", PatternName='DRGARE01'}) 23 | -- collection:add_symbology_instruction({type="SimpleLine", color='CHBLK', style='DASH', width=.32}) 24 | -- end 25 | 26 | if(feature.low_accuracy) then 27 | collection:add_symbology_instruction({type="SimpleLine", color='DEPSC', style='DASH', width=.64, paint='LOWACC,SAFCON'}) 28 | end 29 | 30 | collection:add_symbology_instruction({type="SimpleLine", color='DEPSC', style='SOLID', width=.64, paint='HIGHACC,SAFCON'}) 31 | 32 | return true 33 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P63_Flood_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N1_Limit_general.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 45 | 49 | 50 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q22c_Spherical_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_DryWk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_shoalWk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N21_NoFishing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K10_LandPoint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K27_SweptDepth.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 35 | 39 | 43 | 47 | 48 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/L40_pipeline_supply.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 41 | 48 | 54 | 55 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K30_Wreck_safe_clearance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/L41_pipeline_outfall_intake.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 41 | 48 | 54 | 55 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K21_Wreck_uncovers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_1_Deciduous_tree.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q42_Ground_tackle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/N10_Reported_anchorage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/E29_Radio_tower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q22b_Spherical_buoy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction6mm_shoal_wiredrag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/rectrc01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | --New at 11.4 17 | function rectrc01(feature, context, symbology) 18 | local collection = symbology.collections[1] 19 | 20 | local cattrk = tonumber(feature.attributes.CATTRK) 21 | local trafic = tonumber(feature.attributes.TRAFIC) 22 | local orient = tostring(feature.attributes.ORIENT) 23 | 24 | if(orient == nil) then 25 | return true 26 | end 27 | 28 | if cattrk == 2 and trafic == 4 then 29 | collection:add_symbology_instruction({type = 'ComplexLine', Name = 'M4_RecommendedTrack2.svg'}) 30 | elseif cattrk == 2 then 31 | collection:add_symbology_instruction({type = 'ComplexLine', Name = 'M4_RecommendedTrack1.svg'}) 32 | else 33 | collection:add_symbology_instruction({type="SimpleLine", color='black', style='SOLID', width=.20}) 34 | end 35 | 36 | 37 | local params = 38 | { 39 | type='Text', 40 | hjust='center', 41 | vjust='top', 42 | fontName='Arial', 43 | fontWeight='medium', 44 | fontSize=10, 45 | xoffset=0, 46 | yoffset=-1, 47 | color='black', 48 | textGroup=20, 49 | rotateWithFeature=true, 50 | } 51 | params.text= orient..'�' 52 | 53 | collection:add_symbology_instruction(params) 54 | collection.RemoveText = true 55 | 56 | return true 57 | end 58 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_4_Palm_Tree.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/bridge02.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | function bridge02(feature, context, symbology) 16 | local collection = symbology.collections[1] 17 | 18 | local catbrg = feature.attributes:get_list_attribute('CATBRG') 19 | if contains(catbrg, {2,3,4,5,7,8}) then 20 | local arguments = {label='VERCCL', value=feature.attributes.VERCCL, xoffset=1, yoffset=0} 21 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='vertical_clearance', arguments=arguments}) 22 | local arguments = {label='VERCOP', value=feature.attributes.VERCOP, xoffset=1, yoffset=1} 23 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='vertical_clearance', arguments=arguments}) 24 | else 25 | local params = 26 | { 27 | type='Text', 28 | fontName='HelveticaNeueLT Pro 55 Roman', 29 | fontWeight='medium', 30 | fontSize=10, 31 | color='black', 32 | hjust='left', 33 | vjust='bottom', 34 | xoffset=1, 35 | yoffset=0, 36 | textGroup=21, 37 | text=feature.attributes.OBJNAM 38 | } 39 | collection:add_symbology_instruction(params) 40 | 41 | local arguments = {label='VERCLR', value=feature.attributes.VERCLR, xoffset=1, yoffset=1} 42 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='vertical_clearance', arguments=arguments}) 43 | end 44 | 45 | collection.RemoveText = true 46 | 47 | return true 48 | end 49 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_8_Eucalypt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K13b_Dangerous_underwater_rk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/unit_conversion.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | Units = 17 | { 18 | meters = 1, 19 | millimeters = 2, 20 | inches = 3, 21 | feet = 4, 22 | yards = 5, 23 | fathoms = 6, 24 | kilometers = 7, 25 | statute_miles = 8, 26 | nautical_miles = 9, 27 | degrees = 10, 28 | S52_display_units = 11, 29 | points = 12, 30 | pixels = 13, 31 | factors = 32 | { 33 | 1.0, -- meters 34 | 1000.0, -- millimeters 35 | 39.37007874015748031496062992126, -- inches 36 | 3.2808399, -- feet 37 | 1.09361, -- yards 38 | 0.546806649, -- fathoms 39 | 0.001, -- kilometers 40 | 0.000621371, -- statute miles 41 | 0.000539957, -- nautical miles 42 | 8.9831528411952143512750125646572e-6, -- degrees in WGS-84 meters 43 | 100000.0, -- S52 display units (.01 millimeters) 44 | 2834.6438836888921644773767071643, -- points 45 | 3779.5275590551185863971727943456 -- pixels (@ 96 dpi) 46 | } 47 | } 48 | 49 | Units.__index = Units 50 | 51 | setmetatable(Units, { 52 | __call = function (cls, ...) 53 | return cls.new(...) 54 | end, 55 | }) 56 | 57 | function Units.new(...) 58 | local self = setmetatable({}, Units) 59 | self:set_value(...) 60 | return self 61 | end 62 | 63 | -- the : syntax here causes a "self" arg to be implicitly added before any other args 64 | function Units:set_value(newval, type) 65 | self.value = 0 66 | if newval then 67 | self.value = newval / Units.factors[type or Units.meters] 68 | end 69 | end 70 | 71 | function Units:get_value(type) 72 | return self.value * Units.factors[type or Units.meters] 73 | end 74 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/Q100_cairn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K25_Wreck_danger_no_depth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K1_Obstruction4mm_shoal_wiredrag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/C31_3_Conifer_tree.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/swpare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | require 'unit_conversion' 17 | 18 | function swpare01(feature, context, symbology) 19 | local depth = tonumber(feature.attributes.DRVAL1) 20 | 21 | if(depth == nil) then 22 | return true 23 | end 24 | 25 | local collection = symbology.collections[1] 26 | 27 | local arguments = {depth=depth} 28 | 29 | collection:add_symbology_instruction({type='Symbol', Name='K2_SweptDepth_magenta.svg'}) 30 | collection:add_symbology_instruction({type="SimpleLine", color='#db4996', style='DASH', width=.32}) 31 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='swpare01:post_symbolize', arguments=arguments}) 32 | 33 | collection.RemoveText = true 34 | 35 | return true 36 | 37 | end 38 | 39 | function post_symbolize(arguments, context, symbology) 40 | local depth = arguments['depth'] 41 | 42 | local collection = symbology.collections[1] 43 | 44 | local params = 45 | { 46 | type='Text', 47 | fontSize=9, 48 | fontWeight='italic', 49 | color='#db4996', 50 | hjust='right', 51 | vjust='baseline', 52 | xoffset=1, 53 | yoffset=0, 54 | textGroup=20, 55 | } 56 | 57 | --local text = 'Swept to ' 58 | local units = Units(depth, Units.meters) 59 | local format = '%4.1f' 60 | 61 | if context.depth_units == 2 then -- feet 62 | depth = math.floor(units:get_value(Units.feet)) -- convert meters to feet and trucate fractional portion 63 | format = '%d ft' 64 | elseif context.depth_units == 3 then -- fathoms 65 | depth = units:get_value(Units.fathoms) 66 | format = '%4.1f fm' 67 | end 68 | 69 | params.text = string.format('Swept to'..format, depth) 70 | 71 | collection:add_symbology_instruction(params) 72 | 73 | return true 74 | end 75 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/quapos01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | -- Conditional Symbology Procedure QUAPOS01 17 | -- It applies to (1) S-57 Object Class "land area" (LNDARE), as point and line (2) S-57 Object Class coast line” (COALNE), line only 18 | function quapos01(feature, context, symbology) 19 | local collection = symbology.collections[1] 20 | 21 | -- if the feature is point, check if it is low-accuracy feature. If it is, draw the low accuracy symbol 'LOWACC01' in the viewing group 31011 (see QUAPNT02) 22 | if feature.prim == 1 then 23 | if feature.low_accuracy then 24 | local collection2 = symbology:add_symbology_collection({ViewGroup=31011, DisplayPriority=collection.DisplayPriority, DisplayCategory=collection.DisplayCategory}) 25 | collection2:add_symbology_instruction({type='Symbol', Name='LOWACC01'}) 26 | end 27 | -- if the feature is not point, follow the precedures of QUALIN01 28 | else 29 | -- if it is low-accuracy feature, symbolize line segment LC(LOWACC21) 30 | if feature.low_accuracy then 31 | collection:add_symbology_instruction({type='ComplexLine', Name='LOWACC21', paint='LOWACC'}) 32 | end 33 | 34 | -- if it is COALNE object 35 | if feature.acronym == 'COALNE' then 36 | local conrad = tonumber(feature.attributes.CONRAD) or 0 37 | -- if it has CONRAD value and if the value is 1, symbolize line segment LS(SOLD, 3, CHMGF) 38 | if conrad == 1 then 39 | collection:add_symbology_instruction({type="SimpleLine", color='CHMGF', style='SOLID', width=.96, paint='HIGHACC'}) 40 | end 41 | end 42 | -- symbolize line segment LS(SOLD, 1, CSTLN) 43 | collection:add_symbology_instruction({type="SimpleLine", color='CSTLN', style='SOLID', width=.32, paint='HIGHACC'}) 44 | end 45 | collection.RemoveSymbols = true 46 | collection.RemoveCSPs = true 47 | return true 48 | end 49 | 50 | 51 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/K11a_Rock_uncovers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/point/P64_Strip_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 40 | 44 | 48 | 49 | 51 | 52 | 54 | image/svg+xml 55 | 57 | 58 | 59 | 60 | 61 | 67 | 68 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/D11_Roadway.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 53 | 60 | 65 | 70 | 71 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/lndare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | require 'quapos01' 16 | 17 | function lndare01(feature, context, symbology) 18 | local collection = symbology.collections[1] 19 | -- if the feature is point, SY(LNDARE01) and TX(OBJNAM,1,2,2,'15110',0,1,CHBLK,26); CS(QUAPOS01) (see LNDARE part in psymrefs.dic) 20 | -- here we changed the symbol to K10_LandPoint.svg 21 | if feature.prim == 1 then 22 | collection:add_symbology_instruction({type='Symbol', Name='K10_LandPoint.svg'}) 23 | local params = 24 | { 25 | type='Text', 26 | hjust='center', 27 | vjust='center', 28 | fontSize=10, 29 | xoffset=0, 30 | yoffset=1, 31 | color='CHBLK', 32 | textGroup=26, 33 | } 34 | params.text = feature.attributes.OBJNAM 35 | collection:add_symbology_instruction(params) 36 | return quapos01(feature, context, symbology) 37 | -- if the feature is line, CS(QUAPOS01);TX(OBJNAM,1,1,2,'15110',0,1,CHBLK,26) (see LNDARE part in lsymref.dic) 38 | elseif feature.prim == 2 then 39 | quapos01(feature, context, symbology) 40 | local params = 41 | { 42 | type='Text', 43 | hjust='center', 44 | vjust='bottom', 45 | fontSize=10, 46 | xoffset=0, 47 | yoffset=1, 48 | color='CHBLK', 49 | textGroup=26, 50 | } 51 | params.text = feature.attributes.OBJNAM 52 | collection:add_symbology_instruction(params) 53 | -- if the feature is area, AC(LANDA);TX(OBJNAM,1,2,3,'15110',-1,-1,CHBLK,26) (see LNDARE part in asymrefpb.dic) 54 | -- here we changed the color from LANDA to #f4e8c1 55 | else 56 | collection:add_symbology_instruction({type="AreaFill", color='#f4e8c1', transparency=0}) 57 | local params = 58 | { 59 | type='Text', 60 | hjust='center', 61 | vjust='center', 62 | fontSize=10, 63 | xoffset=-1, 64 | yoffset=-1, 65 | color='CHBLK', 66 | textGroup=26, 67 | } 68 | params.text = feature.attributes.OBJNAM 69 | collection:add_symbology_instruction(params) 70 | end 71 | 72 | collection.RemoveText = true 73 | collection.RemoveSymbols = true 74 | 75 | return true 76 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/vertical_clearance.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | 16 | function vertical_clearance(arguments, context, symbology) 17 | local label = arguments['label'] 18 | local value = tonumber(arguments['value']) 19 | local xo = arguments['xoffset'] 20 | local yo = arguments['yoffset'] 21 | 22 | if(value == nil) then 23 | return true 24 | end 25 | 26 | local format = '%4.1f' 27 | if context.depth_units ~= 1 then 28 | value = math.floor(value * 3.2808399) -- convert meters to feet and truncate fractional portion 29 | format = '%d ft' 30 | end 31 | 32 | local params = {type='Text',color='', textGroup=11, xoffset=2, yoffset=1, linked=false}--offsets changed from x and y = 0 linked is false to separate the object name text from the vertical clearance text instruction. Update 11.2 patch1. 33 | 34 | local collection = symbology.collections[1] 35 | 36 | if label == 'VERCLR' then 37 | collection:add_symbology_instruction({type='Symbol', xoffset=2, yoffset=1, Name='D22_Vert_clr.svg'}) 38 | params.text = string.format(format,value) 39 | collection:add_symbology_instruction(params) 40 | elseif label == 'VERCOP' then 41 | collection:add_symbology_instruction({type='Symbol', Name='D22_Vert_clr.svg'}) 42 | params.text = string.format(format, value)--edit from 'clr op ' 43 | collection:add_symbology_instruction(params) 44 | elseif label == 'VERCCL' then 45 | collection:add_symbology_instruction({type='Symbol', Name='D22_Vert_clr.svg'}) 46 | params.text = string.format(format, value) --edit from 'clr cl' 47 | collection:add_symbology_instruction(params) 48 | elseif label == 'VERCSA' then 49 | local params = {type='Text',color='#db4996', textGroup=11, xoffset=2, yoffset=1}-- Safe vertical clearance magenta text 50 | collection:add_symbology_instruction({type='Symbol', Name='D26_2_SafeVertClearance.svg'}) 51 | params.text = string.format(format, value) 52 | collection:add_symbology_instruction(params) 53 | elseif label == 'HORCLR' then 54 | params.text = string.format('hor clr ' .. format, value) 55 | end 56 | 57 | return true 58 | end 59 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/rock_ledge.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 44 | 48 | 49 | 51 | 52 | 54 | image/svg+xml 55 | 57 | 58 | 59 | 60 | 61 | 66 | 67 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/lndelv01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | require 'unit_conversion' 16 | 17 | function lndelv01(feature, context, symbology) 18 | local elevation = tonumber(feature.attributes.ELEVAT) 19 | 20 | if(elevation == nil) then 21 | return true 22 | end 23 | 24 | local collection = symbology.collections[1] 25 | 26 | local arguments = {elevation=elevation} 27 | collection:add_symbology_instruction({type="ConditionalSymbologyProcedure", postExecute='lndelv01:post_symbolize', arguments=arguments}) 28 | 29 | collection.RemoveText = true 30 | 31 | return true 32 | end 33 | 34 | function post_symbolize(arguments, context, symbology) 35 | local elevation = arguments['elevation'] 36 | 37 | local collection = symbology.collections[1] 38 | 39 | local params = --Modifed hjust, vjust, xoffset, yoffset at 11.2 40 | { 41 | type='Text', 42 | fontSize=7, 43 | color='CHBLK', 44 | hjust='right', 45 | vjust='center', 46 | xoffset=-1, 47 | yoffset=0, 48 | textGroup=28, 49 | } 50 | 51 | local units = Units(elevation, Units.meters) 52 | local format = '%4.1f m' 53 | 54 | if context.depth_units ~= 1 then 55 | elevation = math.ceil(units:get_value(Units.feet)) -- convert meters to feet rounded to next higher foot and trucate fractional portion 56 | format = '%d ft' 57 | end 58 | 59 | params.text = string.format(format, elevation) 60 | 61 | collection:add_symbology_instruction(params) 62 | 63 | return true 64 | end 65 | --New function at 11.2 for land elevation contours from s-52 brown to black 66 | --New at 11.4 land contour elevation label with text rotation. 67 | function lndelv02(feature, context, symbology) 68 | local elevat = feature.attributes.ELEVAT 69 | local collection = symbology.collections[1] 70 | collection:add_symbology_instruction({type="SimpleLine", color='black', style='SOLID', width=.2}) 71 | 72 | if (elevat == nil) then return true end 73 | 74 | local label = { 75 | type = 'Text', 76 | hjust = 'center', 77 | vjust = 'center', 78 | xoffset = 0, 79 | yoffset = 0, 80 | linked = true, 81 | fontSize = 7, 82 | haloColor = '#f4e8c1', 83 | rotateWithFeature=true, 84 | } 85 | label.text = elevat 86 | 87 | collection:add_symbology_instruction(label) 88 | 89 | return true 90 | end -------------------------------------------------------------------------------- /CustomPresentationLibrary/lua/depare01.lua: -------------------------------------------------------------------------------- 1 | --[[ * Copyright 2023 Esri 2 | * 3 | * Licensed under the Apache License Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | * ]] 15 | -- DEPDW;white;0.2800;0.3100;80.000;255;255;255;0.292854 16 | -- DEPMD;pale_blue;0.2600;0.2900;65.000;255;255;255;0.287164 17 | -- DEPMS;light_blue;0.2300;0.2500;55.000;221;235;247;0.664280 18 | -- DEPVS;medium_blue;0.2100;0.2200;45.000;209;222;239;1.191311 19 | -- DEPIT;yellow-green;0.2600;0.3600;35.000;214;219;201;0.378606 20 | 21 | 22 | function depare01(arguments, context, symbology) 23 | local drval1 = tonumber(arguments['DRVAL1']) or -1.0 24 | local drval2 = tonumber(arguments['DRVAL2']) or drval1 + .01 25 | 26 | 27 | local two_shades = context.two_shades 28 | local shallow = true 29 | 30 | if two_shades then 31 | if drval1 < 0 then 32 | color = '#d6dbc9' 33 | elseif drval1 >= 0 and drval2 > 0 then 34 | color = '#d1deef' --'DEPVS' shallow water tint 1 35 | end 36 | 37 | local safety_contour = context.safety_contour 38 | if drval1 >= safety_contour and drval2 > safety_contour then 39 | color = '#ffffff' --'DEPDW' white background 40 | shallow = false 41 | end 42 | else 43 | if drval1 < 0 then 44 | color = '#d6dbc9' -- DEPIT Green foreshore 45 | elseif drval1 >= 0 and drval2 > 0 then 46 | color = '#d1deef' --'DEPVS' shallow water tint 1 47 | end 48 | 49 | local shallow_contour = context.shallow_contour 50 | if drval1 >= shallow_contour and drval2 > shallow_contour then 51 | color = '#ddebf7' --'DEPMS' shallow water tint 2 52 | end 53 | 54 | local safety_contour = context.safety_contour 55 | if drval1 >= safety_contour and drval2 > safety_contour then 56 | color = '#f5f5f5' -- white smoke 57 | shallow = false 58 | end 59 | 60 | deep_contour = context.deep_contour 61 | if drval1 >= deep_contour and drval2 > deep_contour then 62 | color = '#ffffff' --'DEPDW' white background 63 | shallow = false 64 | end 65 | end 66 | 67 | local collection = symbology.collections[1] 68 | collection:add_symbology_instruction({type="AreaFill", color=color, transparency=0}) 69 | 70 | if shallow and context:getViewingGroupDisplay(23010) then 71 | collection = symbology:add_symbology_collection({ViewGroup=23010, DisplayPriority=3, DisplayCategory='STANDARD'}) 72 | collection:add_symbology_instruction({type='AreaPattern', PatternName='DIAMOND1'}) 73 | end 74 | 75 | return true 76 | 77 | end 78 | 79 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N20_NoAnchor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CustomPresentationLibrary/symbols/line/N21_1_Fishing_Prohibited.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nautical-chart-symbols 2 | Here are a set of simple samples that show you how to symbolize S-57 data with an INT1 chart-like view. Learn more [here](https://enterprise.arcgis.com/en/maritime/). 3 | 4 | Examples can be found at [Esri Hydrographic Office](https://esriho.maps.arcgis.com/home/index.html). 5 | 6 | ## Features 7 | Lua in Maritime Chart Service can do the following: 8 | * Reference SVG files to override point symbols or line patterns (simple and complex) 9 | * Override symbol instructions such as color, fill pattern, or transparency 10 | * Access view groups or display properties 11 | * Provide instructions to modify a text group's font name, size, weight, color, and offset 12 | 13 | ## Instructions 14 | The ServerConfiguration.xml file contains a CustomSymbology boolean to enable or disable display of custom symbology that overrides the default S-52 presentation library. When available, Maritime Chart Service references rules in the CustomSymbolMap.xml, Scalable Vector Graphic (SVG) symbols, and Lua scripts to provide a paper chart-like display of the S-57 data.. 15 | 1. Fork and then clone the repo. 16 | 2. Configure your ArcGIS Maritime Chart Service. See online help. 17 | 3. Follow directions to enable Custom Symbology. See online help. 18 | 4. After setting custom symbology to true, you must rebuild the .senc files for the symbols to appear in your service. 19 | 20 | ## Requirements 21 | 22 | * ArcGIS Server for Windows 23 | * ArcGIS Maritime Chart Service extension 11.4 or newer. 24 | * Web browser with access to the Internet 25 | 26 | ## Resources 27 | 28 | * [ArcGIS Maritime server web help](https://enterprise.arcgis.com/en/maritime/) 29 | * [Esri Hydrographic Office](https://esriho.maps.arcgis.com/home/index.html) 30 | * [ArcGIS Maritime Community](https://community.esri.com/t5/arcgis-maritime/ct-p/arcgis-maritime) 31 | * [Maritime email](maritime@esri.com) 32 | * [twitter@esri](http://twitter.com/esri) 33 | 34 | ## Issues 35 | 36 | Find a bug or want to request a new feature? Please let us know by submitting an issue. 37 | 38 | ## Contributing 39 | 40 | Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). 41 | 42 | ## Licensing 43 | Copyright 2023 Esri 44 | 45 | Licensed under the Apache License, Version 2.0 (the "License"); 46 | you may not use this file except in compliance with the License. 47 | You may obtain a copy of the License at 48 | 49 | http://www.apache.org/licenses/LICENSE-2.0 50 | 51 | Unless required by applicable law or agreed to in writing, software 52 | distributed under the License is distributed on an "AS IS" BASIS, 53 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 54 | See the License for the specific language governing permissions and 55 | limitations under the License. 56 | 57 | A copy of the license is available in the repository's [license.txt](https://github.com/ArcGIS/nautical-chart-symbols/blob/main/license.txt) 58 | --------------------------------------------------------------------------------