aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/cobrands/barnet/base.scss2
-rw-r--r--web/cobrands/fixmystreet/_base.scss2
-rw-r--r--web/cobrands/fixmystreet/_layout.scss7
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js27
-rw-r--r--web/cobrands/fixmystreet/position_map.js4
-rw-r--r--web/cobrands/stevenage/layout.scss2
-rw-r--r--web/cobrands/zurich/_colours.scss24
-rw-r--r--web/cobrands/zurich/base.scss101
-rw-r--r--web/cobrands/zurich/layout.scss255
-rw-r--r--web/cobrands/zurich/search-icon-white.pngbin0 -> 209 bytes
-rw-r--r--web/cobrands/zurich/search-icon.pngbin0 -> 209 bytes
-rw-r--r--web/cobrands/zurich/tab-white.pngbin0 -> 826 bytes
-rw-r--r--web/cobrands/zurich/zurich-wmts-hybrid.xml356
-rw-r--r--web/cobrands/zurich/zurich-wmts-map.xml356
-rw-r--r--web/cobrands/zurich/zurich-wmts-satellite.xml (renamed from web/cobrands/zurich/Zurich-WMTSCapabilities.xml)0
-rw-r--r--web/css/core.scss4
-rw-r--r--web/js/OpenLayers.2.11.zurich.js22
-rw-r--r--web/js/fixmystreet.js16
-rw-r--r--web/js/map-OpenLayers.js66
-rw-r--r--web/js/map-wmts-zurich.js46
20 files changed, 1186 insertions, 104 deletions
diff --git a/web/cobrands/barnet/base.scss b/web/cobrands/barnet/base.scss
index 0447c6779..2dd0640a6 100644
--- a/web/cobrands/barnet/base.scss
+++ b/web/cobrands/barnet/base.scss
@@ -26,7 +26,7 @@
background: url('/cobrands/barnet/img/barnet-skipnav.png') no-repeat;
}
-#front-main #postcodeForm div input#submit,
+#front-main #postcodeForm div input#sub,
.green-btn,
button.green-btn,
input.green-btn,
diff --git a/web/cobrands/fixmystreet/_base.scss b/web/cobrands/fixmystreet/_base.scss
index 9f6a2fe90..d72910450 100644
--- a/web/cobrands/fixmystreet/_base.scss
+++ b/web/cobrands/fixmystreet/_base.scss
@@ -1474,7 +1474,7 @@ table.nicetable {
background:none;
line-height:1.5em;
}
- input#submit {
+ input#sub {
display:table-cell;
border:none;
padding:0;
diff --git a/web/cobrands/fixmystreet/_layout.scss b/web/cobrands/fixmystreet/_layout.scss
index 28c1b6cb8..80ac35edc 100644
--- a/web/cobrands/fixmystreet/_layout.scss
+++ b/web/cobrands/fixmystreet/_layout.scss
@@ -16,6 +16,11 @@ body {
color: #fff;
}
+/* The OpenLayers popup sets a background image with a white background without setting the CSS colours correctly. */
+#popup {
+ color: #000;
+}
+
h1 {
margin-top: 0;
}
@@ -893,7 +898,7 @@ body.frontpage {
height:2em;
width:17em;
}
- input#submit {
+ input#sub {
display:block;
float:right;
width:3em;
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index ab20520d0..d9360d0e2 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -10,14 +10,14 @@
* elem2: target element
* offset: this will be added (if present) to the final value, useful for height errors
*/
-function heightFix(elem1, elem2, offset){
+function heightFix(elem1, elem2, offset, force) {
var h1 = $(elem1).height(),
h2 = $(elem2).height();
- if(offset === undefined){
+ if (offset === undefined) {
offset = 0;
}
- if(h1 > h2){
- $(elem2).css({'min-height':h1+offset});
+ if (h1 > h2 || force) {
+ $(elem2).css( { 'min-height': h1+offset } );
}
}
@@ -61,6 +61,8 @@ $(function(){
} else if (window.location.href.indexOf('oxfordshire') != -1) {
cobrand = 'oxfordshire';
is_small_map = true;
+ } else if (window.location.href.indexOf('zurich') != -1) {
+ cobrand = 'zurich';
}
// Deal with switching between mobile and desktop versions on resize
@@ -97,7 +99,7 @@ $(function(){
$('.big-green-banner')
.addClass('mobile-map-banner')
.appendTo('#map_box')
- .html('<a href="/">Home</a> Place pin on map');
+ .html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.place_pin_on_map);
}
$('span.report-a-problem-btn').on('click.reportBtn', function(){
$('html, body').animate({scrollTop:0}, 500);
@@ -117,13 +119,13 @@ $(function(){
}
if (typeof fixmystreet !== 'undefined' && fixmystreet.page == 'around') {
// Remove full-screen-ness
- var banner_text = 'Click map to report a problem';
+ var banner_text = translation_strings.report_problem_heading;
if (cobrand == 'bromley') {
banner_text += '<span>Yellow pins show existing reports</span>';
}
if (! is_small_map) {
$('#site-header').show();
- banner_text = validation_strings.report_problem_heading;
+ banner_text = translation_strings.report_problem_heading;
}
$('#fms_pan_zoom').css({ top: '4.75em !important' });
$('.big-green-banner')
@@ -145,7 +147,7 @@ $(function(){
}
//show/hide notes on mobile
- $('.mobile #report-a-problem-sidebar').after('<a href="#" class="rap-notes-trigger button-right">How to send successful reports</a>').hide();
+ $('.mobile #report-a-problem-sidebar').after('<a href="#" class="rap-notes-trigger button-right">' + translation_strings.how_to_send + '</a>').hide();
$('.rap-notes-trigger').click(function(e){
e.preventDefault();
//check if we've already moved the notes
@@ -156,7 +158,7 @@ $(function(){
}else{
//if not, move them and show, hiding .content
$('.content').after('<div class="content rap-notes"></div>').hide();
- $('#report-a-problem-sidebar').appendTo('.rap-notes').show().after('<a href="#" class="rap-notes-close button-left">Back</a>');
+ $('#report-a-problem-sidebar').appendTo('.rap-notes').show().after('<a href="#" class="rap-notes-close button-left">' + translation_strings.back + '</a>');
}
$('html, body').scrollTop($('#report-a-problem-sidebar').offset().top);
location.hash = 'rap-notes';
@@ -376,7 +378,10 @@ $.fn.drawer = function(id, ajax) {
});
//add permalink on desktop, force hide on mobile
- $('#sub_map_links').append('<a href="#" id="map_permalink">Permalink</a>');
+ if (cobrand != 'zurich') {
+ $('#sub_map_links').append('<a href="#" id="map_permalink">Permalink</a>');
+ }
+
if($('.mobile').length){
$('#map_permalink').hide();
$('#key-tools a.feed').appendTo('#sub_map_links');
@@ -443,7 +448,7 @@ $.fn.drawer = function(id, ajax) {
if (cobrand == 'bromley') {
offset = -110;
}
- heightFix(window, '.content', offset);
+ heightFix(window, '.content', offset, 1);
// in case we have a map that isn't full screen
map_fix();
}
diff --git a/web/cobrands/fixmystreet/position_map.js b/web/cobrands/fixmystreet/position_map.js
index 4a18d9f9a..71794e8d6 100644
--- a/web/cobrands/fixmystreet/position_map.js
+++ b/web/cobrands/fixmystreet/position_map.js
@@ -1,14 +1,14 @@
function position_map_box() {
var $html = $('html');
if ($html.hasClass('ie6')) {
- $('#map_box').prependTo('.wrapper').css({
+ $('#map_box').prependTo('body').css({
zIndex: 0, position: 'absolute',
top: 0, left: 0, right: 0, bottom: 0,
width: '100%', height: $(window).height(),
margin: 0
});
} else {
- $('#map_box').prependTo('.wrapper').css({
+ $('#map_box').prependTo('body').css({
zIndex: 0, position: 'fixed',
top: 0, left: 0, right: 0, bottom: 0,
width: '100%', height: '100%',
diff --git a/web/cobrands/stevenage/layout.scss b/web/cobrands/stevenage/layout.scss
index a94dc2a24..542cffd96 100644
--- a/web/cobrands/stevenage/layout.scss
+++ b/web/cobrands/stevenage/layout.scss
@@ -211,7 +211,7 @@ body.frontpage {
#front-main {
#postcodeForm {
div {
- input#submit {
+ input#sub {
color: #fff;
background: $primary;
&:hover {
diff --git a/web/cobrands/zurich/_colours.scss b/web/cobrands/zurich/_colours.scss
index 8e8f4c9cd..73fb36577 100644
--- a/web/cobrands/zurich/_colours.scss
+++ b/web/cobrands/zurich/_colours.scss
@@ -1,15 +1,27 @@
/* COLOURS */
-$dark_blue: rgb(50, 80, 165);
-$lighter_blue: rgb(57, 94, 147);
+$dark_blue: rgb(0, 79, 167);
+$zurich_blue: rgb(0, 81, 169);
-$primary: $lighter_blue;
+$primary: $zurich_blue;
$primary_b: $dark_blue;
$primary_text: #fff;
-$col_click_map: $lighter_blue;
-$col_click_map_dark: darken($lighter_blue, 20%);
+$col_click_map: $zurich_blue;
+$col_click_map_dark: darken($zurich_blue, 20%);
-$col_fixed_label: #00BD08;
+$col_fixed_label: #648721;
$col_fixed_label_dark: #4B8304;
+$mobile_menu_tab_bg_col: #FFFFFF; // the white border and tab on mobile site
+$mobile_header_blue: #366AB6; // close match to Zurich logo_portal.jpg
+
+// Zurich admin tables:
+
+$table_border_color: #ccc;
+$table_heading_bg_col: #595959;
+$table_heading_border_col: #7a7a7a;
+$table_heading_col: #fff;
+$table_heading_underline_col: #393939;
+$button_col: #fff;
+$button_bg_col: #a1a1a1; // also search bar (tables)
diff --git a/web/cobrands/zurich/base.scss b/web/cobrands/zurich/base.scss
index 4594f832f..8111f2726 100644
--- a/web/cobrands/zurich/base.scss
+++ b/web/cobrands/zurich/base.scss
@@ -5,3 +5,104 @@
@import "../fixmystreet/_base";
+/* Front page main box is in content now, so get rid of its margin from parent */
+#front-main {
+ margin: 0;
+}
+
+/* Autocomplete dropdown on front page, don't want bullets */
+.ui-menu-item {
+ list-style-type: none;
+}
+
+/* Simplify the problem header on a report page */
+.problem-header h1 {
+ font-size: 120%;
+ font-weight: bold;
+ margin: 0;
+}
+.problem-header .sub {
+ color: #666;
+ font-size: 85%;
+}
+
+// Simplify the banner to just be a floated box. Colours etc. still
+// inherited from the base stylesheet.
+.banner {
+ p {
+ position: static;
+ float: right;
+ font-weight: bold;
+ padding: 1em;
+ margin: 0;
+ text-transform: uppercase;
+ text-align: center;
+ &:before {
+ display: none;
+ }
+ }
+}
+
+#site-header {
+ background: $mobile_header_blue;
+ border-top: 4px solid $mobile_menu_tab_bg_col;
+ height: 48px;
+}
+#site-logo {
+ background: url(logo_portal.jpg) 0px -24px no-repeat;
+ width: 200px;
+ height:44px;
+ left:0;
+ top:4px;
+}
+// Colour tab to match colour scheme
+#nav-link {
+ width: 50px;
+ height: 48px;
+ background: url('/cobrands/zurich/tab-white.png') 0 0 no-repeat;
+}
+#front-howto #front_stats,
+#front-main #postcodeForm {
+ background-color: $mobile_header_blue;
+}
+
+// No grey background or other bits
+// The amount of resetting here shows this needs refactoring, so that it is FMS making the changes
+// Also look into why full-width pulls things out, but then it is its children
+// that have to recompensate with padding.
+h4.static-with-rule {
+ color: black;
+ font-size: 1em;
+ font-weight: bold;
+ text-transform: none;
+ background: none;
+ padding-left: 0;
+ padding-right: 0;
+ border-top: 0.25em solid #e5e5e5;
+}
+.issue-list {
+ border-bottom: none;
+ li {
+ padding-left: 0;
+ padding-right: 0;
+ background: none;
+ }
+}
+
+.issue-list-a {
+ border-bottom: none;
+ li {
+ background: none;
+ .text {
+ .img {
+ padding-right: 1em;
+ }
+ }
+ }
+}
+
+.form-txt-submit-box input[type=submit] {
+ width:auto; // 28% is too narrow
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+}
diff --git a/web/cobrands/zurich/layout.scss b/web/cobrands/zurich/layout.scss
index 82ae2be75..3a2d8ddb0 100644
--- a/web/cobrands/zurich/layout.scss
+++ b/web/cobrands/zurich/layout.scss
@@ -2,6 +2,8 @@
@import "../fixmystreet/layout";
@import "zurich";
+// Things to override from parent stylesheet
+
body {
color: #3c3c3c;
background-color: #fff;
@@ -17,17 +19,41 @@ body {
border: none;
}
}
+// Except on map pages
+body.mappage .content {
+ @include box-shadow(0 0 6px 1px #000);
+}
+.ie6, .ie7, .ie8 {
+ body.mappage .content {
+ border: 1px solid #666;
+ }
+}
+/* The header on a map page needs a shadow too */
+body.mappage .nav-wrapper-2 {
+ @include box-shadow(0 0 6px 1px #000);
+}
+/* Except on admin pages where there's an admin nav directly underneath it */
+body.mappage.admin .nav-wrapper-2 {
+ @include box-shadow(none);
+}
+// Different header and logo
#site-header .container {
- height: 83px;
+ height: 99px;
background: url(logo_portal.x.jpg) top left repeat-x;
}
body.frontpage #site-logo, #site-logo {
width: 415px;
- height: 83px;
+ height: 16px;
background: url(logo_portal.jpg) top left no-repeat;
top: 0;
+ text-indent: 0;
+ padding-left: 10px;
+ padding-top: 83px;
+ color: #585858;
+ font-size: 85%;
+ left: auto; // base set this to 0
}
.nav-wrapper {
@@ -40,13 +66,52 @@ body.mappage {
.nav-wrapper {
.nav-wrapper-2 {
border-top: none;
- padding-top: 18px;
- background: url(logo_portal.x.jpg) top left repeat-x;
- height: 83px;
+ background: #fff;
+ height: 117px; // 99px+18px for padding
+ padding: 0 10px;
+ box-sizing: border-box;
}
}
+ /* Ugh :( But first wrapper is the caption, second is the fixed (so first we
+ can do padding on) so a third seems necessary for the background then. */
+ .nav-wrapper-3 {
+ height: 99px;
+ padding-top: 18px;
+ background: #fff url(logo_portal.x.jpg) top left repeat-x;
+ }
+ #site-logo {
+ margin-left: 10px;
+ }
+}
+
+// Logged in notice in footer (appearing in header)
+.nav-wrapper-2 p:first-child {
+ font-weight: bold;
+ margin-top: 0.75em;
+}
+.nav-wrapper-2 p {
+ line-height: 1.2;
+ color: white;
+ clear: right;
+ float: right;
+ margin: 0 1em 0 0;
+ font-size: 85%;
+ a {
+ color: white;
+ font-size: 85%;
+ }
+ a:hover {
+ color: white;
+ }
}
+#front-main {
+ background-color: inherit;
+ color: inherit;
+ margin: 0 0 2em 0;
+}
+
+/* TODO Change the main-nav to be what is wanted */
#main-nav {
ul#main-menu {
li {
@@ -60,6 +125,40 @@ body.mappage {
}
}
+#zurich-main-nav {
+ margin: -1em -1em 1em -1em; // -1em spreads back out over content's 1em padding
+ padding: 0;
+ background-color: #6A6869;
+
+ ul {
+ overflow:auto;
+ margin:0 0 0 0;
+ list-style: none;
+ padding: 0;
+ li {
+ font-size: 80%;
+ float:left;
+ list-style: none;
+ margin:0;
+ color: #fff;
+ a, span {
+ display: block;
+ padding: 0.75em 1em;
+ }
+ a {
+ color: #fff;
+ text-decoration: none;
+ &:hover {
+ background-color: #333;
+ }
+ }
+ span {
+ background-color: $zurich_blue;
+ }
+ }
+ }
+}
+
body.mappage {
#main-nav ul#main-menu li a,
#main-nav ul#main-menu li span {
@@ -75,6 +174,152 @@ body.twothirdswidthpage {
aside {
@include box-shadow(none);
}
+ .sticky-sidebar aside {
+ top: 14em; // overrides default value, due to Zurich nav at top of content
+ }
+ }
+}
+
+// Zurich base has made this a more simple construct. The top is to pull it up
+// over the content padding to be attached to the top of the content area.
+// We reduce the padding as no pin image, and change the background.
+.banner {
+ top: -1em;
+ p {
+ &#fixed {
+ padding-top: 2em;
+ background: $col_fixed_label;
+ @include background(linear-gradient(#769643, $col_fixed_label 4px));
+ }
+ }
+}
+.ie6 .banner p {
+ &#fixed {
+ background-image: none;
+ }
+}
+
+#fms_pan_zoom {
+ top: 7.75em !important;
+}
+
+// Admin specific changes
+
+body.fullwidthpage.admin .content {
+ width: 100%;
+}
+
+body.mappage.admin .content {
+ margin-top: 6em;
+ margin-left: 0.5em;
+
+}
+.admin {
+ .content {
+ margin: 2em 0 1em;
+ padding: 0 0 0 0;
+ }
+
+ #zurich-footer {
+ margin: 2em auto 3em auto;
+ }
+
+ table {
+ width: 100%;
+ font-size: 0.9em;
+ border: 1px solid $table_border_color;
+ border-collapse:collapse;
+ th, td {
+ padding: 0.666em 0.5em;
+ border: 1px solid $table_border_color;
+ }
+ th {
+ color: white;
+ background-color: $table_heading_bg_col;
+ border-bottom: 2px solid $table_heading_underline_col;
+ border-left: 1px solid $table_heading_border_col;
+ border-right: 1px solid $table_heading_border_col;
+ }
+ td.record-id {
+ text-align: center;
+ font-weight: bold;
+ }
+ tr.filter-row td {
+ display: none; /* TODO: reveal when filtering is implemented */
+ padding: 4px 4px 4px 40px;
+ background-color: $button_bg_col;
+ background-image: url('search-icon-white.png');
+ background-position: 14px center;
+ background-repeat: no-repeat;
+ border-bottom: 2px solid $table_border_color;
+ }
+ tr.filter-row td input[type=text] {
+ background-color: #e1e1e1;
+ width: 16em;
+ @include border-radius(4px);
+ border: none;
+ padding: 3px 0.5em;
+ }
+ }
+}
+
+.admin-nav-wrapper {
+ background-color: white;
+ padding: 1.5em 0 1em;
+}
+body.mappage .admin-nav-wrapper {
+ box-sizing: border-box;
+ padding-left: 10px;
+ padding-right: 10px;
+ position: fixed;
+ width: 100%;
+ @include box-shadow(0 0 6px 1px #000);
+}
+
+.admin-nav {
+ background: #f4f4f4;
+ @include background(linear-gradient(#fbfbfb, #efefef));
+ border-bottom: 2px solid $table_border_color;
+ ul {
+ overflow:auto;
+ margin:0 0 -2px 0;
+ list-style: none;
+ padding: 0;
+ border-top: 1px solid $table_border_color;
+ border-left: 1px solid $table_border_color;
+ border-right: 1px solid $table_border_color;
+ li {
+ border-right: 1px solid $table_border_color;
+ float:left;
+ list-style: none;
+ margin:0;
+ padding: 0.5em 1em;
+ font-weight: bold;
+ color: #000;
+ a {
+ color: #000;
+ }
+ }
+ li.search-box {
+ float: right;
+ }
+ li.current {
+ background-color: #fff;
+ border-bottom: 2px solid #fff;
+ }
+ li.search-box {
+ border:none;
+ padding: 0.2em 0.5em 0.2em 30px;
+ background-image: url('search-icon.png');
+ background-position: 2px center;
+ background-repeat: no-repeat;
+ input {
+ height: 100%;
+ width: 12em;
+ border: none;
+ padding: 6px 0.5em;
+ }
+ }
}
}
diff --git a/web/cobrands/zurich/search-icon-white.png b/web/cobrands/zurich/search-icon-white.png
new file mode 100644
index 000000000..59f3f1f82
--- /dev/null
+++ b/web/cobrands/zurich/search-icon-white.png
Binary files differ
diff --git a/web/cobrands/zurich/search-icon.png b/web/cobrands/zurich/search-icon.png
new file mode 100644
index 000000000..b74f9397f
--- /dev/null
+++ b/web/cobrands/zurich/search-icon.png
Binary files differ
diff --git a/web/cobrands/zurich/tab-white.png b/web/cobrands/zurich/tab-white.png
new file mode 100644
index 000000000..17e4f177e
--- /dev/null
+++ b/web/cobrands/zurich/tab-white.png
Binary files differ
diff --git a/web/cobrands/zurich/zurich-wmts-hybrid.xml b/web/cobrands/zurich/zurich-wmts-hybrid.xml
new file mode 100644
index 000000000..f1580cc89
--- /dev/null
+++ b/web/cobrands/zurich/zurich-wmts-hybrid.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+
+
+
+
+
+
+
+
+
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
+ xmlns:ows="http://www.opengis.net/ows/1.1"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gml="http://www.opengis.net/gml"
+ xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
+ version="1.0.0">
+ <!-- Service Identification -->
+ <ows:ServiceIdentification>
+ <ows:Title>Hybrid</ows:Title>
+ <ows:ServiceType>OGC WMTS</ows:ServiceType>
+ <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+ <ows:Operation name="GetCapabilities">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <!-- add KVP binding in 10.1 -->
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+ <ows:Operation name="GetTile">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/tile/1.0.0/">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+</ows:OperationsMetadata>
+<Contents>
+ <!--Layer-->
+ <Layer>
+ <ows:Title>Hybrid</ows:Title>
+ <ows:Identifier>Hybrid</ows:Identifier>
+
+ <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::21781">
+ <ows:LowerCorner>665000.0 230000.0</ows:LowerCorner>
+ <ows:UpperCorner>700000.0 270000.0</ows:UpperCorner>
+ </ows:BoundingBox>
+
+ <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+ <ows:LowerCorner>8.297842338812158 47.21471096634782</ows:LowerCorner>
+ <ows:UpperCorner>8.768863108218179 47.57887356607757</ows:UpperCorner>
+ </ows:WGS84BoundingBox>
+ <Style isDefault="true">
+ <ows:Title>Default Style</ows:Title>
+ <ows:Identifier>default</ows:Identifier>
+ </Style>
+ <Format>image/jpgpng</Format>
+ <TileMatrixSetLink>
+ <TileMatrixSet>default028mm</TileMatrixSet>
+ </TileMatrixSetLink>
+ <TileMatrixSetLink>
+ <TileMatrixSet>nativeTileMatrixSet</TileMatrixSet>
+ </TileMatrixSetLink>
+
+ <ResourceURL format="image/jpgpng" resourceType="tile" template="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/tile/1.0.0/Hybrid/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}" />
+ </Layer>
+ <!--TileMatrixSet-->
+ <TileMatrixSet>
+ <ows:Title>Default TileMatrix using 0.28mm</ows:Title>
+ <ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract>
+ <ows:Identifier>default028mm</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>236235.11904761902</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>4</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>118117.55952380951</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>6</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>60476.19047619047</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>10</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>30238.095238095237</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>19</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>15119.047619047618</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>33</MatrixWidth>
+ <MatrixHeight>38</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>7559.523809523809</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>75</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>3779.7619047619046</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>131</MatrixWidth>
+ <MatrixHeight>149</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>1889.8809523809523</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>260</MatrixWidth>
+ <MatrixHeight>296</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>944.9404761904761</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>518</MatrixWidth>
+ <MatrixHeight>591</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>472.4702380952381</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>1035</MatrixWidth>
+ <MatrixHeight>1182</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+ <TileMatrixSet>
+ <ows:Title>Native TiledMapService TileMatrixSet</ows:Title>
+ <ows:Abstract>the tile matrix set that has scale values calculated based on the dpi defined by ArcGIS Server tiled map service. The current tile dpi is 96</ows:Abstract>
+ <ows:Identifier>nativeTileMatrixSet</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>250000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>4</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>125000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>6</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>64000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>10</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>32000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>19</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>16000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>33</MatrixWidth>
+ <MatrixHeight>38</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>8000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>75</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>4000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>131</MatrixWidth>
+ <MatrixHeight>149</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>2000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>260</MatrixWidth>
+ <MatrixHeight>296</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>1000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>518</MatrixWidth>
+ <MatrixHeight>591</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>500.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>1035</MatrixWidth>
+ <MatrixHeight>1182</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+
+</Contents>
+<ServiceMetadataURL xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Hybrid/MapServer/WMTS/1.0.0/WMTSCapabilities.xml" />
+</Capabilities>
diff --git a/web/cobrands/zurich/zurich-wmts-map.xml b/web/cobrands/zurich/zurich-wmts-map.xml
new file mode 100644
index 000000000..b78f88826
--- /dev/null
+++ b/web/cobrands/zurich/zurich-wmts-map.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+
+
+
+
+
+
+
+
+
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
+ xmlns:ows="http://www.opengis.net/ows/1.1"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gml="http://www.opengis.net/gml"
+ xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
+ version="1.0.0">
+ <!-- Service Identification -->
+ <ows:ServiceIdentification>
+ <ows:Title>Stadtplan</ows:Title>
+ <ows:ServiceType>OGC WMTS</ows:ServiceType>
+ <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+ <ows:Operation name="GetCapabilities">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <!-- add KVP binding in 10.1 -->
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+ <ows:Operation name="GetTile">
+ <ows:DCP>
+ <ows:HTTP>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/tile/1.0.0/">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>RESTful</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ <ows:Get xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS?">
+ <ows:Constraint name="GetEncoding">
+ <ows:AllowedValues>
+ <ows:Value>KVP</ows:Value>
+ </ows:AllowedValues>
+ </ows:Constraint>
+ </ows:Get>
+ </ows:HTTP>
+ </ows:DCP>
+ </ows:Operation>
+</ows:OperationsMetadata>
+<Contents>
+ <!--Layer-->
+ <Layer>
+ <ows:Title>Stadtplan</ows:Title>
+ <ows:Identifier>Stadtplan</ows:Identifier>
+
+ <ows:BoundingBox crs="urn:ogc:def:crs:EPSG::21781">
+ <ows:LowerCorner>672499.0 238999.0</ows:LowerCorner>
+ <ows:UpperCorner>689999.0 256999.0</ows:UpperCorner>
+ </ows:BoundingBox>
+
+ <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+ <ows:LowerCorner>8.398302613481356 47.29709259053008</ows:LowerCorner>
+ <ows:UpperCorner>8.633312509540968 47.46115331797573</ows:UpperCorner>
+ </ows:WGS84BoundingBox>
+ <Style isDefault="true">
+ <ows:Title>Default Style</ows:Title>
+ <ows:Identifier>default</ows:Identifier>
+ </Style>
+ <Format>image/jpgpng</Format>
+ <TileMatrixSetLink>
+ <TileMatrixSet>default028mm</TileMatrixSet>
+ </TileMatrixSetLink>
+ <TileMatrixSetLink>
+ <TileMatrixSet>nativeTileMatrixSet</TileMatrixSet>
+ </TileMatrixSetLink>
+
+ <ResourceURL format="image/jpgpng" resourceType="tile" template="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/tile/1.0.0/Stadtplan/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}" />
+ </Layer>
+ <!--TileMatrixSet-->
+ <TileMatrixSet>
+ <ows:Title>Default TileMatrix using 0.28mm</ows:Title>
+ <ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract>
+ <ows:Identifier>default028mm</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>236235.11904761902</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>2</MatrixWidth>
+ <MatrixHeight>2</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>118117.55952380951</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>3</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>60476.19047619047</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>5</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>30238.095238095237</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>9</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>15119.047619047618</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>18</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>7559.523809523809</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>34</MatrixWidth>
+ <MatrixHeight>35</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>3779.7619047619046</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>68</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>1889.8809523809523</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>130</MatrixWidth>
+ <MatrixHeight>134</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>944.9404761904761</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>259</MatrixWidth>
+ <MatrixHeight>267</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>472.4702380952381</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>517</MatrixWidth>
+ <MatrixHeight>533</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+ <TileMatrixSet>
+ <ows:Title>Native TiledMapService TileMatrixSet</ows:Title>
+ <ows:Abstract>the tile matrix set that has scale values calculated based on the dpi defined by ArcGIS Server tiled map service. The current tile dpi is 96</ows:Abstract>
+ <ows:Identifier>nativeTileMatrixSet</ows:Identifier>
+ <ows:SupportedCRS>urn:ogc:def:crs:EPSG::21781</ows:SupportedCRS>
+
+ <TileMatrix>
+ <ows:Identifier>0</ows:Identifier>
+ <ScaleDenominator>250000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>2</MatrixWidth>
+ <MatrixHeight>2</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>1</ows:Identifier>
+ <ScaleDenominator>125000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>3</MatrixWidth>
+ <MatrixHeight>3</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>2</ows:Identifier>
+ <ScaleDenominator>64000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>5</MatrixWidth>
+ <MatrixHeight>5</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>3</ows:Identifier>
+ <ScaleDenominator>32000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>9</MatrixWidth>
+ <MatrixHeight>9</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>4</ows:Identifier>
+ <ScaleDenominator>16000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>17</MatrixWidth>
+ <MatrixHeight>18</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>5</ows:Identifier>
+ <ScaleDenominator>8000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>34</MatrixWidth>
+ <MatrixHeight>35</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>6</ows:Identifier>
+ <ScaleDenominator>4000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>66</MatrixWidth>
+ <MatrixHeight>68</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>7</ows:Identifier>
+ <ScaleDenominator>2000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>130</MatrixWidth>
+ <MatrixHeight>134</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>8</ows:Identifier>
+ <ScaleDenominator>1000.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>259</MatrixWidth>
+ <MatrixHeight>267</MatrixHeight>
+
+ </TileMatrix>
+
+ <TileMatrix>
+ <ows:Identifier>9</ows:Identifier>
+ <ScaleDenominator>500.0</ScaleDenominator>
+ <TopLeftCorner>-2.93864E7 3.08145E7</TopLeftCorner>
+ <TileWidth>256</TileWidth>
+ <TileHeight>256</TileHeight>
+
+ <MatrixWidth>517</MatrixWidth>
+ <MatrixHeight>533</MatrixHeight>
+
+ </TileMatrix>
+
+ </TileMatrixSet>
+
+</Contents>
+<ServiceMetadataURL xlink:href="http://www.wmts.stadt-zuerich.ch/arcgis/rest/services/Stadtplan/MapServer/WMTS/1.0.0/WMTSCapabilities.xml" />
+</Capabilities>
diff --git a/web/cobrands/zurich/Zurich-WMTSCapabilities.xml b/web/cobrands/zurich/zurich-wmts-satellite.xml
index c8b863c22..c8b863c22 100644
--- a/web/cobrands/zurich/Zurich-WMTSCapabilities.xml
+++ b/web/cobrands/zurich/zurich-wmts-satellite.xml
diff --git a/web/css/core.scss b/web/css/core.scss
index c7fac1717..ed47cb01a 100644
--- a/web/css/core.scss
+++ b/web/css/core.scss
@@ -109,7 +109,7 @@ $map_width: 500px;
margin-top: 0;
}
- #submit {
+ #sub {
font-size: 83%;
}
}
@@ -616,7 +616,7 @@ $map_width: 500px;
display: block;
font-size: 150%;
}
- #submit {
+ #sub {
font-size: 100%;
}
}
diff --git a/web/js/OpenLayers.2.11.zurich.js b/web/js/OpenLayers.2.11.zurich.js
index 671984fb4..62087500d 100644
--- a/web/js/OpenLayers.2.11.zurich.js
+++ b/web/js/OpenLayers.2.11.zurich.js
@@ -23,26 +23,6 @@
*
*--------------------------------------------------------------------------*/
-/**
-*
-* Contains portions of Rico <http://openrico.org/>
-*
-* Copyright 2005 Sabre Airline Solutions
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you
-* may not use this file except in compliance with the License. You
-* may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-* implied. See the License for the specific language governing
-* permissions and limitations under the License.
-*
-**/
-
/**
* Contains XMLHttpRequest.js <http://code.google.com/p/xmlhttprequest/>
* Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com)
@@ -1381,4 +1361,4 @@ format(date.getMinutes())+':'+
format(date.getSeconds())+'"';}},CLASS_NAME:"OpenLayers.Format.JSON"});OpenLayers.Control.DragFeature=OpenLayers.Class(OpenLayers.Control,{geometryTypes:null,onStart:function(feature,pixel){},onDrag:function(feature,pixel){},onComplete:function(feature,pixel){},onEnter:function(feature){},onLeave:function(feature){},documentDrag:false,layer:null,feature:null,dragCallbacks:{},featureCallbacks:{},lastPixel:null,initialize:function(layer,options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.layer=layer;this.handlers={drag:new OpenLayers.Handler.Drag(this,OpenLayers.Util.extend({down:this.downFeature,move:this.moveFeature,up:this.upFeature,out:this.cancel,done:this.doneDragging},this.dragCallbacks),{documentDrag:this.documentDrag}),feature:new OpenLayers.Handler.Feature(this,this.layer,OpenLayers.Util.extend({click:this.clickFeature,clickout:this.clickoutFeature,over:this.overFeature,out:this.outFeature},this.featureCallbacks),{geometryTypes:this.geometryTypes})};},clickFeature:function(feature){if(this.handlers.feature.touch&&!this.over&&this.overFeature(feature)){this.handlers.drag.dragstart(this.handlers.feature.evt);this.handlers.drag.stopDown=false;}},clickoutFeature:function(feature){if(this.handlers.feature.touch&&this.over){this.outFeature(feature);this.handlers.drag.stopDown=true;}},destroy:function(){this.layer=null;OpenLayers.Control.prototype.destroy.apply(this,[]);},activate:function(){return(this.handlers.feature.activate()&&OpenLayers.Control.prototype.activate.apply(this,arguments));},deactivate:function(){this.handlers.drag.deactivate();this.handlers.feature.deactivate();this.feature=null;this.dragging=false;this.lastPixel=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},overFeature:function(feature){var activated=false;if(!this.handlers.drag.dragging){this.feature=feature;this.handlers.drag.activate();activated=true;this.over=true;OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass+"Over");this.onEnter(feature);}else{if(this.feature.id==feature.id){this.over=true;}else{this.over=false;}}
return activated;},downFeature:function(pixel){this.lastPixel=pixel;this.onStart(this.feature,pixel);},moveFeature:function(pixel){var res=this.map.getResolution();this.feature.geometry.move(res*(pixel.x-this.lastPixel.x),res*(this.lastPixel.y-pixel.y));this.layer.drawFeature(this.feature);this.lastPixel=pixel;this.onDrag(this.feature,pixel);},upFeature:function(pixel){if(!this.over){this.handlers.drag.deactivate();}},doneDragging:function(pixel){this.onComplete(this.feature,pixel);},outFeature:function(feature){if(!this.handlers.drag.dragging){this.over=false;this.handlers.drag.deactivate();OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");this.onLeave(feature);this.feature=null;}else{if(this.feature.id==feature.id){this.over=false;}}},cancel:function(){this.handlers.drag.deactivate();this.over=false;},setMap:function(map){this.handlers.drag.setMap(map);this.handlers.feature.setMap(map);OpenLayers.Control.prototype.setMap.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.DragFeature"});OpenLayers.Control.PinchZoom=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,containerOrigin:null,pinchOrigin:null,currentCenter:null,autoActivate:true,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);this.handler=new OpenLayers.Handler.Pinch(this,{start:this.pinchStart,move:this.pinchMove,done:this.pinchDone},this.handlerOptions);},activate:function(){var activated=OpenLayers.Control.prototype.activate.apply(this,arguments);if(activated){this.map.events.on({moveend:this.updateContainerOrigin,scope:this});this.updateContainerOrigin();}
return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.apply(this,arguments);if(this.map&&this.map.events){this.map.events.un({moveend:this.updateContainerOrigin,scope:this});}
-return deactivated;},updateContainerOrigin:function(){var container=this.map.layerContainerDiv;this.containerOrigin={x:parseInt(container.style.left,10),y:parseInt(container.style.top,10)};},pinchStart:function(evt,pinchData){this.pinchOrigin=evt.xy;this.currentCenter=evt.xy;},pinchMove:function(evt,pinchData){var scale=pinchData.scale;var containerOrigin=this.containerOrigin;var pinchOrigin=this.pinchOrigin;var current=evt.xy;var dx=Math.round((current.x-pinchOrigin.x)+(scale-1)*(containerOrigin.x-pinchOrigin.x));var dy=Math.round((current.y-pinchOrigin.y)+(scale-1)*(containerOrigin.y-pinchOrigin.y));this.applyTransform("translate("+dx+"px, "+dy+"px) scale("+scale+")");this.currentCenter=current;},applyTransform:function(transform){var style=this.map.layerContainerDiv.style;style['-webkit-transform']=transform;style['-moz-transform']=transform;},pinchDone:function(evt,start,last){this.applyTransform("");var zoom=this.map.getZoomForResolution(this.map.getResolution()/last.scale,true);if(zoom!==this.map.getZoom()||!this.currentCenter.equals(this.pinchOrigin)){var resolution=this.map.getResolutionForZoom(zoom);var location=this.map.getLonLatFromPixel(this.pinchOrigin);var zoomPixel=this.currentCenter;var size=this.map.getSize();location.lon+=resolution*((size.w/2)-zoomPixel.x);location.lat-=resolution*((size.h/2)-zoomPixel.y);this.map.setCenter(location,zoom);}},CLASS_NAME:"OpenLayers.Control.PinchZoom"}); \ No newline at end of file
+return deactivated;},updateContainerOrigin:function(){var container=this.map.layerContainerDiv;this.containerOrigin={x:parseInt(container.style.left,10),y:parseInt(container.style.top,10)};},pinchStart:function(evt,pinchData){this.pinchOrigin=evt.xy;this.currentCenter=evt.xy;},pinchMove:function(evt,pinchData){var scale=pinchData.scale;var containerOrigin=this.containerOrigin;var pinchOrigin=this.pinchOrigin;var current=evt.xy;var dx=Math.round((current.x-pinchOrigin.x)+(scale-1)*(containerOrigin.x-pinchOrigin.x));var dy=Math.round((current.y-pinchOrigin.y)+(scale-1)*(containerOrigin.y-pinchOrigin.y));this.applyTransform("translate("+dx+"px, "+dy+"px) scale("+scale+")");this.currentCenter=current;},applyTransform:function(transform){var style=this.map.layerContainerDiv.style;style['-webkit-transform']=transform;style['-moz-transform']=transform;},pinchDone:function(evt,start,last){this.applyTransform("");var zoom=this.map.getZoomForResolution(this.map.getResolution()/last.scale,true);if(zoom!==this.map.getZoom()||!this.currentCenter.equals(this.pinchOrigin)){var resolution=this.map.getResolutionForZoom(zoom);var location=this.map.getLonLatFromPixel(this.pinchOrigin);var zoomPixel=this.currentCenter;var size=this.map.getSize();location.lon+=resolution*((size.w/2)-zoomPixel.x);location.lat-=resolution*((size.h/2)-zoomPixel.y);this.map.setCenter(location,zoom);}},CLASS_NAME:"OpenLayers.Control.PinchZoom"});
diff --git a/web/js/fixmystreet.js b/web/js/fixmystreet.js
index 1d5ef6b97..e25c2a571 100644
--- a/web/js/fixmystreet.js
+++ b/web/js/fixmystreet.js
@@ -43,18 +43,18 @@ $(function(){
// FIXME - needs to use translated string
jQuery.validator.addMethod('validCategory', function(value, element) {
- return this.optional(element) || value != '-- Pick a category --'; }, validation_strings.category );
+ return this.optional(element) || value != '-- Pick a category --'; }, translation_strings.category );
jQuery.validator.addMethod('validName', function(value, element) {
var validNamePat = /\ba\s*n+on+((y|o)mo?u?s)?(ly)?\b/i;
- return this.optional(element) || value.length > 5 && value.match( /\S/ ) && value.match( /\s/ ) && !value.match( validNamePat ); }, validation_strings.category );
+ return this.optional(element) || value.length > 5 && value.match( /\S/ ) && value.match( /\s/ ) && !value.match( validNamePat ); }, translation_strings.category );
var form_submitted = 0;
var submitted = false;
$("form.validate").validate({
rules: validation_rules,
- messages: validation_strings,
+ messages: translation_strings,
onkeyup: false,
onfocusout: false,
errorElement: 'div',
@@ -128,7 +128,7 @@ $(function(){
// Geolocation
if (geo_position_js.init()) {
- var link = '<a href="#LINK" id="geolocate_link">&hellip; ' + validation_strings.geolocate + '</a>';
+ var link = '<a href="#LINK" id="geolocate_link">&hellip; ' + translation_strings.geolocate + '</a>';
$('form[action="/alert/list"]').append(link.replace('LINK','alert/list'));
if ($('body.frontpage').length) {
$('#postcodeForm').after(link.replace('LINK','around'));
@@ -153,13 +153,13 @@ $(function(){
}, function(err) {
$link.find('img').remove();
if (err.code == 1) { // User said no
- $link.html("You declined; please fill in the box above");
+ $link.html(translation_strings.geolocation_declined);
} else if (err.code == 2) { // No position
- $link.html("Could not look up location");
+ $link.html(translation_strings.geolocation_no_position);
} else if (err.code == 3) { // Too long
- $link.html("No result returned");
+ $link.html(translation_strings.geolocation_no_result);
} else { // Unknown
- $link.html("Unknown error");
+ $link.html(translation_strings.geolocation_unknown);
}
}, {
enableHighAccuracy: true,
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index 85ab09889..88dc6d69e 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -16,7 +16,7 @@ function fixmystreet_update_pin(lonlat) {
if (!$('#side-form-error').length) {
$('<div id="side-form-error"/>').insertAfter($('#side-form'));
}
- $('#side-form-error').html('<h1>Reporting a problem</h1><p>' + data.error + '</p>').show();
+ $('#side-form-error').html('<h1>' + translation_strings.reporting_a_problem + '</h1><p>' + data.error + '</p>').show();
$('#side-form').hide();
return;
}
@@ -26,7 +26,7 @@ function fixmystreet_update_pin(lonlat) {
if ( data.extra_name_info && !$('#form_fms_extra_title').length ) {
// there might be a first name field on some cobrands
var lb = $('#form_first_name').prev();
- if ( lb.length == 0 ) { lb = $('#form_name').prev(); }
+ if ( lb.length === 0 ) { lb = $('#form_name').prev(); }
lb.before(data.extra_name_info);
}
});
@@ -82,6 +82,9 @@ function fixmystreet_onload() {
fixmystreet.map.addLayer(area);
if ( fixmystreet.area.length == 1 ) {
area.events.register('loadend', null, function(a,b,c) {
+ if ( fixmystreet.area_format ) {
+ area.styleMap.styles['default'].defaultStyle = fixmystreet.area_format;
+ }
var bounds = area.getDataExtent();
if (bounds) {
var center = bounds.getCenterLonLat();
@@ -147,18 +150,20 @@ function fixmystreet_onload() {
}
fixmystreet.markers = new OpenLayers.Layer.Vector("Pins", pin_layer_options);
fixmystreet.markers.events.register( 'loadend', fixmystreet.markers, function(evt) {
- if (fixmystreet.map.popups.length) fixmystreet.map.removePopup(fixmystreet.map.popups[0]);
+ if (fixmystreet.map.popups.length) {
+ fixmystreet.map.removePopup(fixmystreet.map.popups[0]);
+ }
});
var markers = fms_markers_list( fixmystreet.pins, true );
fixmystreet.markers.addFeatures( markers );
+ function onPopupClose(evt) {
+ fixmystreet.select_feature.unselect(selectedFeature);
+ OpenLayers.Event.stop(evt);
+ }
if (fixmystreet.page == 'around' || fixmystreet.page == 'reports' || fixmystreet.page == 'my') {
fixmystreet.select_feature = new OpenLayers.Control.SelectFeature( fixmystreet.markers );
var selectedFeature;
- function onPopupClose(evt) {
- fixmystreet.select_feature.unselect(selectedFeature);
- OpenLayers.Event.stop(evt);
- }
fixmystreet.markers.events.register( 'featureunselected', fixmystreet.markers, function(evt) {
var feature = evt.feature, popup = feature.popup;
fixmystreet.map.removePopup(popup);
@@ -171,7 +176,7 @@ function fixmystreet_onload() {
var popup = new OpenLayers.Popup.FramedCloud("popup",
feature.geometry.getBounds().getCenterLonLat(),
null,
- feature.attributes.title + "<br><a href=/report/" + feature.attributes.id + ">More details</a>",
+ feature.attributes.title + "<br><a href=/report/" + feature.attributes.id + ">" + translation_strings.more_details + "</a>",
{ size: new OpenLayers.Size(0,0), offset: new OpenLayers.Pixel(0,-40) },
true, onPopupClose);
feature.popup = popup;
@@ -201,7 +206,8 @@ function fixmystreet_onload() {
var showhide = [
'Show pins', 'Hide pins',
'Dangos pinnau', 'Cuddio pinnau',
- "Vis nåler", "Gjem nåler"
+ "Vis nåler", "Gjem nåler",
+ "Zeige Stecknadeln", "Stecknadeln ausblenden"
];
for (var i=0; i<showhide.length; i+=2) {
if (this.innerHTML == showhide[i]) {
@@ -267,19 +273,24 @@ $(function(){
}
// Set it up our way
- fixmystreet.layer_options = OpenLayers.Util.extend({
- zoomOffset: fixmystreet.zoomOffset,
- transitionEffect: 'resize',
- numZoomLevels: fixmystreet.numZoomLevels
- }, fixmystreet.layer_options);
var layer;
- if (fixmystreet.layer_options.matrixIds) {
- layer = new fixmystreet.map_type(fixmystreet.layer_options);
- } else {
- layer = new fixmystreet.map_type("", fixmystreet.layer_options);
+ if (!fixmystreet.layer_options) {
+ fixmystreet.layer_options = [ {} ];
+ }
+ for (var i=0; i<fixmystreet.layer_options.length; i++) {
+ fixmystreet.layer_options[i] = OpenLayers.Util.extend({
+ zoomOffset: fixmystreet.zoomOffset,
+ transitionEffect: 'resize',
+ numZoomLevels: fixmystreet.numZoomLevels
+ }, fixmystreet.layer_options[i]);
+ if (fixmystreet.layer_options[i].matrixIds) {
+ layer = new fixmystreet.map_type(fixmystreet.layer_options[i]);
+ } else {
+ layer = new fixmystreet.map_type("", fixmystreet.layer_options[i]);
+ }
+ fixmystreet.map.addLayer(layer);
}
- fixmystreet.map.addLayer(layer);
if (!fixmystreet.map.getCenter()) {
var centre = new OpenLayers.LonLat( fixmystreet.longitude, fixmystreet.latitude );
@@ -349,7 +360,7 @@ $(function(){
$('#sub_map_links').show();
//only on mobile
$('#mob_sub_map_links').remove();
- $('.mobile-map-banner').html('<a href="/">Home</a> Place pin on map');
+ $('.mobile-map-banner').html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.place_pin_on_map);
fixmystreet.page = 'around';
});
@@ -511,7 +522,7 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
if (sidebar.css('position') == 'absolute') {
var w = sidebar.width(), h = sidebar.height(),
o = sidebar.offset(),
- $map_box = $('#map_box'), bo = $map_box.offset();
+ $map_boxx = $('#map_box'), bo = $map_boxx.offset();
// e.xy is relative to top left of map, which might not be top left of page
e.xy.x += bo.left;
e.xy.y += bo.top;
@@ -536,15 +547,10 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
var $map_box = $('#map_box'),
width = $map_box.width(),
height = $map_box.height();
- $map_box.append(
- '<p id="mob_sub_map_links">' +
- '<a href="#" id="try_again">Try again</a>' +
- '<a href="#ok" id="mob_ok">OK</a>' +
- '</p>'
- ).css({ position: 'relative', width: width, height: height, marginBottom: '1em' });
+ $map_box.append( '<p id="mob_sub_map_links">' + '<a href="#" id="try_again">' + translation_strings.try_again + '</a>' + '<a href="#ok" id="mob_ok">' + translation_strings.ok + '</a>' + '</p>' ).css({ position: 'relative', width: width, height: height, marginBottom: '1em' });
// Making it relative here makes it much easier to do the scrolling later
- $('.mobile-map-banner').html('<a href="/">Home</a> Right place?');
+ $('.mobile-map-banner').html('<a href="/">' + translation_strings.home + '</a> ' + translation_strings.right_place);
// mobile user clicks 'ok' on map
$('#mob_ok').toggle(function(){
@@ -553,12 +559,12 @@ OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
//to do this on other pages where #side-form might not be
$('html, body').animate({ scrollTop: height-60 }, 1000, function(){
$('#mob_sub_map_links').addClass('map_complete');
- $('#mob_ok').text('MAP');
+ $('#mob_ok').text(translation_strings.map);
});
}, function(){
$('html, body').animate({ scrollTop: 0 }, 1000, function(){
$('#mob_sub_map_links').removeClass('map_complete');
- $('#mob_ok').text('OK');
+ $('#mob_ok').text(translation_strings.ok);
});
});
}
diff --git a/web/js/map-wmts-zurich.js b/web/js/map-wmts-zurich.js
index 8ecca50a1..682c62f39 100644
--- a/web/js/map-wmts-zurich.js
+++ b/web/js/map-wmts-zurich.js
@@ -2,16 +2,22 @@
* Maps for FMZ using Zurich council's WMTS tile server
*/
+$(function(){
+ $('#map_layer_toggle').toggle(function(){
+ $(this).text('Luftbild');
+ fixmystreet.map.setBaseLayer(fixmystreet.map.layers[1]);
+ }, function(){
+ $(this).text('Stadtplan');
+ fixmystreet.map.setBaseLayer(fixmystreet.map.layers[0]);
+ });
+});
+
/*
* set_map_config() is called on dom ready in map-OpenLayers.js
* to setup the way the map should operate.
*/
function set_map_config(perm) {
// This stuff is copied from js/map-bing-ol.js
- var permalink_id;
- if ($('#map_permalink').length) {
- permalink_id = 'map_permalink';
- }
var nav_opts = { zoomWheelEnabled: false };
if (fixmystreet.page == 'around' && $('html').hasClass('mobile')) {
@@ -22,10 +28,11 @@
fixmystreet.controls = [
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.ArgParser(),
- fixmystreet.nav_control,
- new OpenLayers.Control.Permalink(permalink_id),
- new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' })
+ fixmystreet.nav_control
];
+ if ( fixmystreet.page != 'report' || !$('html').hasClass('mobile') ) {
+ fixmystreet.controls.push( new OpenLayers.Control.PanZoomFMS({id: 'fms_pan_zoom' }) );
+ }
fixmystreet.map_type = OpenLayers.Layer.WMTS;
@@ -33,22 +40,22 @@
OpenLayers.DOTS_PER_INCH = 96;
fixmystreet.map_options = {
- projection: new OpenLayers.Projection("EPSG:21781"),
maxExtent: new OpenLayers.Bounds(676000, 241000, 690000, 255000),
units: 'm',
- scales: [ '250000', '125000', '64000', '32000', '16000', '8000', '4000', '2000', '1000', '500']
+ scales: [ '64000', '32000', '16000', '8000', '4000', '2000', '1000', '500' ]
};
- fixmystreet.layer_options = {
- name: "Luftbild",
- layer: "Luftbild",
+ var layer_options = {
+ projection: new OpenLayers.Projection("EPSG:21781"),
+ name: "Hybrid",
+ layer: "Hybrid",
matrixSet: "nativeTileMatrixSet",
requestEncoding: "REST",
- url: "http://www.wmts.stadt-zuerich.ch/Luftbild/MapServer/WMTS/tile/",
+ url: "http://www.wmts.stadt-zuerich.ch/Hybrid/MapServer/WMTS/tile/",
style: "default",
matrixIds: [
- { identifier: "0", matrixHeight: 2, matrixWidth: 2, scaleDenominator: 250000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
- { identifier: "1", matrixHeight: 3, matrixWidth: 3, scaleDenominator: 125000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
+ //{ identifier: "0", matrixHeight: 2, matrixWidth: 2, scaleDenominator: 250000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
+ //{ identifier: "1", matrixHeight: 3, matrixWidth: 3, scaleDenominator: 125000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "2", matrixHeight: 4, matrixWidth: 5, scaleDenominator: 64000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "3", matrixHeight: 7, matrixWidth: 8, scaleDenominator: 32000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
{ identifier: "4", matrixHeight: 14, matrixWidth: 14, scaleDenominator: 16000, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } },
@@ -59,10 +66,19 @@
{ identifier: "9", matrixHeight: 415, matrixWidth: 414, scaleDenominator: 500, supportedCRS: "urn:ogc:def:crs:EPSG::21781", tileHeight: 256, tileWidth: 256, topLeftCorner: { lat: 30814423, lon: -29386322 } }
]
};
+ fixmystreet.layer_options = [
+ layer_options, OpenLayers.Util.applyDefaults({
+ name: "Stadtplan",
+ layer: "Stadtplan",
+ url: "http://www.wmts.stadt-zuerich.ch/Stadtplan/MapServer/WMTS/tile/"
+ }, layer_options)
+ ];
// Give main code a new bbox_strategy that translates between
// lat/lon and our swiss coordinates
fixmystreet.bbox_strategy = new OpenLayers.Strategy.ZurichBBOX({ratio: 1});
+
+ fixmystreet.area_format = { fillColor: 'none', strokeWidth: 4, strokeColor: 'black' };
}
OpenLayers.Strategy.ZurichBBOX = OpenLayers.Class(OpenLayers.Strategy.BBOX, {