Cashmere Hill Loop

This short walking circuit provides a good workout for those with limited time, as well as great views over the park.

hills and trees

Start Cashmere car park
Finish Same as the starting point
Time 20-minute circuit
Toilets Located in the main car park area
Dogs Must be kept on a leash
Description

From the Cashmere car park, take the path uphill through the Seattle Gardens and up above the Gansu Gardens.

From there, follow the path downhill until you reach the intersection with the shared use track and follow this back to the car park

Esri Logo

ArcGIS Web Adaptor

Could not access any server machines. Please contact your system administrator.

; combinedData.features = $.merge( $.merge( [], combinedData.features ), datasets['dataset_165'].features); layerGroup['Walking tracks'] = L.featureGroup(); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_165']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); walking_tracks_complete_api = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.routename) { popup += ''+prop.routename+''; } if (prop.routename) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { //Create IF statement to use as a filter for each marker if ( feature.properties.routeshareduse != 'Yes' && feature.properties.routeservicestatus == 'Open' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.routeservicestatus != 'Open' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.routeservicestatus == 'Open' && feature.properties.routeshareduse == 'Yes' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; }, // set style style: function(feature) { if ( feature.properties.routeshareduse != 'Yes' && feature.properties.routeservicestatus == 'Open' ){ return { color: '#9b0090', fillColor: '#9b0090', weight: 7, opacity: 0.8, fillOpacity: 0.6, dashArray: 0, smoothFactor: 1, } }; if ( feature.properties.routeservicestatus != 'Open' ){ return { color: '#000000', fillColor: '#000000', weight: 7, opacity: 0.8, fillOpacity: 0.6, dashArray: [1,8], smoothFactor: 1, } }; if ( feature.properties.routeservicestatus == 'Open' && feature.properties.routeshareduse == 'Yes' ){ return { color: '#f58026', fillColor: '#f58026', weight: 7, opacity: 0.8, fillOpacity: 0.6, dashArray: [1,8], smoothFactor: 1, } }; }, //with Filters //LOOP filter: function(feature){ if ( feature.properties.routehierarchy == 'Primary' && feature.properties.routetraffic == 'Walk' ){ return true } else { return false } }, //END WITH //With attribution (layer) attribution: 'Data: Christchurch City Council' //end WITH }); layerGroup['Walking tracks'].addLayer(walking_tracks_complete_api); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_165']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); connecting_track_api = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.routehierarchy) { popup += ''+prop.routehierarchy+''; } if (prop.routehierarchy) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { //Create IF statement to use as a filter for each marker if ( feature.properties.routeservicestatus == 'Open' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.routeservicestatus != 'Open' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; }, // set style style: function(feature) { if ( feature.properties.routeservicestatus == 'Open' ){ return { color: '#007dba', fillColor: '#007dba', weight: 7, opacity: .8, fillOpacity: .8, dashArray: [1,8], smoothFactor: 1, } }; if ( feature.properties.routeservicestatus != 'Open' ){ return { color: '#e42020', fillColor: '#e42020', weight: 7, opacity: .8, fillOpacity: .8, dashArray: 0, smoothFactor: 1, } }; }, //with Filters //LOOP filter: function(feature){ if ( feature.properties.routehierarchy == 'Connector' || feature.properties.routehierarchy == 'Secondary' ){ return true } else { return false } }, //END WITH //With attribution (layer) attribution: 'Data: Christchurch City Council' //end WITH }); layerGroup['Walking tracks'].addLayer(connecting_track_api); boundsSet = true; boundsFromLayer = layerGroup['Walking tracks'].getBounds(); map.fitBounds(layerGroup['Walking tracks'].getBounds()); layerGroup['Accessible walking tracks'] = L.featureGroup(); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_199']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); walking_tracks_accessible_tracks = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.title) { popup += ''+prop.title+''; } if (prop.title) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: '', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }, // set style style: function(feature) { return { color: '#9b0090', fillColor: '#9b0090', weight: 5, opacity: 1, fillOpacity: 1, smoothFactor: 1, } }, //with Filters //LOOP filter: function(feature){ //CTOC FUNCTIONALITY if (typeof generateLayers != 'undefined' && typeof generateLayers == 'function') { if (feature.geometry.type == "Point" ){ if (closeEnoughToShow([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], route) === true){ return true; }; }; return false; }; return true }, //END WITH //With attribution (layer) //end WITH }); layerGroup['Accessible walking tracks'].addLayer(walking_tracks_accessible_tracks); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_200']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); walking_tracks_accessible_tracks_points_of_interest = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.pointcateg) { popup += ''+prop.pointcateg+''; } if (prop.pointcateg) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { //Create IF statement to use as a filter for each marker if ( feature.properties.posneg == 'good' && feature.properties.pointcateg != 'Parking' && feature.properties.pointcateg != 'Entry/Exit' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/Newbrand-pointer-85x130.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.posneg == 'bad' && feature.properties.pointcateg != 'Entry/Exit' && feature.properties.pointcateg != 'Parking' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/New-brand-colours/Punt-Tahi-pointer-85x125.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.pointcateg == 'Parking' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/Parking-blue-pointer-85x125.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; //Create IF statement to use as a filter for each marker if ( feature.properties.pointcateg == 'Entry/Exit' ){ return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/New-brand-colours/Pukeko-Tahi-pointer-85x125.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }; }, // set style style: function(feature) { if ( feature.properties.posneg == 'good' && feature.properties.pointcateg != 'Parking' && feature.properties.pointcateg != 'Entry/Exit' ){ return { smoothFactor: 1, } }; if ( feature.properties.posneg == 'bad' && feature.properties.pointcateg != 'Entry/Exit' && feature.properties.pointcateg != 'Parking' ){ return { smoothFactor: 1, } }; if ( feature.properties.pointcateg == 'Parking' ){ return { smoothFactor: 1, } }; if ( feature.properties.pointcateg == 'Entry/Exit' ){ return { smoothFactor: 1, } }; }, //with Filters //LOOP filter: function(feature){ if ( feature.properties.pointcateg != 'Crossroads' && feature.properties.pointcateg != 'Signage' ){ return true } else { return false } }, //END WITH //With attribution (layer) //end WITH }); layerGroup['Accessible walking tracks'].addLayer(walking_tracks_accessible_tracks_points_of_interest); layerGroup['Parking'] = L.featureGroup(); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_26']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); recreationalparking = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.rpt_RecreationalParkingClassification) { popup += ''+prop.rpt_RecreationalParkingClassification+''; } if (prop.rpt_RecreationalParkingClassification) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/Parking-blue-pointer-85x125.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }, // set style style: function(feature) { return { smoothFactor: 1, } }, //with Filters //LOOP filter: function(feature){ if ( feature.properties.rpt_RecreationalParkingServiceStatus == 'Open' ){ return true } else { return false } }, //END WITH //With attribution (layer) attribution: 'Data: Christchurch City Council' //end WITH }); layerGroup['Parking'].addLayer(recreationalparking); layerGroup['Bus stops'] = L.featureGroup(); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_96']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); walking_tracks_closest_bus_stop = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.Address) { popup += ''+prop.Address+''; } if (prop.Address) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/bus-pointer3.fw.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }, // set style style: function(feature) { return { color: '#555555', fillColor: '#555555', weight: .7, opacity: .7, fillOpacity: .7, smoothFactor: 1, } }, //with Filters //LOOP filter: function(feature){ //CTOC FUNCTIONALITY if (typeof generateLayers != 'undefined' && typeof generateLayers == 'function') { if (feature.geometry.type == "Point" ){ if (closeEnoughToShow([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], route) === true){ return true; }; }; return false; }; return true }, //END WITH //With attribution (layer) attribution: 'Data: Christchurch City Council' //end WITH }); layerGroup['Bus stops'].addLayer(walking_tracks_closest_bus_stop); layerGroup['Toilets'] = L.featureGroup(); //Loop all datasets in layer //First dataset creates var layerData = datasets['dataset_114']; // Layer title, using all combined data included in layer var showProp = function (properties, name) { return (properties.hasOwnProperty(name)) ? properties[name] : '[' + name + ']'; } layerData.features.forEach(element => { jQuery.each(element.properties, function(i, val) { if(val && (typeof val) == 'string'){ element.properties[i] = val.toString().replace(/'/g, "'"); } }); }); smartcities_public_toilets = L.geoJson(layerData, { onEachFeature: function(feature, layer){ // Shorten locale.feature.properties to just `prop` so we're not // writing this long form over and over again. var prop = layer.feature.properties; feature.layer = layer; //required for search indexing // with var popup = ''; var medPopup = ''; var lgePopup = ''; var lgeContent = false; // Set popups for markers if (prop.Name) { popup += ''+prop.Name+''; } if (prop.Name) { medPopup = ''; //Max width for popup size maxWidth = popupConfig.maxWidth; //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setContent(popup) } else { popupWrapper = new L.popup({offset: [0, 0], maxWidth: popupConfig.maxWidth}) .setContent(popup) } layer.bindPopup(popupWrapper); var popupWrapper; // Marker interaction layer.off('click').on('click', function(e) { //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); //Hack to stop popup redrawing and resizing on second click if ( $(layer.getPopup()._wrapper).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); layer.on('mouseover', function(e) { if ($('.popupClicked').length == 0) { //open popup if no expanded popups are open; //layer.openPopup(); //create custom popup if (layer.feature.geometry.type == "Point") { popupWrapper = new L.popup({offset: [-4, -43], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } else { popupWrapper = new L.popup({offset: [0, 5], maxWidth: popupConfig.maxWidth}) .setLatLng(e.latlng) .setContent(popup) .openOn(map); } layer.bindPopup(popupWrapper); }; //make popup interactive $(layer.getPopup()._wrapper).off('click.layerClick').on('click.layerClick', function(e) { //Hack to stop popup redrawing and resizing on second click if ( $(this).parent().hasClass('popupClicked') == false ) { detailPopup(e, popup, medPopup, lgePopup, lgeContent, layer); //final param is unique property ID } }); }); layer.bindPopup(popupWrapper); }, // with // LOOP pointToLayer: function (feature, latlng) { return L.marker(latlng, { icon: L.icon({ iconUrl: '/assets/maps/markers/Toilet-marker2.png', //Marker filepath iconSize: defaultSize, // size of the icon iconAnchor: defaultIconAnchor, // point of the icon which will correspond to marker's location popupAnchor: defaultPopupAnchor // point from which the popup should open relative to the iconAnchor }), riseOnHover: true }); }, // set style style: function(feature) { return { smoothFactor: 1, } }, //with Filters //LOOP filter: function(feature){ //CTOC FUNCTIONALITY if (typeof generateLayers != 'undefined' && typeof generateLayers == 'function') { if (feature.geometry.type == "Point" ){ if (closeEnoughToShow([feature.geometry.coordinates[1], feature.geometry.coordinates[0]], route) === true){ return true; }; }; return false; }; return true }, //END WITH //With attribution (layer) attribution: 'Data: Christchurch City Council' //end WITH }); layerGroup['Toilets'].addLayer(smartcities_public_toilets);

Walking tracks


Shared use


Connecting tracks


Closed


Parking square 100x100

Parking


bus

Bus stop


Toilets

Toilets


 
Accessible tracks


Punt Tahi pointer 85x125

Challenging feature


Pukeko Tahi pointer 85x125

Entry and exit point


Avon River Rua pointer 85x125

Point of interest