From 8543aacd9de4c64b808e7613c0f291b784ccc5e1 Mon Sep 17 00:00:00 2001 From: Axel Utech Date: Mon, 9 Jan 2017 20:21:03 +0100 Subject: [PATCH 1/4] switch marinetraffic to image tiles --- src/javascripts/config/layerlist.js | 14 +++--- .../config/layers/marinetraffic-imageLayer.js | 43 +++++++++++++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 src/javascripts/config/layers/marinetraffic-imageLayer.js diff --git a/src/javascripts/config/layerlist.js b/src/javascripts/config/layerlist.js index 32574a9..c483067 100644 --- a/src/javascripts/config/layerlist.js +++ b/src/javascripts/config/layerlist.js @@ -12,13 +12,13 @@ import DeMvDepth from './layers/germany_mv_depth' import ScubaDiving from './layers/scubaDiving' import SeamarksDebug from './layers/seamarkDebug' import Search from './layers/search' -import Marinetraffic from './layers/marinetraffic' import GridWgs from './layers/grid_wgs' import Download from './layers/downloadBundles' import MarineProfile from './layers/marineProfile' import ElevationProfile from './layers/elevationProfile' import BingBase from './layers/bingBase' import DebugTiles from './layers/tilesDebug' +import MarinetrafficImages from './layers/marinetraffic-imageLayer' /** for the old (2013) layers format see: @@ -121,12 +121,6 @@ export const availibleOverlayLayers = [ urlIndex2016: 4, visibleDefault: true }, - { - LayerConstructor: Marinetraffic, - id: 'overlay_marinetraffic', - urlIndex2016: 5, - visibleDefault: false - }, { LayerConstructor: Download, id: 'overlay_download', @@ -139,6 +133,12 @@ export const availibleOverlayLayers = [ id: 'overlay_debug', urlIndex2016: 10, visibleDefault: false + }, + { + LayerConstructor: MarinetrafficImages, + id: 'overlay_marinetraffic-imageLayer', + urlIndex2016: 11, + visibleDefault: false } ] diff --git a/src/javascripts/config/layers/marinetraffic-imageLayer.js b/src/javascripts/config/layers/marinetraffic-imageLayer.js new file mode 100644 index 0000000..2b76479 --- /dev/null +++ b/src/javascripts/config/layers/marinetraffic-imageLayer.js @@ -0,0 +1,43 @@ +/** +* @license AGPL-3.0 +* @author aAXEe (https://github.com/aAXEe) +*/ +'use strict' + +import ol from 'openlayers' +import ChartLayer from '../chartlayer' +import { layerTileLoadStateChange } from '../../store/actions' +import controlIds from '../../controls/ol3/controls' +import orderIds from '../layerOrderNumbers' + +module.exports = function (context, options) { + // return the url to get the tile at [z, x, -y] + function tileUrlFunction (tileCoord) { + return ('http://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom={z}&X={x}&Y={y}') + .replace('{z}', String(tileCoord[0] + 1)) + .replace('{x}', String(tileCoord[1])) + .replace('{y}', String(-tileCoord[2] - 1)) + } + var ATTRIBUTION = 'Ship data by MarineTraffic' + let source = new ol.source.XYZ({ + attributions: [new ol.Attribution({html: ATTRIBUTION})], + tileUrlFunction: tileUrlFunction, + crossOrigin: 'Anonymous', + tileSize: [512, 512] + }) + + source.on(['tileloadstart', 'tileloadend', 'tileloaderror'], function (ev) { + context.dispatch(layerTileLoadStateChange(options.id, ev)) + }) + + var defaults = { + nameKey: 'layer-name-marinetraffic', + layer: new ol.layer.Tile({ + source: source, + opacity: 0.7, + zIndex: orderIds.user_overlay + }), + additionalControls: [controlIds.scaleline_nautical, controlIds.attribution] + } + return new ChartLayer(context, Object.assign(defaults, options)) +} From 4fa3dae5b64ac24a7e4ae7ce04ef3202b35336a9 Mon Sep 17 00:00:00 2001 From: Axel Utech Date: Mon, 16 Jan 2017 17:08:53 +0100 Subject: [PATCH 2/4] switch to https access --- src/javascripts/config/layers/marinetraffic-imageLayer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/javascripts/config/layers/marinetraffic-imageLayer.js b/src/javascripts/config/layers/marinetraffic-imageLayer.js index 2b76479..5b154c4 100644 --- a/src/javascripts/config/layers/marinetraffic-imageLayer.js +++ b/src/javascripts/config/layers/marinetraffic-imageLayer.js @@ -13,7 +13,7 @@ import orderIds from '../layerOrderNumbers' module.exports = function (context, options) { // return the url to get the tile at [z, x, -y] function tileUrlFunction (tileCoord) { - return ('http://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom={z}&X={x}&Y={y}') + return ('https://tiles.marinetraffic.com/ais_helpers/shiptilesingle.aspx?output=png&sat=1&grouping=shiptype&tile_size=512&legends=1&zoom={z}&X={x}&Y={y}') .replace('{z}', String(tileCoord[0] + 1)) .replace('{x}', String(tileCoord[1])) .replace('{y}', String(-tileCoord[2] - 1)) From e3583a13338efac60a56f626c630eba83def46ef Mon Sep 17 00:00:00 2001 From: Axel Utech Date: Thu, 19 Jan 2017 17:42:43 +0100 Subject: [PATCH 3/4] remove other layers, force layer visibility and sidebar --- src/javascripts/config/layerlist.js | 81 +---------------------- src/javascripts/controls/sidebar/store.js | 2 +- src/javascripts/features/tabs.js | 19 +++--- src/javascripts/store/urlHashHandling.js | 7 ++ 4 files changed, 19 insertions(+), 90 deletions(-) diff --git a/src/javascripts/config/layerlist.js b/src/javascripts/config/layerlist.js index c483067..23bafb5 100644 --- a/src/javascripts/config/layerlist.js +++ b/src/javascripts/config/layerlist.js @@ -7,18 +7,7 @@ import _ from 'lodash' import Seamarks from './layers/seamarks' import OsmBase from './layers/openStreetMapBase' -import BasemapVector from './layers/basemapVector' -import DeMvDepth from './layers/germany_mv_depth' -import ScubaDiving from './layers/scubaDiving' -import SeamarksDebug from './layers/seamarkDebug' -import Search from './layers/search' -import GridWgs from './layers/grid_wgs' import Download from './layers/downloadBundles' -import MarineProfile from './layers/marineProfile' -import ElevationProfile from './layers/elevationProfile' -import BingBase from './layers/bingBase' -import DebugTiles from './layers/tilesDebug' -import MarinetrafficImages from './layers/marinetraffic-imageLayer' /** for the old (2013) layers format see: @@ -55,90 +44,22 @@ export const availibleBaseLayers = [ urlIndex2013: 1, urlIndex2016BaseLayer: 'A', visibleDefault: true - }, - { - LayerConstructor: BasemapVector, - id: 'base_vector', - isBaseLayer: true, - urlIndex2016BaseLayer: 'B', - visibleDefault: false - }, - { - LayerConstructor: BingBase, - id: 'base_bing', - isBaseLayer: true, - urlIndex2013: 12, - urlIndex2016BaseLayer: 'C', - visibleDefault: false } ] export const availibleOverlayLayers = [ { - LayerConstructor: MarineProfile, - id: 'overlay_marineProfile', - urlIndex2016: 8, - urlIndex2013: 6, - visibleDefault: false - }, { - LayerConstructor: ElevationProfile, - id: 'overlay_elevationProfile', - urlIndex2016: 9, - urlIndex2013: 20, - visibleDefault: false - }, { - LayerConstructor: GridWgs, - id: 'overlay_grid_wgs', - urlIndex2016: 6, - urlIndex2013: 10, - visibleDefault: true - }, { LayerConstructor: Seamarks, id: 'overlay_osm_seamarks', urlIndex2016: 0, urlIndex2013: 3, visibleDefault: true }, { - LayerConstructor: SeamarksDebug, - id: 'overlay_osm_seamarks_debug', - urlIndex2016: 1, - visibleDefault: false - }, { - LayerConstructor: DeMvDepth, - id: 'overlay_demvdepth', - urlIndex2016: 2, - visibleDefault: false - }, { - LayerConstructor: ScubaDiving, - id: 'overlay_osm_scubadiving', - urlIndex2016: 3, - urlIndex2013: 4, - visibleDefault: false - }, - { - LayerConstructor: Search, - id: 'overlay_search', - urlIndex2016: 4, - visibleDefault: true - }, - { LayerConstructor: Download, id: 'overlay_download', urlIndex2013: 8, urlIndex2016: 7, - visibleDefault: false - }, - { - LayerConstructor: DebugTiles, - id: 'overlay_debug', - urlIndex2016: 10, - visibleDefault: false - }, - { - LayerConstructor: MarinetrafficImages, - id: 'overlay_marinetraffic-imageLayer', - urlIndex2016: 11, - visibleDefault: false + visibleDefault: true } ] diff --git a/src/javascripts/controls/sidebar/store.js b/src/javascripts/controls/sidebar/store.js index 7beb6ed..9674459 100644 --- a/src/javascripts/controls/sidebar/store.js +++ b/src/javascripts/controls/sidebar/store.js @@ -36,7 +36,7 @@ export function setSidebarActiveTab (tabName) { */ export const sidebarDefaultState = { isOpen: !isMobile(), - selectedTab: 'sidebar-settings' + selectedTab: 'sidebar-download' } export const sidebar = (state = sidebarDefaultState, action) => { diff --git a/src/javascripts/features/tabs.js b/src/javascripts/features/tabs.js index c0a5b60..334309e 100644 --- a/src/javascripts/features/tabs.js +++ b/src/javascripts/features/tabs.js @@ -5,8 +5,8 @@ 'use strict' import React from 'react' -import LayerConfig from './layerConfig/featureLayerConfig' -import MdLayers from 'react-icons/lib/md/layers' +// import LayerConfig from './layerConfig/featureLayerConfig' +// import MdLayers from 'react-icons/lib/md/layers' import FeatureDevelopment from './development/featureDevelopment' import FaInfoCircle from 'react-icons/lib/fa/info-circle' @@ -31,17 +31,18 @@ export const messages = defineMessages({ } }) -export const Tabs = [{ +export const Tabs = [/* { name: 'sidebar-settings', align: 'top', icon: , content: -}, { - name: 'sidebar-development', - align: 'bottom', - icon: , - content: -}] + }, */ + { + name: 'sidebar-development', + align: 'bottom', + icon: , + content: + }] export const TabSidebarDetails = { name: 'sidebar-details', diff --git a/src/javascripts/store/urlHashHandling.js b/src/javascripts/store/urlHashHandling.js index 20248a9..806d5ff 100644 --- a/src/javascripts/store/urlHashHandling.js +++ b/src/javascripts/store/urlHashHandling.js @@ -167,6 +167,11 @@ export function getStateFromUrlHash (defaults) { layers = { layerVisible: decompressVisibleLayers(res.options.layers) } + layers.layerVisible = { + base_osm_default: true, + overlay_osm_seamarks: true, + overlay_download: true + } } let additions = {} @@ -176,6 +181,8 @@ export function getStateFromUrlHash (defaults) { additions.locale = defaultLocale } + res.name = 'download' + switch (res.name) { case 'search': additions.sidebar = sidebarDefaultState From e87d8dc8c7f47ff09c2621e898c777ddd9478c5c Mon Sep 17 00:00:00 2001 From: Axel Utech Date: Thu, 19 Jan 2017 17:47:23 +0100 Subject: [PATCH 4/4] set default view position --- src/javascripts/SETTINGS.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/javascripts/SETTINGS.js b/src/javascripts/SETTINGS.js index ffd93d0..9cc6670 100644 --- a/src/javascripts/SETTINGS.js +++ b/src/javascripts/SETTINGS.js @@ -3,9 +3,9 @@ import controlIds from './controls/ol3/controls' export const defaultViewPosition = { position: { - lon: 12.0561, - lat: 54.1910, - zoom: 14 + lon: 0, + lat: 0, + zoom: 3 } }