├── resources ├── dialog │ ├── close.png │ ├── find.png │ ├── forum.png │ ├── help.png │ ├── info.png │ ├── josm.png │ ├── tools.png │ ├── view.png │ ├── map_key.png │ ├── zoom-in.png │ ├── zoom-out.png │ ├── Cc-sa-32px.png │ ├── layer_grid.png │ ├── layer_route.png │ ├── permalink.png │ ├── report_bugs.png │ ├── layer_weather.png │ ├── layer_seamarks.png │ ├── weather │ │ ├── WaveIcon.png │ │ ├── WindIcon.png │ │ ├── BlueDivider.png │ │ ├── AirPressureIcon.png │ │ ├── AirTemperatureIcon.png │ │ └── PrecipitationIcon.png │ ├── layer_download_map.png │ └── layer_tidal_scale.png ├── harbour │ ├── crane.png │ ├── fuel_32.png │ ├── slipway.png │ ├── crane_32.png │ ├── harbour_32.png │ ├── marina_32.png │ ├── shower_32.png │ ├── slipway_32.png │ ├── toilet_32.png │ ├── anchorage_32.png │ ├── harbour_master.png │ ├── sailing_club_32.png │ ├── waste_disposal.png │ ├── harbour_master_32.png │ ├── visitor_berth_32.png │ ├── waste_disposal_32.png │ ├── fishing_harbour_32.png │ └── visitor_mooring_32.png ├── map │ └── WindScale.png ├── icons │ ├── ONC-Logo.png │ ├── CC-BY-SA_32px.png │ ├── CC-BY-SA_44px.png │ ├── ONC-Logo_16px.png │ ├── OSM-Logo-32px.png │ ├── OSM-Logo-44px.png │ └── OpenPortGuideLogo_32.png ├── sea_marks │ ├── Stake.png │ ├── Buoy_Can.png │ ├── Buoy_Cone.png │ ├── Buoy_Spar.png │ ├── Buoy_Super.png │ ├── Buoy_Barrel.png │ ├── Buoy_Pillar.png │ ├── Buoy_Sphere.png │ ├── Cardinal_East.png │ ├── Cardinal_West.png │ ├── Lateral_Green.png │ ├── Lateral_Red.png │ ├── Cardinal_North.png │ ├── Cardinal_Single.png │ ├── Cardinal_South.png │ ├── Special_Purpose.png │ ├── Lateral_Perch_Port.png │ ├── Lateral_Pref_Port.png │ ├── Lateral_SafeWater.png │ ├── Lateral_Perch_Starboard.png │ └── Lateral_Pref_Starboard.png ├── lights │ ├── Light_Float.png │ ├── Light_Major.png │ ├── Light_Minor.png │ └── Light_Vessel.png └── inland_navigation │ ├── lock.png │ ├── Notice_E3.png │ ├── lock_gate.png │ ├── notice_a1.png │ ├── notice_a10.png │ ├── notice_a12.png │ ├── notice_a13.png │ ├── notice_a14.png │ ├── notice_a15.png │ ├── notice_a16.png │ ├── notice_a17.png │ ├── notice_a18.png │ ├── notice_a1a.png │ ├── notice_a2.png │ ├── notice_a3.png │ ├── notice_a4.png │ ├── notice_a5.png │ ├── notice_a6.png │ ├── notice_a7.png │ ├── notice_a8.png │ ├── notice_a9.png │ └── notice_a5_1.png ├── script ├── openlayers │ ├── img │ │ ├── blank.gif │ │ ├── marker.png │ │ ├── slider.png │ │ ├── zoombar.png │ │ ├── east-mini.png │ │ ├── marker-blue.png │ │ ├── marker-gold.png │ │ ├── north-mini.png │ │ ├── south-mini.png │ │ ├── west-mini.png │ │ ├── marker-green.png │ │ ├── panning-hand-off.png │ │ ├── panning-hand-on.png │ │ ├── zoom-minus-mini.png │ │ ├── zoom-plus-mini.png │ │ ├── zoom-world-mini.png │ │ ├── drag-rectangle-off.png │ │ ├── drag-rectangle-on.png │ │ ├── measuring-stick-on.png │ │ ├── cloud-popup-relative.png │ │ ├── measuring-stick-off.png │ │ ├── layer-switcher-maximize.png │ │ └── layer-switcher-minimize.png │ ├── theme │ │ └── default │ │ │ ├── google.tidy.css │ │ │ ├── img │ │ │ ├── blank.gif │ │ │ ├── close.gif │ │ │ ├── pan_off.png │ │ │ ├── pan_on.png │ │ │ ├── ruler.png │ │ │ ├── pan-panel.png │ │ │ ├── add_point_on.png │ │ │ ├── draw_line_on.png │ │ │ ├── view_next_on.png │ │ │ ├── zoom-panel.png │ │ │ ├── add_point_off.png │ │ │ ├── draw_line_off.png │ │ │ ├── draw_point_off.png │ │ │ ├── draw_point_on.png │ │ │ ├── view_next_off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── draw_polygon_off.png │ │ │ ├── draw_polygon_on.png │ │ │ ├── editing_tool_bar.png │ │ │ ├── move_feature_off.png │ │ │ ├── move_feature_on.png │ │ │ ├── pan-panel-NOALPHA.png │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── remove_point_off.png │ │ │ ├── remove_point_on.png │ │ │ ├── save_features_off.png │ │ │ ├── save_features_on.png │ │ │ ├── view_previous_off.png │ │ │ ├── view_previous_on.png │ │ │ ├── drag-rectangle-off.png │ │ │ ├── navigation_history.png │ │ │ ├── zoom-panel-NOALPHA.png │ │ │ └── overview_replacement.gif │ │ │ ├── google.css │ │ │ ├── ie6-style.tidy.css │ │ │ ├── ie6-style.css │ │ │ ├── style.mobile.tidy.css │ │ │ ├── style.mobile.css │ │ │ └── style.tidy.css │ └── art │ │ ├── marker.svg │ │ ├── measuring-stick-off.svg │ │ ├── measuring-stick-on.svg │ │ ├── slider.svg │ │ ├── zoombar.svg │ │ ├── panning-hand-on.svg │ │ ├── panning-hand-off.svg │ │ ├── layer-switcher-maximize.svg │ │ ├── arrows.svg │ │ ├── layer-switcher-minimize.svg │ │ └── zoom-world.svg ├── utilities.js ├── json2.js ├── openlayers_3 │ └── ol.css ├── nominatim.js ├── language │ ├── localizations.js │ └── l10n.js ├── OpenStreetMap.js ├── download_map.js ├── map_utils.js └── map_base.js ├── README.md ├── api ├── weather_time_utc.php ├── nominatim.php ├── export.php └── get_node_information.php ├── dialog_pages ├── about │ ├── about_de.html │ └── about_en.html ├── main_license │ ├── main_license_en.html │ └── main_license_de.html ├── weather_help │ ├── weather_help_main_de.html │ └── weather_help_main_en.html └── map_key │ ├── map_key_lights_en.html │ ├── map_key_lights_de.html │ ├── map_key_harbours_en.html │ ├── map_key_harbours_de.html │ ├── map_key_inland_navigation_en.html │ ├── map_key_sea_marks_en.html │ ├── map_key_sea_marks_de.html │ └── map_key_inland_navigation_de.html ├── weather.css ├── index.php ├── include ├── topmenu_weather.inc └── topmenu.inc ├── weather_index.php └── map-full.css /resources/dialog/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/close.png -------------------------------------------------------------------------------- /resources/dialog/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/find.png -------------------------------------------------------------------------------- /resources/dialog/forum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/forum.png -------------------------------------------------------------------------------- /resources/dialog/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/help.png -------------------------------------------------------------------------------- /resources/dialog/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/info.png -------------------------------------------------------------------------------- /resources/dialog/josm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/josm.png -------------------------------------------------------------------------------- /resources/dialog/tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/tools.png -------------------------------------------------------------------------------- /resources/dialog/view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/view.png -------------------------------------------------------------------------------- /resources/harbour/crane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/crane.png -------------------------------------------------------------------------------- /resources/map/WindScale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/map/WindScale.png -------------------------------------------------------------------------------- /resources/dialog/map_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/map_key.png -------------------------------------------------------------------------------- /resources/dialog/zoom-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/zoom-in.png -------------------------------------------------------------------------------- /resources/dialog/zoom-out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/zoom-out.png -------------------------------------------------------------------------------- /resources/harbour/fuel_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/fuel_32.png -------------------------------------------------------------------------------- /resources/harbour/slipway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/slipway.png -------------------------------------------------------------------------------- /resources/icons/ONC-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/ONC-Logo.png -------------------------------------------------------------------------------- /resources/sea_marks/Stake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Stake.png -------------------------------------------------------------------------------- /resources/dialog/Cc-sa-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/Cc-sa-32px.png -------------------------------------------------------------------------------- /resources/dialog/layer_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_grid.png -------------------------------------------------------------------------------- /resources/dialog/layer_route.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_route.png -------------------------------------------------------------------------------- /resources/dialog/permalink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/permalink.png -------------------------------------------------------------------------------- /resources/dialog/report_bugs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/report_bugs.png -------------------------------------------------------------------------------- /resources/harbour/crane_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/crane_32.png -------------------------------------------------------------------------------- /resources/harbour/harbour_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/harbour_32.png -------------------------------------------------------------------------------- /resources/harbour/marina_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/marina_32.png -------------------------------------------------------------------------------- /resources/harbour/shower_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/shower_32.png -------------------------------------------------------------------------------- /resources/harbour/slipway_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/slipway_32.png -------------------------------------------------------------------------------- /resources/harbour/toilet_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/toilet_32.png -------------------------------------------------------------------------------- /resources/lights/Light_Float.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/lights/Light_Float.png -------------------------------------------------------------------------------- /resources/lights/Light_Major.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/lights/Light_Major.png -------------------------------------------------------------------------------- /resources/lights/Light_Minor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/lights/Light_Minor.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Can.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Can.png -------------------------------------------------------------------------------- /script/openlayers/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/blank.gif -------------------------------------------------------------------------------- /script/openlayers/img/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/marker.png -------------------------------------------------------------------------------- /script/openlayers/img/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/slider.png -------------------------------------------------------------------------------- /resources/dialog/layer_weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_weather.png -------------------------------------------------------------------------------- /resources/harbour/anchorage_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/anchorage_32.png -------------------------------------------------------------------------------- /resources/icons/CC-BY-SA_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/CC-BY-SA_32px.png -------------------------------------------------------------------------------- /resources/icons/CC-BY-SA_44px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/CC-BY-SA_44px.png -------------------------------------------------------------------------------- /resources/icons/ONC-Logo_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/ONC-Logo_16px.png -------------------------------------------------------------------------------- /resources/icons/OSM-Logo-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/OSM-Logo-32px.png -------------------------------------------------------------------------------- /resources/icons/OSM-Logo-44px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/OSM-Logo-44px.png -------------------------------------------------------------------------------- /resources/lights/Light_Vessel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/lights/Light_Vessel.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Cone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Cone.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Spar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Spar.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Super.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Super.png -------------------------------------------------------------------------------- /script/openlayers/img/zoombar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/zoombar.png -------------------------------------------------------------------------------- /resources/dialog/layer_seamarks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_seamarks.png -------------------------------------------------------------------------------- /resources/dialog/weather/WaveIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/WaveIcon.png -------------------------------------------------------------------------------- /resources/dialog/weather/WindIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/WindIcon.png -------------------------------------------------------------------------------- /resources/harbour/harbour_master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/harbour_master.png -------------------------------------------------------------------------------- /resources/harbour/sailing_club_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/sailing_club_32.png -------------------------------------------------------------------------------- /resources/harbour/waste_disposal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/waste_disposal.png -------------------------------------------------------------------------------- /resources/inland_navigation/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/lock.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Barrel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Barrel.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Pillar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Pillar.png -------------------------------------------------------------------------------- /resources/sea_marks/Buoy_Sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Buoy_Sphere.png -------------------------------------------------------------------------------- /resources/sea_marks/Cardinal_East.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Cardinal_East.png -------------------------------------------------------------------------------- /resources/sea_marks/Cardinal_West.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Cardinal_West.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Green.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Red.png -------------------------------------------------------------------------------- /script/openlayers/img/east-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/east-mini.png -------------------------------------------------------------------------------- /script/openlayers/img/marker-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/marker-blue.png -------------------------------------------------------------------------------- /script/openlayers/img/marker-gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/marker-gold.png -------------------------------------------------------------------------------- /script/openlayers/img/north-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/north-mini.png -------------------------------------------------------------------------------- /script/openlayers/img/south-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/south-mini.png -------------------------------------------------------------------------------- /script/openlayers/img/west-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/west-mini.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | online_map 2 | ========== 3 | 4 | Website displaying the online map 5 | * [opennauticalchart.org](http://opennauticalchart.org) 6 | -------------------------------------------------------------------------------- /resources/dialog/layer_download_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_download_map.png -------------------------------------------------------------------------------- /resources/dialog/layer_tidal_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/layer_tidal_scale.png -------------------------------------------------------------------------------- /resources/harbour/harbour_master_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/harbour_master_32.png -------------------------------------------------------------------------------- /resources/harbour/visitor_berth_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/visitor_berth_32.png -------------------------------------------------------------------------------- /resources/harbour/waste_disposal_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/waste_disposal_32.png -------------------------------------------------------------------------------- /resources/sea_marks/Cardinal_North.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Cardinal_North.png -------------------------------------------------------------------------------- /resources/sea_marks/Cardinal_Single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Cardinal_Single.png -------------------------------------------------------------------------------- /resources/sea_marks/Cardinal_South.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Cardinal_South.png -------------------------------------------------------------------------------- /resources/sea_marks/Special_Purpose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Special_Purpose.png -------------------------------------------------------------------------------- /script/openlayers/img/marker-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/marker-green.png -------------------------------------------------------------------------------- /resources/dialog/weather/BlueDivider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/BlueDivider.png -------------------------------------------------------------------------------- /resources/harbour/fishing_harbour_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/fishing_harbour_32.png -------------------------------------------------------------------------------- /resources/harbour/visitor_mooring_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/harbour/visitor_mooring_32.png -------------------------------------------------------------------------------- /resources/icons/OpenPortGuideLogo_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/icons/OpenPortGuideLogo_32.png -------------------------------------------------------------------------------- /resources/inland_navigation/Notice_E3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/Notice_E3.png -------------------------------------------------------------------------------- /resources/inland_navigation/lock_gate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/lock_gate.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a1.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a10.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a12.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a13.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a14.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a15.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a16.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a17.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a18.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a1a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a1a.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a2.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a3.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a4.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a5.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a6.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a7.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a8.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a9.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Perch_Port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Perch_Port.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Pref_Port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Pref_Port.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_SafeWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_SafeWater.png -------------------------------------------------------------------------------- /script/openlayers/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/panning-hand-off.png -------------------------------------------------------------------------------- /script/openlayers/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/panning-hand-on.png -------------------------------------------------------------------------------- /script/openlayers/img/zoom-minus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/zoom-minus-mini.png -------------------------------------------------------------------------------- /script/openlayers/img/zoom-plus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/zoom-plus-mini.png -------------------------------------------------------------------------------- /script/openlayers/img/zoom-world-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/zoom-world-mini.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/google.tidy.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGooglePoweredBy{left:2px;bottom:2px;} -------------------------------------------------------------------------------- /resources/dialog/weather/AirPressureIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/AirPressureIcon.png -------------------------------------------------------------------------------- /resources/inland_navigation/notice_a5_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/inland_navigation/notice_a5_1.png -------------------------------------------------------------------------------- /script/openlayers/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /script/openlayers/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /script/openlayers/img/measuring-stick-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/measuring-stick-on.png -------------------------------------------------------------------------------- /resources/dialog/weather/AirTemperatureIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/AirTemperatureIcon.png -------------------------------------------------------------------------------- /resources/dialog/weather/PrecipitationIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/dialog/weather/PrecipitationIcon.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Perch_Starboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Perch_Starboard.png -------------------------------------------------------------------------------- /resources/sea_marks/Lateral_Pref_Starboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/resources/sea_marks/Lateral_Pref_Starboard.png -------------------------------------------------------------------------------- /script/openlayers/img/cloud-popup-relative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/cloud-popup-relative.png -------------------------------------------------------------------------------- /script/openlayers/img/measuring-stick-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/measuring-stick-off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/blank.gif -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/close.gif -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/pan_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/pan_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/pan_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/pan_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/ruler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/ruler.png -------------------------------------------------------------------------------- /script/openlayers/img/layer-switcher-maximize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/layer-switcher-maximize.png -------------------------------------------------------------------------------- /script/openlayers/img/layer-switcher-minimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/img/layer-switcher-minimize.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/pan-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/pan-panel.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/add_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/add_point_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_line_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_line_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/view_next_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/view_next_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/zoom-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/zoom-panel.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/add_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/add_point_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_line_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_line_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_point_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_point_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/view_next_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/view_next_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_polygon_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_polygon_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/draw_polygon_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/draw_polygon_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/editing_tool_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/editing_tool_bar.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/move_feature_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/move_feature_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/move_feature_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/move_feature_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/pan-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/pan-panel-NOALPHA.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/panning-hand-off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/panning-hand-on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/remove_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/remove_point_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/remove_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/remove_point_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/save_features_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/save_features_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/save_features_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/save_features_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/view_previous_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/view_previous_off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/view_previous_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/view_previous_on.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/navigation_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/navigation_history.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/zoom-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/zoom-panel-NOALPHA.png -------------------------------------------------------------------------------- /script/openlayers/theme/default/img/overview_replacement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenNauticalChart/online_map/HEAD/script/openlayers/theme/default/img/overview_replacement.gif -------------------------------------------------------------------------------- /script/openlayers/theme/default/google.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright { 2 | right: 3px; 3 | bottom: 2px; 4 | left: auto; 5 | } 6 | .olLayerGooglePoweredBy { 7 | left: 2px; 8 | bottom: 2px; 9 | } 10 | -------------------------------------------------------------------------------- /script/openlayers/theme/default/ie6-style.tidy.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div{background-image:url(img/zoom-panel-NOALPHA.png);}.olControlPanPanel div{background-image:url(img/pan-panel-NOALPHA.png);}.olControlEditingToolbar{width:200px;} -------------------------------------------------------------------------------- /script/openlayers/theme/default/ie6-style.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div { 2 | background-image: url(img/zoom-panel-NOALPHA.png); 3 | } 4 | .olControlPanPanel div { 5 | background-image: url(img/pan-panel-NOALPHA.png); 6 | } 7 | .olControlEditingToolbar { 8 | width: 200px; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /api/weather_time_utc.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dialog_pages/about/about_de.html: -------------------------------------------------------------------------------- 1 |
2 | Mail: info@opennauticalchart.org. 3 |

4 | Kontakt:
5 | Olaf Hannemann
6 | Tel.: +49 (0)4534/7358
7 | Mobil: +49 (0)172/7089289
8 | Mail: ohannemann@opensource-werkstatt-stubben.org -------------------------------------------------------------------------------- /dialog_pages/about/about_en.html: -------------------------------------------------------------------------------- 1 |
2 | Mail: info@opennauticalchart.org. 3 |

4 | Contact:
5 | Olaf Hannemann
6 | Tel.: +49 (0)4534/7358
7 | Mobil: +49 (0)172/7089289
8 | Mail: ohannemann@opensource-werkstatt-stubben.org -------------------------------------------------------------------------------- /api/nominatim.php: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /api/export.php: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /api/get_node_information.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /weather.css: -------------------------------------------------------------------------------- 1 | input[type=checkbox] { 2 | visibility: hidden; 3 | } 4 | 5 | #timemenu { 6 | margin-bottom: 5px; 7 | border: 2px solid #000080; 8 | -moz-border-radius: 6px; 9 | -webkit-border-radius: 6px; 10 | border-radius: 6px 6px 6px 6px; 11 | background-color: #FFF; 12 | padding: 2px; 13 | } 14 | 15 | #timemenu h2 { 16 | margin: 0; 17 | padding: 4px; 18 | font-size: 16px; 19 | text-align: center; 20 | } 21 | 22 | #timemenu ul { 23 | margin: 0 10px 0 0; 24 | padding: 0; 25 | } 26 | 27 | #timemenu ul li { 28 | list-style: none; 29 | display: block; 30 | text-align: right; 31 | } 32 | 33 | #timemenu ul li:hover { 34 | background-color: #ADD8E6; 35 | cursor:pointer 36 | } 37 | 38 | #timemenu img { 39 | text-decoration: none; 40 | padding: 0 5px 0 5px; 41 | color: #000; 42 | } 43 | 44 | #comment { 45 | margin-bottom: 5px; 46 | border: 2px solid #000080; 47 | -moz-border-radius: 6px; 48 | -webkit-border-radius: 6px; 49 | border-radius: 6px 6px 6px 6px; 50 | background-color: #FFF; 51 | padding: 2px; 52 | } -------------------------------------------------------------------------------- /dialog_pages/main_license/main_license_en.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 22 | 23 | 24 |
CC by SAONC - Data can be used freely under the terms of the
Creative Commons Attribution-ShareAlike 2.0 license.
8 |
9 |
OSM-LogoAll Data of the base map is created by the OpenStreetMap-Project.
17 |
18 |
OpenPortGuide-LogoAll weather information is created by the OpenPortGuide-Project.
25 | -------------------------------------------------------------------------------- /dialog_pages/main_license/main_license_de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 22 | 23 | 24 |
CC by SAÜber die OpenNauticalChart - Daten kann frei unter den Bedingungen der
Creative Commons Attribution-ShareAlike 2.0 Lizenz verfügt werden.
8 |
9 |
OSM-LogoAlle Daten der Basiskarte entstammen dem OpenStreetMap-Projekt.
17 |
18 |
OpenPortGuide-LogoAlle Wetterinformationen entstammen dem OpenPortGuide-Projekt.
-------------------------------------------------------------------------------- /script/openlayers/theme/default/style.mobile.tidy.css: -------------------------------------------------------------------------------- 1 | div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px;}*{-webkit-tap-highlight-color:rgba(0,0,0,0);}div.olControlZoom a{display:block;color:#FFF;font-size:28px;font-family:sans-serif;font-weight:700;text-decoration:none;text-align:center;height:32px;width:32px;line-height:28px;text-shadow:0 0 3px rgba(0,0,0,0.8);background:rgba(0,60,136,0.5);filter:alpha(opacity=80);margin:1px;padding:0;}a.olControlZoomIn{border-radius:4px 4px 0 0;}a.olControlZoomOut{border-radius:0 0 4px 4px;}div.olControlZoom a:hover{background:rgba(0,60,136,0.7);filter:alpha(opacity=100);}div.olMapViewport{-ms-touch-action:none;}.olLayerGrid .olTileImage{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;}.olTileImage{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000;}@media only screen and max-width 600px{div.olControlZoom a:hover{background:rgba(0,60,136,0.5);}} -------------------------------------------------------------------------------- /dialog_pages/weather_help/weather_help_main_de.html: -------------------------------------------------------------------------------- 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 |
Einheiten
WindIconWindsstärke in Beaufort (Bft)
Wikipedia
AirPressureIconLuftdruck in Hektopascal (hPa)
Wikipedia
AirTemperatureIconLufttemperatur in Grad Celsius (°C)
Wikipedia
PrecipitationIconNiederschlag in Millimeter (mm)
Wikipedia
WaveIconWellenhöhe in Meter (m)
Wikipedia
-------------------------------------------------------------------------------- /script/openlayers/art/marker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | ]> 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_lights_en.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
light majorMajor Light
light minorMinor Light
20 |
21 |
beacon_greenLight Vessel
beacon_redLight Float
-------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_lights_de.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
light majorLeuchtturm
light minorLeuchtfeuer
20 |
21 |
beacon_greenFeuerschiff
beacon_redFeuerschiff (unbemannt)
-------------------------------------------------------------------------------- /dialog_pages/weather_help/weather_help_main_en.html: -------------------------------------------------------------------------------- 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 |
Unit of measurement
WindIconWind speed in Beaufort (Bft)
Wikipedia
AirPressureIconAir pressure in Hectopascal (hPa)
Wikipedia
AirTemperatureIconAir temperature in degree Celsius (°C)
Wikipedia
PrecipitationIconPrecipitation in millimeter (mm)
Wikipedia
WaveIconWave height in meter (m)
Wikipedia
26 | -------------------------------------------------------------------------------- /script/openlayers/theme/default/style.mobile.css: -------------------------------------------------------------------------------- 1 | div.olControlZoom { 2 | position: absolute; 3 | top: 8px; 4 | left: 8px; 5 | background: rgba(255,255,255,0.4); 6 | border-radius: 4px; 7 | padding: 2px; 8 | } 9 | * { 10 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 11 | } 12 | div.olControlZoom a { 13 | display: block; 14 | margin: 1px; 15 | padding: 0; 16 | color: white; 17 | font-size: 28px; 18 | font-family: sans-serif; 19 | font-weight: bold; 20 | text-decoration: none; 21 | text-align: center; 22 | height: 32px; 23 | width: 32px; 24 | line-height: 28px; 25 | text-shadow: 0 0 3px rgba(0,0,0,0.8); 26 | background: #130085; /* fallback for IE - IE6 requires background shorthand*/ 27 | background: rgba(0, 60, 136, 0.5); 28 | filter: alpha(opacity=80); 29 | } 30 | a.olControlZoomIn { 31 | border-radius: 4px 4px 0 0; 32 | } 33 | a.olControlZoomOut { 34 | border-radius: 0 0 4px 4px; 35 | } 36 | div.olControlZoom a:hover { 37 | background: #130085; /* fallback for IE */ 38 | background: rgba(0, 60, 136, 0.7); 39 | filter: alpha(opacity=100); 40 | } 41 | @media only screen and (max-width: 600px) { 42 | div.olControlZoom a:hover { 43 | background: rgba(0, 60, 136, 0.5); 44 | } 45 | } 46 | div.olMapViewport { 47 | -ms-touch-action: none; 48 | } 49 | .olLayerGrid .olTileImage { 50 | -webkit-transition: opacity 0.2s linear; 51 | -moz-transition: opacity 0.2s linear; 52 | -o-transition: opacity 0.2s linear; 53 | transition: opacity 0.2s linear; 54 | } 55 | /* Turn on GPU support where available */ 56 | .olTileImage { 57 | -webkit-transform: translateZ(0); 58 | -moz-transform: translateZ(0); 59 | -o-transform: translateZ(0); 60 | -ms-transform: translateZ(0); 61 | transform: translateZ(0); 62 | -webkit-backface-visibility: hidden; 63 | -moz-backface-visibility: hidden; 64 | -ms-backface-visibility: hidden; 65 | backface-visibility: hidden; 66 | -webkit-perspective: 1000; 67 | -moz-perspective: 1000; 68 | -ms-perspective: 1000; 69 | perspective: 1000; 70 | } 71 | -------------------------------------------------------------------------------- /script/openlayers/art/measuring-stick-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ]> 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /script/openlayers/art/measuring-stick-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ]> 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenNauticalChart 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 |
31 |
32 |
33 |
34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /script/openlayers/art/slider.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 23 | 40 | 42 | 44 | 47 | image/svg+xml 49 | 52 | 53 | 54 | 55 | 59 | 66 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /script/openlayers/art/zoombar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 22 | 24 | 42 | 44 | 45 | 47 | image/svg+xml 48 | 50 | 51 | 52 | 53 | 57 | 64 | 68 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /include/topmenu_weather.inc: -------------------------------------------------------------------------------- 1 |
2 | 17 |
-------------------------------------------------------------------------------- /script/utilities.js: -------------------------------------------------------------------------------- 1 | 2 | function setCookie(key, value) { 3 | var expireDate = new Date; 4 | expireDate.setMonth(expireDate.getMonth() + 6); 5 | document.cookie = key + "=" + value + ";" + "expires=" + expireDate.toGMTString() + ";"; 6 | } 7 | 8 | function getCookie(argument) { 9 | var retValue = "-1" 10 | var buff = document.cookie; 11 | var args = buff.split(";"); 12 | for(i = 0; i < args.length; i++) { 13 | var a = args[i].split("="); 14 | if(trim(a[0]) == argument) { 15 | retValue = trim(a[1]); 16 | } 17 | } 18 | return retValue; 19 | } 20 | 21 | function getArgument(argument) { 22 | var retValue = "-1" 23 | if(window.location.search != "") { 24 | // We have parameters 25 | var undef = document.URL.split("?"); 26 | var args = undef[1].split("&"); 27 | for(i = 0; i < args.length; i++) { 28 | var a = args[i].split("="); 29 | if( trim(a[0]) == argument) { 30 | retValue = trim(a[1]); 31 | } 32 | } 33 | } 34 | return retValue; 35 | } 36 | 37 | function placeDiv(divId, xPos, yPos) { 38 | var element = document.getElementById(divId); 39 | element.style.position = "absolute"; 40 | element.style.left = xPos+'px'; 41 | element.style.top = yPos+'px'; 42 | } 43 | 44 | function checkKeyReturn(e) { 45 | var retValue = false; 46 | if (e.keyCode == 13) { 47 | retValue = true; 48 | } 49 | return retValue; 50 | } 51 | 52 | function trim(buffer) { 53 | return buffer.replace(/^\s+/, '').replace(/\s+$/, ''); 54 | } 55 | 56 | function convert2Web(buffer) { 57 | buffer = buffer.replace('&', '&'); 58 | buffer = buffer.replace('<', '<'); 59 | buffer = buffer.replace('>', '>'); 60 | buffer = buffer.replace('\'', '''); 61 | buffer = buffer.replace('\"', '"'); 62 | 63 | return buffer 64 | } 65 | 66 | function convert2Ascii(buffer) { 67 | buffer = buffer.replace('ü', 'ue'); 68 | buffer = buffer.replace('ö', 'oe'); 69 | buffer = buffer.replace('ä', 'ae'); 70 | buffer = buffer.replace('ß', 'ss'); 71 | buffer = buffer.replace('ø', 'oe'); 72 | 73 | return buffer 74 | } 75 | 76 | function convert2Locode(buffer) { 77 | buffer = buffer.replace('ü', 'u'); 78 | buffer = buffer.replace('ö', 'o'); 79 | buffer = buffer.replace('ä', 'a'); 80 | buffer = buffer.replace('ß', 'ss'); 81 | buffer = buffer.replace('ø', 'o'); 82 | 83 | return buffer 84 | } 85 | 86 | function convert2Text(buffer) { 87 | buffer = buffer.replace(/%20/g, ' '); 88 | buffer = buffer.replace(/°/g, '°'); 89 | 90 | return buffer 91 | } 92 | 93 | function format2FixedLenght(number, length, fraclength) { 94 | var text = number.toFixed(fraclength); 95 | while (text.length < length) text = "0"+text; 96 | 97 | return text; 98 | } 99 | 100 | function loadFile(name, format) { 101 | var retValue = -1; 102 | if (window.XMLHttpRequest) { 103 | xhttp=new XMLHttpRequest(); 104 | } else { 105 | xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 106 | } 107 | xhttp.open("GET", name, false); 108 | xhttp.send(); 109 | if (format == "xml") { 110 | retValue = xhttp.responseXML; 111 | } else { 112 | retValue = xhttp.responseText; 113 | } 114 | return retValue; 115 | } 116 | 117 | -------------------------------------------------------------------------------- /script/json2.js: -------------------------------------------------------------------------------- 1 | if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
harbourHarbour harbour_masterHarbour Master toiletToilet
fishing_harbourFishing Harbour visitor_berthVisitor berth showerShower
harbourMarina visitor_mooringVisitor mooring 37 |
38 |
marinaAnchorage 45 |
46 |
waste_disposalWaste Disposal
53 |
54 |
craneCrane
sailing_clubVerein slipwaySlipway
fuelFuel
-------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_harbours_de.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
harbourHafen harbour_masterHafenmeister toiletToilette
fishing_harbourFisherei Hafen visitor_berthGastliegeplätze showerDusche
harbourMarina visitor_mooringGastankerplätze 37 |
38 |
marinaAnkerplatz 45 |
46 |
waste_disposalFäkalienentsorgung
53 |
54 |
craneKran
sailing_clubVerein slipwayBootsrampe, Slipanlage
fuelTankstelle
-------------------------------------------------------------------------------- /script/openlayers_3/ol.css: -------------------------------------------------------------------------------- 1 | .ol-control,.ol-scale-line{position:absolute;padding:2px}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-control{background-color:rgba(255,255,255,.4);border-radius:4px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;font-size:.7rem;line-height:1.375em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution.ol-logo-only ul{display:block}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0;height:1.1em;line-height:1em}.ol-attribution.ol-logo-only{background:0 0;bottom:.4em;height:1.1em;line-height:1em}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)} -------------------------------------------------------------------------------- /script/nominatim.js: -------------------------------------------------------------------------------- 1 | // AJAX Nominatim Call 2 | // 27.06.2014 3 | // Olaf Hannemann 4 | 5 | function GetXmlHttpObject() { 6 | try { 7 | // Firefox. Opera, Sarafi 8 | try { // get firefox to do cross domain ajax 9 | netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 10 | netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 11 | } catch (err) { 12 | //alert("Error initializing XMLHttpRequest.\n"+err); // show error 13 | } 14 | xmlHttp = new XMLHttpRequest(); // instantiate it regardless of security 15 | } 16 | catch(err) { 17 | // Internet Explorer 18 | try { 19 | xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 20 | } catch(err) { 21 | xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 22 | } 23 | } 24 | return xmlHttp; 25 | } 26 | 27 | function ajax(url, callback, infotext) { 28 | var xmlhttp = GetXmlHttpObject(); 29 | if (xmlhttp) { 30 | xmlhttp.open("GET", url, true); 31 | xmlhttp.onreadystatechange=function(){ 32 | if ( xmlhttp.readyState == 4 ) { 33 | callback(xmlhttp, infotext); 34 | } 35 | } 36 | xmlhttp.send(null); 37 | } 38 | } 39 | 40 | function nominatim(searchtext) { 41 | var url='./api/nominatim.php?q='+searchtext; 42 | ajax(url, nominatim_callback, infotext=searchtext); 43 | } 44 | 45 | function nominatim_callback(xmlHttp, infotext) { 46 | if ( xmlHttp.status == 0 ) { 47 | alert('"'+infotext+' not found.'); 48 | } else if ( xmlHttp.status == 200 ) { 49 | if ( xmlHttp.responseXML.getElementsByTagName('place')[0] ) { // is one place returned? 50 | addSearchResults(xmlHttp); 51 | } else { 52 | alert('"'+infotext+'" not found.'); 53 | } 54 | } 55 | } 56 | 57 | // Show search results in dialog window 58 | function addSearchResults(xmlHttp) { 59 | var items = xmlHttp.responseXML.getElementsByTagName("place"); 60 | var placeName, description, placeLat, placeLon; 61 | var buff, pos; 62 | var htmlText = ""; 63 | for(i = 0; i < items.length; i++) { 64 | buff = xmlHttp.responseXML.getElementsByTagName('place')[i].getAttribute('display_name'); 65 | placeLat = xmlHttp.responseXML.getElementsByTagName('place')[i].getAttribute('lat'); 66 | placeLon = xmlHttp.responseXML.getElementsByTagName('place')[i].getAttribute('lon'); 67 | pos = buff.indexOf(","); 68 | placeName = buff.substring(0, pos); 69 | description = buff.substring(pos +1).trim(); 70 | htmlText += ""; 71 | } 72 | htmlText += "
" + placeName + "" + description + "
"; 73 | showActionDialog(localize("%search_results", "Search results"), htmlText); 74 | } 75 | 76 | function josm_call() { 77 | var left = x2lon( map.getExtent().left ).toFixed(5); 78 | var right = x2lon( map.getExtent().right ).toFixed(5); 79 | var top = y2lat( map.getExtent().top ).toFixed(5); 80 | var bottom = y2lat( map.getExtent().bottom ).toFixed(5); 81 | var baseUrl = 'http://127.0.0.1:8111/load_and_zoom?left='+left+'&right='+right+'&top='+top+'&bottom='+bottom; 82 | document.getElementById('josm_call_iframe').src=baseUrl; 83 | } 84 | -------------------------------------------------------------------------------- /script/openlayers/art/panning-hand-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ]> 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /script/openlayers/art/panning-hand-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ]> 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /script/language/localizations.js: -------------------------------------------------------------------------------- 1 | String.toLocaleString({ 2 | // Deutsch 3 | "de": { 4 | // locale 5 | "%locale": "de", 6 | // Main 7 | "%about": "Über", 8 | "%bearing": "Kurs", 9 | "%clear": "Zurücksetzen", 10 | "%close": "Schließen", 11 | "%coordinate": "Koordinate", 12 | "%coordinate_grid": "Koordinatengitter", 13 | "%contact": "Kontakt", 14 | "%distance": "Distanz", 15 | "%download": "Herunterladen", 16 | "%email": "E-Mail", 17 | "%finish": "Ziel", 18 | "%format": "Format", 19 | "%forum": "Forum", 20 | "%harbour": "Hafen", 21 | "%help": "Hilfe", 22 | "%license": "Lizenz", 23 | "%loading_data": "lade Daten", 24 | "%map_download": "Karte herunterladen", 25 | "%name": "Name", 26 | "%nautical_chart": "Seekarte", 27 | "%new": "Neu", 28 | "%permalink": "Permalink", 29 | "%please_select_chart": "Bitte Karte wählen", 30 | "%phone": "Telefon", 31 | "%project": "Projekt", 32 | "%seamarks": "Seezeichen", 33 | "%search_results": "Suchergebnisse", 34 | "%start": "Start", 35 | "%tidal_scale": "Pegel", 36 | "%tools": "Werkzeuge", 37 | "%trip_planner": "Törnplaner", 38 | "%unknown": "Unbekannt", 39 | "%view": "Ansicht", 40 | "%weather": "Wetter", 41 | "%web": "Web", 42 | // Weather pages 43 | "%air_pressure": "Luftdruck", 44 | "%precipitation": "Niederschlag", 45 | "%temperature": "Temperatur", 46 | "%time_utc": "Zeit (UTC)", 47 | "%wave_height": "Wellenhöhe", 48 | "%wind": "Wind", 49 | // Dialog pages 50 | "%about_dialog": "OpenNauticalChart
Version: " + version + "
Datum: " + date + loadFile('./dialog_pages/about/about_de.html', 'txt'), 51 | "%map_key": "Legende", 52 | "%report_bugs": "Fehler berichten", 53 | "%select_format": "Bitte wählen sie ein Format." 54 | }, 55 | // English 56 | "en": { 57 | // locale 58 | "%locale": "en", 59 | // Main 60 | "%about": "About", 61 | "%bearing": "Bearing", 62 | "%clear": "Clear", 63 | "%close": "Close", 64 | "%coordinate": "Coordinate", 65 | "%coordinate_grid": "Coordinate grid", 66 | "%contact": "Contact", 67 | "%distance": "Distance", 68 | "%download": "Download", 69 | "%email": "E-Mail", 70 | "%finish": "Finish", 71 | "%format": "Format", 72 | "%forum": "Forum", 73 | "%harbour": "Harbour", 74 | "%help": "Help", 75 | "%license": "License", 76 | "%loading_data": "loading data", 77 | "%map_download": "Download chart", 78 | "%name": "Name", 79 | "%nautical_chart": "Nautical chart", 80 | "%new": "New", 81 | "%permalink": "Permalink", 82 | "%please_select_chart": "Please select chart", 83 | "%phone": "Phone", 84 | "%project": "Project", 85 | "%seamarks": "Sea marks", 86 | "%search_results": "Search results", 87 | "%start": "Start", 88 | "%tidal_scale": "Tidal scale", 89 | "%tools": "Tools", 90 | "%trip_planner": "Trip planner", 91 | "%unknown": "Unknown", 92 | "%view": "View", 93 | "%weather": "Weather", 94 | "%web": "Web", 95 | // Weather pages 96 | "%air_pressure": "Air pressure", 97 | "%precipitation": "Precipitation", 98 | "%temperature": "Temperature", 99 | "%time_utc": "Time (UTC)", 100 | "%wave_height": "Wave height", 101 | "%wind": "Wind", 102 | // Dialog pages 103 | "%about_dialog": "OpenNauticalChart

Version: " + version + "
Date: " + date + "

" + loadFile('./dialog_pages/about/about_en.html', 'txt'), 104 | "%map_key": "Map key", 105 | "%report_bugs": "Report bugs", 106 | "%select_format": "Please select a format." 107 | }, 108 | // Español 109 | "es": { 110 | 111 | }, 112 | // Français 113 | "fr": { 114 | 115 | }, 116 | // Italiano 117 | "it": { 118 | 119 | }, 120 | // Nederlands 121 | "nl": { 122 | 123 | }, 124 | // Português 125 | "pt": { 126 | 127 | } 128 | }); -------------------------------------------------------------------------------- /script/OpenStreetMap.js: -------------------------------------------------------------------------------- 1 | OpenLayers.Util.OSM = {}; 2 | 3 | //Class: OpenLayers.Layer.OSM.Mapnik 4 | OpenLayers.Layer.OSM.Mapnik = OpenLayers.Class(OpenLayers.Layer.OSM, { 5 | initialize: function(name, options) { 6 | var url = [ 7 | "http://a.tile.openstreetmap.org/${z}/${x}/${y}.png", 8 | "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png", 9 | "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png" 10 | ]; 11 | options = OpenLayers.Util.extend({ numZoomLevels: 19, buffer: 0 }, options); 12 | var newArguments = [name, url, options]; 13 | OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments); 14 | }, 15 | 16 | CLASS_NAME: "OpenLayers.Layer.OSM.Mapnik" 17 | }); 18 | 19 | function getNodeInformation(a ,b, c, d) { 20 | var xmlDoc=loadFile("./api/get_node_information.php?bb=" + a +","+ b +","+ c +","+ d, "xml"); 21 | var root = xmlDoc.getElementsByTagName("osm")[0]; 22 | var itemType ="-1"; 23 | var infoText = "-1"; 24 | var items = root.getElementsByTagName("way"); 25 | for (var i=0; i < items.length; ++i) { 26 | var item = items[i]; 27 | itemType = getTag(item, "seamark:type"); 28 | if (itemType == "harbour") { 29 | var buff = parseNodeHarbour(item); 30 | if (buff != "-1") { 31 | infoText = buff; 32 | infoText += "
" + localize("%weather", "Weather") + ""; 33 | } 34 | } else { 35 | itemType = "-1"; 36 | } 37 | } 38 | if (itemType == "-1") { 39 | items = root.getElementsByTagName("node"); 40 | for (var i=0; i < items.length; ++i) { 41 | var item = items[i]; 42 | itemType = getTag(item, "seamark:type"); 43 | if (itemType == "harbour") { 44 | var buff = parseNodeHarbour(item); 45 | if (buff != "-1") { 46 | infoText = buff; 47 | infoText += "
" + localize("%weather", "Weather") + ""; 48 | } 49 | } 50 | } 51 | } 52 | return infoText; 53 | } 54 | 55 | function getTag(item, key) { 56 | var tags = item.getElementsByTagName("tag"); 57 | var tagValue = "-1"; 58 | for (var n=0; n < tags.length; ++n) { 59 | var tag = tags[n]; 60 | var itemKey = tag.getAttribute("k"); 61 | if (itemKey == key) { 62 | tagValue = tag.getAttribute("v"); 63 | } 64 | } 65 | return tagValue; 66 | } 67 | 68 | function parseNodeHarbour(item) { 69 | var infoName = getTag(item, "name") ; 70 | var infoPhone = getTag(item, "phone"); 71 | var infoEmail = getTag(item, "email"); 72 | var infoWeb = getTag(item, "website"); 73 | var infoText = "-1"; 74 | if (infoName != "-1") { 75 | infoText = "" + infoName + "

"; 76 | } 77 | if (infoPhone != "-1") { 78 | infoText += "" + localize("%phone", "Phone") + ": " + infoPhone + "
"; 79 | } 80 | if (infoEmail != "-1") { 81 | infoText += "" + localize("%email", "E-Mail") + ": " + infoEmail + "
"; 82 | } 83 | if (infoWeb != "-1") { 84 | infoText += "" + localize("%web", "Web") + ": " + infoWeb + "
"; 92 | } 93 | 94 | return infoText; 95 | } 96 | 97 | function showWeatherPng(a, b) { 98 | showActionDialog(localize("%weather", "Weather"), "\"""); 99 | } -------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_inland_navigation_en.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 109 | 110 |
lock_gateLock Gate a1Waterway partly closed
lockLock a1aWaterway completely closed
26 |
27 |
a2Prohibition to overtake applying to all vessels
wier_smallWier a3 38 | Prohibition to overtake applying to composite units
39 | being towed 40 |
a4 48 | Prohibition to meet approaching vessel at narrow
49 | passage 50 |
a5 58 | Prohibition to be lying along the stretch of waterway
59 | behind the sign 60 |
a5_1 68 | Prohibition to be lying along the stretch of waterway
69 | in given meters behind the sign 70 |
a6Anchoring ban
a7Mooring ban
a8Turning ban
a9Speed limit (on account of hazards due to suction or wash)
a10 106 | Prohibition to pass beneath a bridge outside the width
107 | limited by the vertical centre-line 108 |
-------------------------------------------------------------------------------- /weather_index.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 7 | 8 | 9 | ONC - Weather 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 61 | 62 | 63 |
64 |
65 |
66 | 67 | 68 | 69 |
70 |
71 | 72 |
73 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /map-full.css: -------------------------------------------------------------------------------- 1 | html,body { 2 | background-color: #ffffff; 3 | height: 100%; 4 | width: 100%; 5 | margin: 0; 6 | padding: 0; 7 | overflow: hidden; 8 | color: #000000; 9 | } 10 | 11 | img { 12 | vertical-align: middle; 13 | } 14 | 15 | #map { 16 | height: 100%; 17 | width: 100%; 18 | padding: 0; margin: 0; 19 | } 20 | 21 | #actionDialog { 22 | position:absolute; 23 | top:50px; 24 | left:60px; 25 | visibility:hidden; 26 | border: 2px solid #000080; 27 | -moz-border-radius: 6px; 28 | -webkit-border-radius: 6px; 29 | border-radius: 6px 6px 6px 6px; 30 | background-color: #FFF; 31 | } 32 | 33 | /* 34 | OpenLayers------------------------------------------------------- 35 | */ 36 | .olImageLoadError { 37 | display: none !important; 38 | } 39 | 40 | .olControlMousePositionDM { 41 | bottom:0em; 42 | right: 0em; 43 | background-color: #FFF; 44 | margin: 0; 45 | padding: 2px; 46 | font-family: monospace; 47 | } 48 | 49 | /* 50 | Top menu--------------------------------------------------------- 51 | */ 52 | #topmenu { 53 | margin-bottom: 5px; 54 | border: 2px solid #000080; 55 | -moz-border-radius: 6px; 56 | -webkit-border-radius: 6px; 57 | border-radius: 6px; 58 | background-color: #FFF; 59 | padding: 2px; 60 | } 61 | 62 | #topmenu ul { 63 | margin: 0 10px 0 0; 64 | padding: 0; 65 | float:right; 66 | } 67 | 68 | #topmenu ul li { 69 | list-style: none; 70 | display: block; 71 | float: left; 72 | } 73 | 74 | #topmenu ul li:hover { 75 | background-color: #ADD8E6; 76 | cursor:pointer 77 | } 78 | 79 | #topmenu img { 80 | text-decoration: none; 81 | padding: 0 5px 0 5px; 82 | color: #000; 83 | } 84 | 85 | * { 86 | margin: 87 | padding: 0; 88 | } 89 | 90 | ul { 91 | list-style: none; 92 | } 93 | 94 | a { 95 | text-decoration: none; 96 | } 97 | 98 | /* 99 | Top menu level one----------------------------------------------- 100 | */ 101 | ul.dropdown { 102 | position: relative; 103 | background-color: #FFF; 104 | } 105 | 106 | ul.dropdown img { 107 | text-decoration: none; 108 | color: #000; 109 | } 110 | 111 | ul.dropdown li { font-weight: normal; float: left; background: #fff; color: black;} 112 | ul.dropdown a:hover { color: black; cursor:pointer; background-color: #ADD8E6; } 113 | ul.dropdown a:active { color: black; } 114 | ul.dropdown li a { display: block; padding: 2px 5px; border-right: 1px solid #333; color: black; } 115 | ul.dropdown li:last-child a { border-right: none; } /* Doesn't work in IE */ 116 | ul.dropdown li.hover, 117 | ul.dropdown li:hover { background: #F3D673; color: black; position: relative; } 118 | ul.dropdown li.hover a { color: black; } 119 | /* 120 | Top menu level two----------------------------------------------- 121 | */ 122 | ul.dropdown ul { width: 250px; visibility: hidden; position: absolute; top: 100%; left: 0; } 123 | ul.dropdown ul li { font-weight: normal; background: #f6f6f6; color: #000; border-bottom: 1px solid #ccc; float: none; } 124 | 125 | /* IE 6 & 7 Needs Inline Block */ 126 | ul.dropdown ul li a { border-right: none; width: 200px; display: inline-block; } 127 | /* 128 | Top menu level three--------------------------------------------- 129 | */ 130 | ul.dropdown ul ul { left: 100%; top: 0; } 131 | ul.dropdown li:hover > ul { visibility: visible; } 132 | 133 | /* 134 | Top menu map key------------------------------------------------- 135 | */ 136 | 137 | #menubar_map_key a{ 138 | text-decoration: none; 139 | padding: 0 25px 0 25px; 140 | color: #000000; 141 | background-color:#CAE1FF; 142 | cursor:pointer; 143 | opacity: 0.50; 144 | -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 145 | filter: alpha(opacity=50); 146 | } 147 | 148 | #menubar_map_key span{ 149 | text-decoration: none; 150 | padding: 0 25px 0 25px; 151 | color: #000000; 152 | background-color:#CAE1FF; 153 | font-weight: bold; 154 | cursor:default; 155 | opacity: 0.80; 156 | -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; 157 | filter: alpha(opacity=80); 158 | } 159 | 160 | #menubar_map_key a:hover { 161 | color: #990000; 162 | opacity: 0.65; 163 | -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=65)"; 164 | filter: alpha(opacity=65); 165 | } -------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_sea_marks_en.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 95 | 96 | 97 | 98 | 99 | 100 |
Sea marks (IALA Region A) Sea mark shapes
safe_waterSafe water buoy_pillarPillar
lateral_starboardStarboard mark buoy_sparSpar
lateral_portPort mark buoy_coneCone
lateral_pref_starboardPreferred channel: starboard buoy_canCan
lateral_pref_portPreferred channel: port buoy_sphereSphere
52 |
53 |
buoy_barrelBarrel
cardinal_northNorth cardinal mark 63 |
64 |
cardinal_eastEast cardinal mark stakeStake
cardinal_southSouth cardinal mark perch_starboardPerch starboard
cardinal_westWest cardinal mark perch_portPerch port
isolated_dangersolated danger mark
93 |
94 |
special_purposeSpecial mark
101 | -------------------------------------------------------------------------------- /include/topmenu.inc: -------------------------------------------------------------------------------- 1 | 2 |
3 | 48 |
49 | -------------------------------------------------------------------------------- /script/download_map.js: -------------------------------------------------------------------------------- 1 | var downloadName; 2 | var downloadLink; 3 | 4 | function addMapDownload() { 5 | selectControl.hover = false; 6 | addDownloadlayer(); 7 | 8 | var htmlText = ""; 9 | htmlText += ""; 10 | htmlText += ""; 11 | htmlText += "
" + localize('%name', 'Name') + "
" + localize('%please_select_chart', 'Please select chart') + "
" + localize('%format', 'Format') + ":
"; 12 | showActionDialog(localize('%map_download', 'Download chart'), htmlText, "closeMapDownload()", "downloadMap()"); 13 | getDownloadMapBmpFormat(); 14 | } 15 | 16 | function selChangedMapBmpFormat() { 17 | var format = document.getElementById("mapFormat").value; 18 | // Set cookie for remembering the download format 19 | setCookie("downloadMapBmpFormat", format); 20 | } 21 | 22 | function getDownloadMapBmpFormat() { 23 | var buff = getCookie("downloadMapBmpFormat"); 24 | if (buff != "-1") { 25 | document.getElementById("mapFormat").value = buff; 26 | } 27 | } 28 | 29 | function addDownloadlayer() { 30 | var xmlDoc=loadFile("./gml/map_download.xml", "xml"); 31 | 32 | if (layer_download == -1) { 33 | layer_download = new OpenLayers.Layer.Vector("map_download", {visibility: true }); 34 | map.addLayer(layer_download); 35 | // Register featureselect for download tool 36 | selectControl.addLayer(layer_download); 37 | layer_download.events.register("featureselected", layer_download, selectedMap); 38 | } 39 | layer_download.removeAllFeatures(); 40 | try { 41 | var root = xmlDoc.getElementsByTagName("maps")[0]; 42 | var items = root.getElementsByTagName("map"); 43 | } catch(e) { 44 | alert("Error (root): "+ e); 45 | return -1; 46 | } 47 | for (var i=0; i < items.length; ++i) { 48 | var item = items[i]; 49 | var load = false; 50 | var category =item.getElementsByTagName("category")[0].childNodes[0].nodeValue; 51 | 52 | if (zoom <= 7 && category >= 2) { 53 | load = true; 54 | } else if (zoom <= 10 && category >= 4) { 55 | load = true; 56 | } else if (zoom <= 13 && category >= 6) { 57 | load = true; 58 | } else if (zoom <= 18 && category >= 7) { 59 | load = true; 60 | } 61 | 62 | if (load) { 63 | try { 64 | var n = item.getElementsByTagName("north")[0].childNodes[0].nodeValue; 65 | var s = item.getElementsByTagName("south")[0].childNodes[0].nodeValue; 66 | var e = item.getElementsByTagName("east")[0].childNodes[0].nodeValue; 67 | var w = item.getElementsByTagName("west")[0].childNodes[0].nodeValue; 68 | } catch(e) { 69 | alert("Error (load): " + e); 70 | return -1; 71 | } 72 | var bounds = new OpenLayers.Bounds(w, s, e, n); 73 | bounds.transform(new OpenLayers.Projection("EPSG:4326"), new 74 | OpenLayers.Projection("EPSG:900913")); 75 | var name = item.getElementsByTagName("name")[0].childNodes[0].nodeValue.trim(); 76 | var link = item.getElementsByTagName("link")[0].childNodes[0].nodeValue.trim(); 77 | var attributes = {name: name, link: link}; 78 | var box = new OpenLayers.Feature.Vector(bounds.toGeometry(), attributes); 79 | layer_download.addFeatures(box); 80 | } 81 | } 82 | } 83 | 84 | function closeMapDownload() { 85 | selectControl.hover = true; 86 | layer_download.removeAllFeatures(); 87 | map.removeLayer(layer_download); 88 | layer_download = -1; 89 | closeActionDialog(); 90 | } 91 | 92 | function downloadMap() { 93 | var format = document.getElementById("mapFormat").value; 94 | 95 | if (format == "unknown") { 96 | alert( localize('%select_format', 'Please select a format')); 97 | return; 98 | } else if (format == "cal") { 99 | format = "_png." + format 100 | } else { 101 | format = "." + format 102 | } 103 | var url = "http://sourceforge.net/projects/opennautical/files/Maps" + downloadLink + "ONC-" + downloadName + format + "/download"; 104 | 105 | downloadWindow = window.open(url); 106 | } 107 | 108 | function selectedMap (event) { 109 | var feature = event.feature; 110 | 111 | downloadName = feature.attributes.name; 112 | downloadLink =feature.attributes.link; 113 | 114 | document.getElementById('download_dialog_name').innerHTML = ""+ downloadName +""; 115 | document.getElementById('buttonActionDlgDownload').disabled = false; 116 | } -------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_sea_marks_de.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 95 | 96 | 97 | 98 | 99 | 100 |
Seezeichen (IALA Region A) Seezeichen Formen
safe_waterSicheres Fahrwasser, Ansteuerung buoy_pillarBakentonne
lateral_starboardFahrwassertonne Steuerbord buoy_sparSpierentonne
lateral_portFahrwassertonne Backbord buoy_coneSpitztonne
lateral_pref_starboardDurchgehendes Fahrwasser: Steuerbord buoy_canStumpftonne
lateral_pref_portDurchgehendes Fahrwasser: Backbord buoy_sphereKugeltonne
52 |
53 |
buoy_barrelFasstonne
cardinal_northSeezeichen nördlich der Gefahrenstelle 63 |
64 |
cardinal_eastSeezeichen östlich der Gefahrenstelle stakeSpiere
cardinal_southSeezeichen südlich der Gefahrenstelle perch_starboardPricke Steuerbord
cardinal_westSeezeichen westlich der Gefahrenstelle perch_portPricke Backbord
isolated_dangerEinzelgefahrenzeichen
93 |
94 |
special_purposeKennzeichnung besonderer Gebiete
101 | -------------------------------------------------------------------------------- /dialog_pages/map_key/map_key_inland_navigation_de.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 |
lock_gateSchleusentor a1Verbot der Durchfahrt
lockSchleuse a1aGesperrte Wasserfläche
26 |
27 |
a2Überholverbot allgemein
wierWehr a3Überholverbot für Verbände
a4Verbot des Begegnens und Überholens
a5Stillliegeverbot
a5_1Stillliegeverbot auf der Wasserfläche, deren Breite, gemessen vom
Aufstellungsort, auf dem Tafelzeichen in Metern angegeben ist.
a6Ankerverbot
a7Festmacheverbot
a8Wendeverbot
a9Vermeidung von Wellenschlag oder Sogwirkungen
a10Verbot außerhalb der angezeigten Begrenzung zu fahren
a12Fahrverbot für Fahrzeuge mit Maschinenantrieb
a13Fahrverbot für Sportboote
a14Verbot des Wasserskilaufens
a15Fahrverbot für Segelfahrzeuge
a16Fahrverbot für Fahrzeuge, die weder mit Maschinenantrieb
noch unter Segel fahren.
a17Verbot des Segelsurfens
a18Fahrverbot für Wassermotorräder (Wasserscooter, Jetski usw.).
-------------------------------------------------------------------------------- /script/language/l10n.js: -------------------------------------------------------------------------------- 1 | /* 2 | * l10n.js 3 | * 2014-05-02 4 | * 5 | * By Eli Grey, http://eligrey.com 6 | * Licensed under the X11/MIT License 7 | * See https://github.com/eligrey/l10n.js/blob/master/LICENSE.md 8 | */ 9 | 10 | /*global XMLHttpRequest, setTimeout, document, navigator, ActiveXObject*/ 11 | 12 | /*! @source http://purl.eligrey.com/github/l10n.js/blob/master/l10n.js*/ 13 | 14 | (function () { 15 | "use strict"; 16 | 17 | var 18 | undef_type = "undefined" 19 | , string_type = "string" 20 | , nav = self.navigator 21 | , String_ctr = String 22 | , has_own_prop = Object.prototype.hasOwnProperty 23 | , load_queues = {} 24 | , localizations = {} 25 | , FALSE = !1 26 | , TRUE = !0 27 | // the official format is application/vnd.oftn.l10n+json, though l10n.js will also 28 | // accept application/x-l10n+json and application/l10n+json 29 | , l10n_js_media_type = /^\s*application\/(?:vnd\.oftn\.|x-)?l10n\+json\s*(?:$|;)/i 30 | , XHR 31 | 32 | // property minification aids 33 | , $locale = "locale" 34 | , $default_locale = "defaultLocale" 35 | , $to_locale_string = "toLocaleString" 36 | , $to_lowercase = "toLowerCase" 37 | 38 | , array_index_of = Array.prototype.indexOf || function (item) { 39 | var 40 | len = this.length 41 | , i = 0 42 | ; 43 | 44 | for (; i < len; i++) { 45 | if (i in this && this[i] === item) { 46 | return i; 47 | } 48 | } 49 | 50 | return -1; 51 | } 52 | , request_JSON = function (uri) { 53 | var req = new XHR(); 54 | 55 | // sadly, this has to be blocking to allow for a graceful degrading API 56 | req.open("GET", uri, FALSE); 57 | req.send(null); 58 | 59 | if (req.status !== 200) { 60 | // warn about error without stopping execution 61 | setTimeout(function () { 62 | // Error messages are not localized as not to cause an infinite loop 63 | var l10n_err = new Error("Unable to load localization data: " + uri); 64 | l10n_err.name = "Localization Error"; 65 | throw l10n_err; 66 | }, 0); 67 | 68 | return {}; 69 | } else { 70 | return JSON.parse(req.responseText); 71 | } 72 | } 73 | , load = String_ctr[$to_locale_string] = function (data) { 74 | // don't handle function.toLocaleString(indentationAmount:Number) 75 | if (arguments.length > 0 && typeof data !== "number") { 76 | if (typeof data === string_type) { 77 | load(request_JSON(data)); 78 | } else if (data === FALSE) { 79 | // reset all localizations 80 | localizations = {}; 81 | } else { 82 | // Extend current localizations instead of completely overwriting them 83 | var locale, localization, message; 84 | for (locale in data) { 85 | if (has_own_prop.call(data, locale)) { 86 | localization = data[locale]; 87 | locale = locale[$to_lowercase](); 88 | 89 | if (!(locale in localizations) || localization === FALSE) { 90 | // reset locale if not existing or reset flag is specified 91 | localizations[locale] = {}; 92 | } 93 | 94 | if (localization === FALSE) { 95 | continue; 96 | } 97 | 98 | // URL specified 99 | if (typeof localization === string_type) { 100 | if (String_ctr[$locale][$to_lowercase]().indexOf(locale) === 0) { 101 | localization = request_JSON(localization); 102 | } else { 103 | // queue loading locale if not needed 104 | if (!(locale in load_queues)) { 105 | load_queues[locale] = []; 106 | } 107 | load_queues[locale].push(localization); 108 | continue; 109 | } 110 | } 111 | 112 | for (message in localization) { 113 | if (has_own_prop.call(localization, message)) { 114 | localizations[locale][message] = localization[message]; 115 | } 116 | } 117 | } 118 | } 119 | } 120 | } 121 | // Return what function.toLocaleString() normally returns 122 | return Function.prototype[$to_locale_string].apply(String_ctr, arguments); 123 | } 124 | , process_load_queue = function (locale) { 125 | var 126 | queue = load_queues[locale] 127 | , i = 0 128 | , len = queue.length 129 | , localization 130 | ; 131 | 132 | for (; i < len; i++) { 133 | localization = {}; 134 | localization[locale] = request_JSON(queue[i]); 135 | load(localization); 136 | } 137 | 138 | delete load_queues[locale]; 139 | } 140 | , use_default 141 | , localize = String_ctr.prototype[$to_locale_string] = function () { 142 | var 143 | using_default = use_default 144 | , current_locale = String_ctr[using_default ? $default_locale : $locale] 145 | , parts = current_locale[$to_lowercase]().split("-") 146 | , i = parts.length 147 | , this_val = this.valueOf() 148 | , locale 149 | ; 150 | 151 | use_default = FALSE; 152 | 153 | // Iterate through locales starting at most-specific until a localization is found 154 | do { 155 | locale = parts.slice(0, i).join("-"); 156 | // load locale if not loaded 157 | if (locale in load_queues) { 158 | process_load_queue(locale); 159 | } 160 | if (locale in localizations && this_val in localizations[locale]) { 161 | return localizations[locale][this_val]; 162 | } 163 | } 164 | while (i --> 1); 165 | 166 | if (!using_default && String_ctr[$default_locale]) { 167 | use_default = TRUE; 168 | return localize.call(this_val); 169 | } 170 | 171 | return this_val; 172 | } 173 | ; 174 | 175 | if (typeof XMLHttpRequest === undef_type && typeof ActiveXObject !== undef_type) { 176 | var AXO = ActiveXObject; 177 | 178 | XHR = function () { 179 | try { 180 | return new AXO("Msxml2.XMLHTTP.6.0"); 181 | } catch (xhrEx1) {} 182 | try { 183 | return new AXO("Msxml2.XMLHTTP.3.0"); 184 | } catch (xhrEx2) {} 185 | try { 186 | return new AXO("Msxml2.XMLHTTP"); 187 | } catch (xhrEx3) {} 188 | 189 | throw new Error("XMLHttpRequest not supported by this browser."); 190 | }; 191 | } else { 192 | XHR = XMLHttpRequest; 193 | } 194 | 195 | String_ctr[$default_locale] = String_ctr[$default_locale] || ""; 196 | String_ctr[$locale] = nav && (nav.language || nav.userLanguage) || ""; 197 | 198 | if (typeof document !== undef_type) { 199 | var 200 | elts = document.getElementsByTagName("link") 201 | , i = elts.length 202 | , localization 203 | ; 204 | 205 | while (i--) { 206 | var 207 | elt = elts[i] 208 | , rel = (elt.getAttribute("rel") || "")[$to_lowercase]().split(/\s+/) 209 | ; 210 | 211 | if (l10n_js_media_type.test(elt.type)) { 212 | if (array_index_of.call(rel, "localizations") !== -1) { 213 | // multiple localizations 214 | load(elt.getAttribute("href")); 215 | } else if (array_index_of.call(rel, "localization") !== -1) { 216 | // single localization 217 | localization = {}; 218 | localization[(elt.getAttribute("hreflang") || "")[$to_lowercase]()] = 219 | elt.getAttribute("href"); 220 | load(localization); 221 | } 222 | } 223 | } 224 | } 225 | 226 | }()); -------------------------------------------------------------------------------- /script/openlayers/art/layer-switcher-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 23 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 54 | 57 | 67 | 75 | 76 | 77 | 82 | + 94 | 95 | 106 | 128 | 129 | -------------------------------------------------------------------------------- /script/openlayers/art/arrows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 23 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 54 | 56 | 66 | 74 | 75 | 76 | 81 | 93 | 94 | 105 | 127 | 128 | -------------------------------------------------------------------------------- /script/openlayers/art/layer-switcher-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 23 | 39 | 41 | 42 | 44 | image/svg+xml 45 | 47 | 48 | 49 | 50 | 55 | 66 | 67 | 71 | - 83 | 90 | 91 | 109 | 120 | 142 | 143 | -------------------------------------------------------------------------------- /script/openlayers/theme/default/style.tidy.css: -------------------------------------------------------------------------------- 1 | div.olMap{z-index:0;cursor:default;margin:0!important;padding:0!important;}div.olMapViewport{text-align:left;-ms-touch-action:none;}.olLayerGoogleCopyright{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGoogleCopyright{right:auto!important;}.olLayerGooglePoweredBy{left:2px;bottom:15px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:15px!important;}.olForeignContainer{opacity:1!important;}.olControlAttribution{font-size:smaller;right:3px;bottom:4.5em;position:absolute;display:block;}.olControlScale{right:3px;bottom:3em;display:block;position:absolute;font-size:smaller;}.olControlScaleLine{display:block;position:absolute;left:10px;bottom:15px;font-size:xx-small;}.olControlScaleLineBottom{border:solid 2px #000;border-bottom:none;margin-top:-2px;text-align:center;}.olControlScaleLineTop{border:solid 2px #000;border-top:none;text-align:center;}.olControlPermalink{right:3px;bottom:1.5em;display:block;position:absolute;font-size:smaller;}div.olControlMousePosition{bottom:0;right:3px;display:block;position:absolute;font-family:Arial;font-size:smaller;}.olControlOverviewMapContainer{position:absolute;bottom:0;right:0;}.olControlOverviewMapElement{background-color:#00008B;-moz-border-radius:1em 0 0;padding:10px 18px 10px 10px;}.olControlOverviewMapMinimizeButton,.olControlOverviewMapMaximizeButton{height:18px;width:18px;right:0;bottom:80px;cursor:pointer;}.olControlOverviewMapExtentRectangle{overflow:hidden;background-image:url(img/blank.gif);cursor:move;border:2px dotted red;}.olControlOverviewMapRectReplacement{overflow:hidden;cursor:move;background-image:url(img/overview_replacement.gif);background-repeat:no-repeat;background-position:center;}.olLayerGeoRSSDescription{float:left;width:100%;overflow:auto;font-size:1em;}.olLayerGeoRSSClose{float:right;color:gray;font-size:1.2em;margin-right:6px;font-family:sans-serif;}.olLayerGeoRSSTitle{float:left;font-size:1.2em;}.olControlNavigationHistory{background-image:url(img/navigation_history.png);background-repeat:no-repeat;width:24px;height:24px;}.olControlNavigationHistoryPreviousItemActive{background-position:0 0;}.olControlNavigationHistoryPreviousItemInactive{background-position:0 -24px;}.olControlNavigationHistoryNextItemActive{background-position:-24px 0;}.olControlNavigationHistoryNextItemInactive{background-position:-24px -24px;}div.olControlSaveFeaturesItemActive{background-image:url(img/save_features_on.png);background-repeat:no-repeat;background-position:0 1px;}div.olControlSaveFeaturesItemInactive{background-image:url(img/save_features_off.png);background-repeat:no-repeat;background-position:0 1px;}.olHandlerBoxZoomBox{border:2px solid red;position:absolute;background-color:#FFF;opacity:.5;font-size:1px;filter:alpha(opacity=50);}.olHandlerBoxSelectFeature{border:2px solid blue;position:absolute;background-color:#FFF;opacity:.5;font-size:1px;filter:alpha(opacity=50);}.olControlPanPanel{top:10px;left:5px;}.olControlPanPanel div{background-image:url(img/pan-panel.png);height:18px;width:18px;cursor:pointer;position:absolute;}.olControlPanPanel .olControlPanNorthItemInactive{top:0;left:9px;background-position:0 0;}.olControlPanPanel .olControlPanSouthItemInactive{top:36px;left:9px;background-position:18px 0;}.olControlPanPanel .olControlPanWestItemInactive{position:absolute;top:18px;left:0;background-position:0 18px;}.olControlPanPanel .olControlPanEastItemInactive{top:18px;left:18px;background-position:18px 18px;}.olControlZoomPanel{top:71px;left:14px;}.olControlZoomPanel div{background-image:url(img/zoom-panel.png);position:absolute;height:18px;width:18px;cursor:pointer;}.olControlZoomPanel .olControlZoomInItemInactive{top:0;left:0;background-position:0 0;}.olControlZoomPanel .olControlZoomToMaxExtentItemInactive{top:18px;left:0;background-position:0 -18px;}.olControlZoomPanel .olControlZoomOutItemInactive{top:36px;left:0;background-position:0 18px;}.olControlPanZoomBar div{font-size:1px;}.olPopupCloseBox{background:url(img/close.gif) no-repeat;cursor:pointer;}.olImageLoadError{background-color:#FFC0CB;opacity:.5;filter:alpha(opacity=50);}.olCursorWait{cursor:wait;}.olDrawBox{cursor:crosshair;}.olControlDragFeatureActive.olControlDragFeatureOver.olDragDown{cursor:0;}.olControlLayerSwitcher{position:absolute;top:25px;right:0;width:20em;font-family:sans-serif;font-weight:700;margin-top:3px;margin-left:3px;margin-bottom:3px;font-size:smaller;color:#FFF;background-color:transparent;}.olControlLayerSwitcher .layersDiv{background-color:#00008B;padding:5px 10px;}.olControlLayerSwitcher .layersDiv .baseLbl,.olControlLayerSwitcher .layersDiv .dataLbl{margin-top:3px;margin-left:3px;margin-bottom:3px;}.olControlLayerSwitcher .layersDiv .baseLayersDiv,.olControlLayerSwitcher .layersDiv .dataLayersDiv{padding-left:10px;}.olControlLayerSwitcher .maximizeDiv,.olControlLayerSwitcher .minimizeDiv{width:18px;height:18px;top:5px;right:0;cursor:pointer;}.olBingAttribution{color:#DDD;}span.olGoogleAttribution a{color:#77C;}.olControlNavToolbar,.olControlEditingToolbar{margin:5px 5px 0 0;}.olControlNavToolbar div,.olControlEditingToolbar div{background-image:url(img/editing_tool_bar.png);background-repeat:no-repeat;width:24px;height:22px;cursor:pointer;margin:0 0 5px 5px;}.olControlEditingToolbar{right:0;top:0;}.olControlNavToolbar{top:295px;left:9px;}.olControlEditingToolbar div{float:right;}.olControlNavToolbar .olControlNavigationItemInactive,.olControlEditingToolbar .olControlNavigationItemInactive{background-position:-103px -1px;}.olControlNavToolbar .olControlNavigationItemActive,.olControlEditingToolbar .olControlNavigationItemActive{background-position:-103px -24px;}.olControlNavToolbar .olControlZoomBoxItemInactive{background-position:-128px -1px;}.olControlNavToolbar .olControlZoomBoxItemActive{background-position:-128px -24px;}.olControlEditingToolbar .olControlDrawFeaturePointItemInactive{background-position:-77px -1px;}.olControlEditingToolbar .olControlDrawFeaturePointItemActive{background-position:-77px -24px;}.olControlEditingToolbar .olControlDrawFeaturePathItemInactive{background-position:-51px -1px;}.olControlEditingToolbar .olControlDrawFeaturePathItemActive{background-position:-51px -24px;}.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive{background-position:-26px -1px;}.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive{background-position:-26px -24px;}div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px;}div.olControlZoom a{display:block;color:#FFF;font-size:18px;font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;font-weight:700;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:rgba(0,60,136,0.5);filter:alpha(opacity=80);margin:1px;padding:0;}div.olControlZoom a:hover{background:rgba(0,60,136,0.7);filter:alpha(opacity=100);}a.olControlZoomIn{border-radius:4px 4px 0 0;}a.olControlZoomOut{border-radius:0 0 4px 4px;}.olLayerGrid .olTileImage{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;}.olTileImage{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000;}.olTileReplacing{display:none;}img.olTileImage{max-width:none;}div.olLayerDiv,.olControlNoSelect{-khtml-user-select:none;-moz-user-select:none;}.olPopupContent,.olFramedCloudPopupContent{overflow:auto;padding:5px;}.olDragDown,.olControlDragFeatureOver{cursor:move;}.olBingAttribution.road,.olGoogleAttribution{color:#333;}.olGoogleAttribution.hybrid,.olGoogleAttribution.satellite,span.olGoogleAttribution.hybrid a,span.olGoogleAttribution.satellite a{color:#EEE;}@media only screen and max-width 600px{div.olControlZoom a:hover{background:rgba(0,60,136,0.5);}} -------------------------------------------------------------------------------- /script/map_utils.js: -------------------------------------------------------------------------------- 1 | // Constants------------------------------------------------------------------- 2 | var earthRadius = 6371.221; //Km 3 | 4 | // Projections----------------------------------------------------------------- 5 | var projMerc = new OpenLayers.Projection("EPSG:900913"); 6 | var proj4326 = new OpenLayers.Projection("EPSG:4326"); 7 | 8 | // Zoom------------------------------------------------------------------------ 9 | var zoomUnits= [ 10 | 30*3600, // zoom=0 11 | 30*3600, 12 | 15*3600, 13 | 10*3600, 14 | 5*3600, 15 | 5*3600, 16 | 2*3600, 17 | 1*3600, 18 | 30*60, 19 | 20*60, 20 | 10*60, // zoom=10 21 | 5*60, 22 | 2*60, 23 | 1*60, 24 | 30, 25 | 30, 26 | 12, 27 | 6, 28 | 6, 29 | 3 // zoom=19 30 | ]; 31 | 32 | // Transformations------------------------------------------------------------- 33 | function Lon2Merc(value) { 34 | return 20037508.34 * value / 180; 35 | } 36 | 37 | function Lat2Merc(value) { 38 | var PI = 3.14159265358979323846; 39 | lat = Math.log(Math.tan( (90 + value) * PI / 360)) / (PI / 180); 40 | return 20037508.34 * value / 180; 41 | } 42 | 43 | function plusfacteur(a) { 44 | return a * (20037508.34 / 180); 45 | } 46 | 47 | function moinsfacteur(a) { 48 | return a / (20037508.34 / 180); 49 | } 50 | 51 | function y2lat(a) { 52 | return 180/Math.PI * (2 * Math.atan(Math.exp(moinsfacteur(a)*Math.PI/180)) - Math.PI/2); 53 | } 54 | 55 | function lat2y(a) { 56 | return plusfacteur(180/Math.PI * Math.log(Math.tan(Math.PI/4+a*(Math.PI/180)/2))); 57 | } 58 | 59 | function x2lon(a) { 60 | return moinsfacteur(a); 61 | } 62 | 63 | function lon2x(a) { 64 | return plusfacteur(a); 65 | } 66 | 67 | function km2nm(a) { 68 | return a * 0.540; 69 | } 70 | 71 | function lat2DegreeMinute(buffLat) { 72 | var ns = buffLat >= 0 ? 'N' : 'S'; 73 | var lat_m = Math.abs(buffLat*60).toFixed(3); 74 | var lat_d = Math.floor (lat_m/60); 75 | lat_m -= lat_d*60; 76 | return ns + lat_d + "°" + format2FixedLenght(lat_m, 6, 3) + "'"; 77 | } 78 | 79 | function lon2DegreeMinute(buffLon) { 80 | var we = buffLon >= 0 ? 'E' : 'W'; 81 | var lon_m = Math.abs(buffLon*60).toFixed(3); 82 | var lon_d = Math.floor (lon_m/60); 83 | lon_m -= lon_d*60; 84 | return we + lon_d + "°" + format2FixedLenght(lon_m, 6, 3) + "'"; 85 | } 86 | 87 | function lonLatToMercator(ll) { 88 | return new OpenLayers.LonLat(lon2x(ll.lon), lat2y(ll.lat)); 89 | } 90 | 91 | // shorten coordinate to 5 digits in decimal fraction 92 | function shorter_coord(coord) { 93 | return Math.round(coord*100000)/100000; 94 | } 95 | 96 | // Vector layer utilities------------------------------------------------------ 97 | function getLineSegments(line) { 98 | var numSegments = line.components.length - 1; 99 | var segments = new Array(numSegments), point1, point2; 100 | for(var i = 0; i < numSegments; ++i) { 101 | point1 = line.components[i]; 102 | point2 = line.components[i + 1]; 103 | segments[i] = { 104 | x1: point1.x, 105 | y1: point1.y, 106 | x2: point2.x, 107 | y2: point2.y 108 | }; 109 | } 110 | 111 | return segments; 112 | } 113 | 114 | function getLineSegmentLength(segment) { 115 | return Math.sqrt( Math.pow((segment.x2 -segment.x1),2) + Math.pow((segment.y2 -segment.y1),2) ); 116 | } 117 | 118 | // Route handling-------------------------------------------------------------- 119 | function getDistance(latA, latB, lonA, lonB) { 120 | var dLat = OpenLayers.Util.rad(latB - latA); 121 | var dLon = OpenLayers.Util.rad(lonB - lonA); 122 | var lat1 = OpenLayers.Util.rad(latA); 123 | var lat2 = OpenLayers.Util.rad(latB); 124 | 125 | var a = Math.PI/2-lat2; 126 | var b = Math.PI/2-lat1; 127 | var c = Math.acos(Math.cos(a)*Math.cos(b)+Math.sin(a)*Math.sin(b)*Math.cos(dLon)); 128 | var d = km2nm(earthRadius * c); 129 | 130 | return d; 131 | } 132 | 133 | function getBearing(latA, latB, lonA, lonB) { 134 | var dLat = OpenLayers.Util.rad(latB-latA); 135 | var dLon = OpenLayers.Util.rad(lonB-lonA); 136 | var lat1 = OpenLayers.Util.rad(latA); 137 | var lat2 = OpenLayers.Util.rad(latB); 138 | 139 | var y = Math.sin(dLon) * Math.cos(lat2); 140 | var x = Math.cos(lat1)*Math.sin(lat2) - 141 | Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); 142 | var brng = OpenLayers.Util.deg(Math.atan2(y, x)); 143 | 144 | return (brng + 360) % 360; 145 | } 146 | 147 | // Utilities------------------------------------------------------------------- 148 | function jumpTo(lon, lat, zoom) { 149 | var lonlat = new OpenLayers.LonLat(lon, lat); 150 | lonlat.transform(proj4326, projMerc); 151 | map.setCenter(lonlat, zoom); 152 | } 153 | 154 | function getTileURL(bounds) { 155 | var res = this.map.getResolution(); 156 | var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w)); 157 | var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h)); 158 | var z = this.map.getZoom(); 159 | var limit = Math.pow(2, z); 160 | if (y < 0 || y >= limit) { 161 | return null; 162 | } else { 163 | x = ((x % limit) + limit) % limit; 164 | url = this.url; 165 | path= z + "/" + x + "/" + y + "." + this.type; 166 | if (url instanceof Array) { 167 | url = this.selectUrl(path, url); 168 | } 169 | return url+path; 170 | } 171 | } 172 | 173 | // OpenLayers tweaking--------------------------------------------------------- 174 | 175 | OpenLayers.Control.MousePositionDM = OpenLayers.Class (OpenLayers.Control.MousePosition, { 176 | 177 | formatOutput: function (lonLat) { 178 | var ns = lonLat.lat >= 0 ? 'N' : 'S'; 179 | var we = lonLat.lon >= 0 ? 'E' : 'W'; 180 | var lon_m = Math.abs(lonLat.lon*60).toFixed(3); 181 | var lat_m = Math.abs(lonLat.lat*60).toFixed(3); 182 | var lon_d = Math.floor (lon_m/60); 183 | var lat_d = Math.floor (lat_m/60); 184 | lon_m -= lon_d*60; 185 | lat_m -= lat_d*60; 186 | 187 | return "Zoom:" + zoom + " " + ns + lat_d + "°" + format2FixedLenght(lat_m,6,3) + "'" + " " + 188 | we + lon_d + "°" + format2FixedLenght(lon_m,6,3) + "'" ; 189 | }, 190 | 191 | CLASS_NAME:"OpenLayers.Control.MousePositionDM" 192 | } 193 | ); 194 | 195 | OpenLayers.Layer.GridWGS = OpenLayers.Class (OpenLayers.Layer.Vector, { 196 | initialize: function (name, options){ 197 | OpenLayers.Layer.Vector.prototype.initialize.apply(this, [name, options]); 198 | }, 199 | gridSizeText: null, 200 | gridSizeDiv: null, 201 | zoomUnits: null, 202 | getGridUnit: function (distance) { 203 | if (this.zoomUnits) return this.zoomUnits[this.map.zoom]; 204 | for (var i=0; i=10 ? n : '0'+n; 220 | }, 221 | 222 | formatGridSize: function (s) { 223 | var h = Math.floor(s/3600); 224 | var m = s%3600/60; 225 | return (h?h+"°":"")+(m?m+"'":""); 226 | }, 227 | 228 | formatDegrees: function (s, unit) { 229 | return Math.floor(s/3600) + "°" 230 | + (unit%3600?this.dd(s%3600/60)+"'":"") 231 | }, 232 | 233 | moveTo: function (bounds, zoomChanged, dragging) { 234 | if (dragging) return; 235 | this.destroyFeatures(); 236 | var mapBounds = bounds.clone(). 237 | transform(this.map.getProjectionObject(), this.map.displayProjection); 238 | var seconds = 3600 * (mapBounds.top-mapBounds.bottom); 239 | var unit = this.getGridUnit (seconds / this.map.getSize().h * this.gridPixelDistance); 240 | if (this.gridSizeText && !this.gridSizeDiv) { 241 | this.gridSizeDiv=OpenLayers.Util.createDiv(this.id); 242 | this.gridSizeDiv.className='olControlGridWGS'; 243 | this.gridSizeDiv.style.zIndex=map.Z_INDEX_BASE['Control']+ map.controls.length; 244 | this.gridSizeDiv.setAttribute("unselectable","on"); 245 | this.map.viewPortDiv.appendChild (this.gridSizeDiv); 246 | } 247 | if (this.gridSizeDiv) this.gridSizeDiv.style.display='none'; 248 | if (unit) { 249 | var x1 = Math.max (-180.0*3600, Math.ceil (3600 * mapBounds.left / unit) * unit); 250 | var x2 = Math.min (+180.0*3600, Math.floor (3600 * mapBounds.right / unit) * unit); 251 | var y1 = Math.max ( -90.0*3600, Math.ceil (3600 * mapBounds.bottom/ unit) * unit); 252 | var y2 = Math.min ( +90.0*3600, Math.floor (3600 * mapBounds.top / unit) * unit); 253 | var features = []; 254 | for (var x=x1; x<=x2; x+= unit) { 255 | var p1 = new OpenLayers.LonLat (x/3600, Math.min(+85, mapBounds.top)) 256 | .transform(map.displayProjection, map.getProjectionObject()); 257 | var p2 = new OpenLayers.LonLat (x/3600, Math.max(-85, mapBounds.bottom)) 258 | .transform(map.displayProjection, map.getProjectionObject()); 259 | v1 = new OpenLayers.Feature.Vector ( new OpenLayers.Geometry.LineString( [ 260 | new OpenLayers.Geometry.Point (p1.lon, p1.lat), 261 | new OpenLayers.Geometry.Point (p2.lon, p2.lat) 262 | ])); 263 | v1.style={ 264 | label: this.formatDegrees (Math.abs(x), unit), 265 | labelAlign: "lt", 266 | strokeColor: "#666666", 267 | strokeWidth: 1, 268 | strokeOpacity: 0.8 269 | }; 270 | features.push (v1); 271 | } 272 | for (var y=y1; y<=y2; y+=unit) { 273 | var p1 = new OpenLayers.LonLat (Math.max(-180, mapBounds.left), y/3600) 274 | .transform(map.displayProjection, map.getProjectionObject()); 275 | var p2 = new OpenLayers.LonLat (Math.min(+180, mapBounds.right), y/3600) 276 | .transform(map.displayProjection, map.getProjectionObject()); 277 | v1 = new OpenLayers.Feature.Vector ( new OpenLayers.Geometry.LineString( [ 278 | new OpenLayers.Geometry.Point (p1.lon, p1.lat), 279 | new OpenLayers.Geometry.Point (p2.lon, p2.lat) 280 | ])); 281 | v1.style={ 282 | label: this.formatDegrees (Math.abs(y), unit), 283 | labelAlign: "lb", 284 | strokeColor: "#666666", 285 | strokeWidth: 1, 286 | strokeOpacity: 0.8 287 | }; 288 | features.push (v1); 289 | } 290 | this.addFeatures(features); 291 | if (this.gridSizeDiv) { 292 | this.gridSizeDiv.innerHTML = OpenLayers.String.format(this.gridSizeText, 293 | {grid: this.formatGridSize(unit)}); 294 | this.gridSizeDiv.style.display=null; 295 | } 296 | } 297 | OpenLayers.Layer.Vector.prototype.moveTo.apply(this,arguments); 298 | }, 299 | CLASS_NAME: "OpenLayers.Layer.GridWGS" 300 | }); 301 | -------------------------------------------------------------------------------- /script/map_base.js: -------------------------------------------------------------------------------- 1 | // Main settings 2 | var version = "0.0.4.11"; 3 | var date = "28.12.2015"; 4 | 5 | // Map settings 6 | var map; 7 | var popup; 8 | 9 | // Position and zoomlevel of the map (will be overriden with permalink parameters or cookies) 10 | var lon = 11.6540; 11 | var lat = 54.1530; 12 | var zoom = 10; 13 | 14 | // Layers 15 | var layer_seamarks = -1; 16 | var layer_grid = -1; 17 | var layer_download = -1; 18 | var layer_nautical_route = -1; 19 | 20 | // Select controls 21 | var selectControl; 22 | 23 | // Look up translation for given string 24 | var localize = function (string, fallback) { 25 | var localized = string.toLocaleString(); 26 | var retValue = fallback; 27 | if (localized !== string) { 28 | retValue = localized; 29 | } 30 | return retValue; 31 | }; 32 | 33 | // Load map for the first time 34 | function init() { 35 | var buffZoom = -1; 36 | var buffLat = -1; 37 | var buffLon = -1; 38 | if (getArgument("permalink") == "true") { 39 | buffZoom = parseInt(getArgument("zoom")); 40 | buffLat = parseFloat(getArgument("lat")); 41 | buffLon = parseFloat(getArgument("lon")); 42 | } else { 43 | buffZoom = parseInt(getCookie("zoom")); 44 | buffLat = parseFloat(getCookie("lat")); 45 | buffLon = parseFloat(getCookie("lon")); 46 | } 47 | if (buffZoom != -1) { 48 | zoom = buffZoom; 49 | } 50 | if (buffLat != -1 && buffLon != -1) { 51 | lat = buffLat; 52 | lon = buffLon; 53 | } 54 | drawmap(); 55 | setLanguageStrings (); 56 | setLayerVisibility(); 57 | } 58 | 59 | // Add translation to dialogs 60 | function setLanguageStrings () { 61 | document.getElementById("menu_help").innerHTML = localize("%help", "Help"); 62 | document.getElementById("menu_help_about").innerHTML = localize("%about", "About"); 63 | document.getElementById("menu_help_license").innerHTML = localize("%license", "License"); 64 | document.getElementById("menu_help_map_key").innerHTML = localize("%map_key", "Map key"); 65 | document.getElementById("menu_help_forum").innerHTML = localize("%forum", "Forum"); 66 | document.getElementById("menu_help_report_bugs").innerHTML = localize("%report_bugs", "Report bugs"); 67 | document.getElementById("menu_layer_coordinate_grid").innerHTML = localize("%coordinate_grid", "Coordinate grid"); 68 | document.getElementById("menu_layer_seamarks").innerHTML = localize("%seamarks", "Sea marks"); 69 | //document.getElementById("menu_layer_tidal_scale").innerHTML = localize("%tidal_scale", "Tidal scale"); 70 | document.getElementById("menu_layer_weather").innerHTML = localize("%weather", "Weather"); 71 | document.getElementById("menu_tools").innerHTML = localize("%tools", "Tools"); 72 | document.getElementById("menu_tools_map_download").innerHTML = localize("%map_download", "Download chart"); 73 | document.getElementById("menu_tools_permalink").innerHTML = localize("%permalink", "Permalink"); 74 | document.getElementById("menu_tools_trip_planner").innerHTML = localize("%trip_planner", "Trip planner"); 75 | document.getElementById("menu_view").innerHTML = localize("%view", "View"); 76 | } 77 | 78 | // Set visibility of the layers 79 | function setLayerVisibility() { 80 | if (getArgument("permalink") == "true") { 81 | if (getArgument(layer_seamarks.name) == "false") { 82 | layer_seamarks.setVisibility(false); 83 | } 84 | if (getArgument(layer_grid.name) == "false") { 85 | layer_grid.setVisibility(false); 86 | } 87 | if (getArgument("map_download") == "true") { 88 | addMapDownload(); 89 | } 90 | } else { 91 | if (getCookie(layer_seamarks.name) == "false") { 92 | layer_seamarks.setVisibility(false); 93 | } 94 | if (getCookie(layer_grid.name) == "false") { 95 | layer_grid.setVisibility(false); 96 | } 97 | } 98 | setLayerCheckBoxes(); 99 | } 100 | 101 | function setLayerCheckBoxes() { 102 | document.getElementById("checkLayerSeaMarks").checked = (layer_seamarks.getVisibility() === true); 103 | document.getElementById("checkLayerCordinateGrid").checked = (layer_grid.getVisibility() === true); 104 | } 105 | 106 | // Show dialog window 107 | function showActionDialog(header, htmlText, close_button, download_button, clear_button) { 108 | var max_height = window.innerHeight - 130; 109 | var max_width = window.innerWidth - 100; 110 | //alert(max_height); 111 | var content = ""; 112 | content += ""; 119 | content += ""; 120 | content += ""; 129 | } else { 130 | content +=""; 131 | } 132 | content += "
" + header + "
" + htmlText + "
"; 121 | if (download_button) { 122 | content += ""; 123 | } 124 | if (clear_button) { 125 | content += " "; 126 | } 127 | if (close_button) { 128 | content +="
"; 133 | document.getElementById("actionDialog").style.visibility = 'visible'; 134 | document.getElementById("actionDialog").innerHTML = content; 135 | } 136 | 137 | // Hide dialog window 138 | function closeActionDialog() { 139 | document.getElementById("actionDialog").style.visibility = 'hidden'; 140 | } 141 | 142 | // Toggle visibility of given layer 143 | function showLayer(layer) { 144 | if (layer.visibility) { 145 | layer.setVisibility(false); 146 | setCookie( layer.name, "false"); 147 | } else { 148 | layer.setVisibility(true); 149 | setCookie( layer.name, "true"); 150 | } 151 | setLayerCheckBoxes(); 152 | } 153 | 154 | function drawmap() { 155 | map = new OpenLayers.Map('map', { 156 | projection: projMerc, 157 | displayProjection: proj4326, 158 | eventListeners: { 159 | click: mapEventClick, 160 | moveend: mapEventMove, 161 | zoomend: mapEventZoom 162 | }, 163 | controls: [ 164 | new OpenLayers.Control.Navigation(), 165 | new OpenLayers.Control.ScaleLine({topOutUnits : "nmi", bottomOutUnits: "km", topInUnits: 'nmi', bottomInUnits: 'km', maxWidth: '40'}), 166 | new OpenLayers.Control.MousePositionDM(), 167 | new OpenLayers.Control.OverviewMap(), 168 | new OpenLayers.Control.PanZoomBar()], 169 | maxExtent: 170 | new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34), 171 | numZoomLevels: 18, 172 | maxResolution: 156543, 173 | units: 'meters' 174 | }); 175 | 176 | // Select feature --------------------------------------------------------------------------------------------------------- 177 | // (only one SelectFeature per map is allowed) 178 | selectControl = new OpenLayers.Control.SelectFeature([],{ 179 | hover:true, 180 | popup:null, 181 | addLayer:function(layer){ 182 | var layers = this.layers; 183 | if (layers) { 184 | layers.push(layer); 185 | } else { 186 | layers = [ 187 | layer 188 | ]; 189 | } 190 | this.setLayer(layers); 191 | }, 192 | removePopup:function(){ 193 | if (this.popup) { 194 | this.map.removePopup(this.popup); 195 | this.popup.destroy(); 196 | this.popup = null; 197 | } 198 | } 199 | }); 200 | 201 | // Add Layers to map------------------------------------------------------------------------------------------------------- 202 | var layer_mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); 203 | layer_seamarks = new OpenLayers.Layer.TMS("seamarks", "http://mini8.local/", { layerId: 3, numZoomLevels: 19, type: 'png', getURL:getTileURL, isBaseLayer:false, displayOutsideMaxExtent:true}); 204 | layer_grid = new OpenLayers.Layer.GridWGS("coordinate_grid", {visibility: true, zoomUnits: zoomUnits }); 205 | map.addLayers([layer_mapnik, layer_seamarks, layer_grid]); 206 | if (!map.getCenter()) { 207 | jumpTo(lon, lat, zoom); 208 | } 209 | map.addControl(selectControl); 210 | selectControl.activate(); 211 | } 212 | 213 | function mapEventClick(event) { 214 | if (zoom >= 13) { 215 | var bbOffset = 0.001; 216 | var clickLonLat = map.getLonLatFromViewPortPx(event.xy).transform( projMerc, proj4326); 217 | var popupText = getNodeInformation(clickLonLat.lat - bbOffset, clickLonLat.lon - bbOffset, clickLonLat.lat + bbOffset, clickLonLat.lon +bbOffset); 218 | if (popupText != "-1") { 219 | popup = new OpenLayers.Popup.FramedCloud("info", 220 | map.getLonLatFromViewPortPx(event.xy), 221 | null, 222 | popupText, 223 | null, 224 | true); 225 | map.addPopup(popup); 226 | } 227 | } 228 | } 229 | 230 | // Map event listener moved 231 | function mapEventMove(event) { 232 | // Set new lat lon values (fix for #18) 233 | lat = y2lat(map.getCenter().lat).toFixed(5); 234 | lon =x2lon(map.getCenter().lon).toFixed(5); 235 | // Set cookies for remembering lat lon values 236 | setCookie("lat", lat); 237 | setCookie("lon", lon); 238 | } 239 | 240 | // Map event listener Zoomed 241 | function mapEventZoom(event) { 242 | // Set new zoom value 243 | zoom = map.getZoom(); 244 | // Set cookie for remembering zoomlevel 245 | setCookie("zoom",zoom); 246 | // Update download layer if exists 247 | if (layer_download != -1) { 248 | addDownloadlayer(); 249 | } 250 | } 251 | 252 | // Create a permalink and open it in the browser 253 | function createPermalink() { 254 | var mapPermalink = location.protocol + '//' + location.host + location.pathname; 255 | mapPermalink += "?permalink=true&zoom=" + zoom + "&lat=" +lat + "&lon=" + lon; 256 | mapPermalink += "&" + layer_seamarks.name + "=" + document.getElementById("checkLayerSeaMarks").checked; 257 | mapPermalink += "&" + layer_grid.name + "=" + document.getElementById("checkLayerCordinateGrid").checked; 258 | if (layer_download != -1) { 259 | mapPermalink += "&map_download=true" 260 | } 261 | window.location.href = mapPermalink; 262 | } 263 | -------------------------------------------------------------------------------- /script/openlayers/art/zoom-world.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 22 | 24 | 40 | 42 | 44 | 47 | image/svg+xml 49 | 52 | 53 | 54 | 55 | 60 | 68 | 69 | 73 | 76 | 86 | 91 | 96 | 101 | 106 | 107 | 110 | 120 | 125 | 130 | 135 | 140 | 141 | 142 | 160 | 171 | 193 | 194 | --------------------------------------------------------------------------------