IPDP

Plataforma de trabajo
Title
Red vial primaria integrada (ejes viales, vías de acceso controlado y avenidas)
Abstract

La red vial actual es una superposición de calles implementadas progresivamente en el tiempo y, por lo tanto, con criterios diferentes entre sí. La zona central de la Ciudad tiene muchas avenidas planeadas antes de la lotificación de las colonias. Sin embargo, en áreas más periféricas el crecimiento urbano se adelantó a la planeación de movilidad, dejando espacios viales estrechos, generalmente constituidos por los caminos antiguos y calzadas entre pueblos y barrios. Los ejes viales están ...

Date de publicación
Keywords
LE 05 Movilidad Sustentable y Accesibilidad Urbana
Category
Transporte
significa y ayudas para transportar personas y / o mercancías. Ejemplos: carreteras, aeropuertos / pistas de aterrizaje, vías marítimas, túneles, cartas náuticas, vehículo o embarcación ubicación, cartas aeronáuticas, ferrocarriles
Catalogado por
Claudia Casillas
More info
-
Language
English
Supplemental Information

No information provided

Comments (0 total)

Log in to add a comment

Average Rating

(0)
/** @global * Flag variable to control drill functionality. * Such feature is in infoDrill.js file */ var isDrillActive = false; /** * Transform json data into CSV string * @param {Object} jsonData - The JSON data, with key-value pairs * @return {string} The CSV representation. */ function convertToCSV(jsonData) { var csvData = []; csvData.push('Atributo,Valor'); for (var key in jsonData.properties) { var value = jsonData.properties[key]; if (value === null) { value = ''; } else { value = value.toString().replace(/"/g, '""'); } csvData.push('"' + key + '","' + value + '"'); } return csvData.join('\n'); } L.TileLayer.BetterWMST = L.TimeDimension.Layer.WMS.extend({ defaultWmsParams: { service: 'WMS', request: 'GetMap', // @option layers: String = '' // **(required)** Comma-separated list of WMS layers to show. layers: '', // @option styles: String = '' // Comma-separated list of WMS styles. styles: '', // @option format: String = 'image/jpeg' // WMS image format (use `'image/png'` for layers with transparency). format: 'image/jpeg', // @option transparent: Boolean = false // If `true`, the WMS service will return images with transparency. transparent: false, // @option version: String = '1.1.1' // Version of the WMS service to use version: '1.1.1' }, options: { // @option crs: CRS = null // Coordinate Reference System to use for the WMS requests, defaults to // map CRS. Don't change this if you're not sure what it means. crs: null, // @option uppercase: Boolean = false // If `true`, WMS request parameter keys will be uppercase. uppercase: false, detectRetina: false, control: null }, initialize: function(layer, options) { L.TimeDimension.Layer.WMS.prototype.initialize.call(this, layer, options); this._url = options.url; const wmsParams = L.Util.extend({}, this.defaultWmsParams); // all keys that are not TileLayer options go to WMS params for (const i in options) { if (!(i in this.options)) { wmsParams[i] = options[i]; } } options = L.Util.setOptions(this, options); const realRetina = 1; const tileSize = this.getTileSize(); wmsParams.width = tileSize.x * realRetina; wmsParams.height = tileSize.y * realRetina; wmsParams.layers = options.layers this.wmsTime = [] this.wmsParams = wmsParams; this.timeLayerControl = L.control.timeDimension(this.options.mapt,{ position: "topright", autoPlay: false, timeSlider: false, loopButton: true, playerOptions: { transitionTime: 125, loop: true, } }); }, getTileSize: function() { const s = 256; return s instanceof L.Point ? s : new L.Point(s, s); }, onAdd: function (map) { console.log("onAdd log", this) L.TimeDimension.Layer.WMS.prototype.onAdd.call(this, map); map.on('click', this.getFeatureInfo, this); // map.addControl(this.timeLayerControl) }, onRemove: function (map) { // Triggered when the layer is removed from a map. // Unregister a click listener, then do all the upstream WMS things L.TimeDimension.Layer.WMS.prototype.onRemove.call(this, map); map.off('click', this.getFeatureInfo, this); // map.removeControl(this.timeLayerControl) this.timeLayerControl = null }, _showLayer: function(layer, time) { if (this._currentLayer && this._currentLayer !== layer) { this._currentLayer.hide(); } layer.show(); if (this._currentLayer && this._currentLayer === layer) { return; } this._currentLayer = layer; this._currentTime = time; console.log('Show layer ' + layer.wmsParams.layers + ' with time: ' + new Date(time).toISOString()); }, _update: function(){ L.TimeDimension.Layer.WMS.prototype._update.call(this); }, getFeatureInfo: function (evt) { // Make an AJAX request to the server and hope for the best if (isDrillActive) { return null } var url = this.getFeatureInfoUrl(evt.latlng), showResults = L.Util.bind(this.showGetFeatureInfo, this); var layername = this.wmsParams.layers; showResults(evt.latlng, layername, url); }, getFeatureInfoUrl: function (latlng) { // Construct a GetFeatureInfo request URL given a point console.log("url",this.wmsParams.format) var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()), size = this._map.getSize(), params = { request: 'GetFeatureInfo', service: 'WMS', srs: 'EPSG:4326', styles: this.wmsParams.styles, transparent: this.wmsParams.transparent, version: this.wmsParams.version, format: this.wmsParams.format, bbox: this._map.getBounds().toBBoxString(), height: size.y, width: size.x, layers: this.wmsParams.layers, query_layers: this.wmsParams.layers, info_format: 'application/json', time : 'P1000Y/PRESENT' }; params[params.version === '1.3.0' ? 'i' : 'x'] = Math.round(point.x); params[params.version === '1.3.0' ? 'j' : 'y'] = Math.round(point.y); // Possible FIXME: Let backend to determine origin url = this._url + L.Util.getParamString(params, this._url, true); console.log("Formed url: "+url) return url }, showGetFeatureInfo: function (latlng, layername, url) { var pcontent = ""; var e = this; $.ajax({ url: '/interactive/get_featureinfo', type: 'POST', data: {'layername':layername, 'url': url, csrfmiddlewaretoken: 's2kx1gB1MvmBkC3I8g1wqDqgM1s4KchP' }, dataType: 'json', success: function(data) { console.warn(data); var jdata = data.properties; var desc = data.attr_desc; pcontent += '' if(!jQuery.isEmptyObject(desc)){ // if (census.getConstants()) { // $.each(jdata, function(key, value){ // if(value==null){ // value=''; // } // if(!isNaN(value)){ // if(value.toString().indexOf('.') != -1){ // var arr = value.toString().split('.'); // var trunc = arr[1].substring(0, 2); // pcontent += ''; // } else{ // pcontent += ''; // } // } else { // pcontent += ''; // } // }); // var container = $('
'); // container.on('click', 'div.click-census-analysis', function() { // if (typeof($(".layer-selected").attr('id')) != "undefined") { // var swt_id = $(".layer-selected").attr('id').slice(1); // var lay_id = $("#"+swt_id).attr('data-regid'); // if (typeof(lay_id) != "undefined") { // census.getResultsCensus(jdata,lay_id); // } // } // }); // pcontent += '
'; // pcontent += '
AtributoValor
'+desc[key]+''+arr[0]+'.'+trunc+'
'+desc[key]+''+value+'
'+desc[key]+''+value+'
Analisis para el objeto seleccionado
'; // container.html(pcontent); // L.popup() // .setLatLng(latlng) // .setContent(container[0], customOptions) // .openOn(e._map); // }else{ $.each(jdata, function(key, value){ if(value==null){ value=''; } if(!isNaN(value)){ if(value.toString().indexOf('.') != -1){ var arr = value.toString().split('.'); var trunc = arr[1].substring(0, 2); pcontent += ''+desc[key]+''+arr[0]+'.'+trunc+''; } else{ pcontent += ''+desc[key]+''+value+''; } } else { pcontent += ''+desc[key]+''+value+''; } }); pcontent += '' // Add the download button to the popup content var csvData = convertToCSV(data); var downloadButton = 'Download CSV'; pcontent += downloadButton; L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); // } } else{ $.each(jdata, function(key, value){ //pcontent += '
'+key+' = '+value+'
'; pcontent += ''+key+''+value+''; }); pcontent += '' L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); } }, error: function() { console.log('There is an error in the response'); } }); } }); L.tileLayer.betterWmsTime = function (url, options) { return new L.TileLayer.BetterWMST(url, options); }; // BETTERWMS CON MEJORAS DE BUSQUEDA // function addLayerSearch(currentHref, typename){ // var url = currentHref.replace("wms","wfs"); // var params = { // 'service': 'wfs', // 'request': 'GetFeature', // 'version': '2.0.0', // 'typeNames': typename, // 'format': 'application/json', // 'info_format' : 'application/json', // 'outputFormat': 'application/json' // } // url = url + L.Util.getParamString(params, url, params.uppercase); // $.ajax({ // url: url, // type: 'GET', // success: function(data){ // searchLayer = L.geoJSON(data,{pointToLayer: function(){}}).addTo(map) // searchControl = new L.Control.Search({ // layer: searchLayer, // marker: true, // propertyName:'radio', // moveToLocation: function(latlng, title, map) { // //map.fitBounds( latlng.layer.getBounds() ); // var zoom = map.getBoundsZoom(latlng.layer.getBounds()); // map.setView(latlng, zoom); // access the zoom // } // }) // } // }) // } L.TileLayer.BetterWMS = L.TileLayer.WMS.extend({ initialize(url, options) { L.TileLayer.WMS.prototype.initialize.call(this,url, options); this.wmsParams = L.Util.extend({ time : 'P1000Y/PRESENT' }, this.wmsParams); this.searchLayer = null; this.searchData = null this.searchControl = null; this.mapt = this.options.mapt this.layerGroupWms = new L.LayerGroup(); }, _getGeojsonLayer: function(){ var e = this var url = this._url.replace("wms","wfs"); let protocol = window.location.protocol; if (protocol.includes("https") && !url.includes("https")) { url = url.replace("http", "https"); } var params = { 'service': 'wfs', 'request': 'GetFeature', 'version': '2.0.0', 'typeNames': this.wmsParams.layers, 'format': 'application/json', 'info_format' : 'application/json', 'outputFormat': 'application/json' } url = url + L.Util.getParamString(params, url, params.uppercase); console.log("geojson wfs url", url); $.ajax({ url: url, type: 'GET', success: function(data){ e.searchData = data console.log("success geojson data", data); }, complete: function(){ e.searchLayer = L.geoJSON(e.searchData,{ pointToLayer: function(geoJsonPoint, latlng) { return L.marker(latlng,{ "opacity": 0 }); } }) console.log("searchLayer", e.searchLayer) e.layerGroupWms.addLayer(e.searchLayer) var layername = e.wmsParams.layers.replace("geonode:",""); e.searchControl = new L.Control.Search({ marker: false, layer: e.layerGroupWms, textPlaceholder: layername, autoType: false, position: 'topright', propertyName: e.options.attributeSearch, minLength: 0, moveToLocation: function(latlng, title, map) { console.log(latlng,title,map) map.setView(latlng, 16); // access the zoom }, filterData: function(text, records){ const frecords = {}; text = text.replace(new RegExp('[.*+?^${}()|[\]\\]','g'), '') // sanitize remove all special characters if (text === '' || !text) { console.log("No text", records); return records; } const regSearch = new RegExp(text, 'i'); for (const key in records) { if (regSearch.test(key)) { frecords[key] = records[key]; } } console.log(text,frecords); return frecords; } }).addTo(e.mapt) // Change the id of the created input (searchtext{lenght of placeholder}) $(`#searchtext${layername.length}`).attr("id", `searchtext-${layername}`); }, error: function(error) { console.error("Failure on search (geojson)", error); } }) }, _update: function(){ L.TileLayer.WMS.prototype._update.call(this); // map.addControl(this.controlSearch) }, onAdd: function (map) { // Triggered when the layer is added to a map. // Register a click listener, then do all the upstream WMS things L.TileLayer.WMS.prototype.onAdd.call(this, map); map.on('click', this.getFeatureInfo, this); // this.searchControl.addTo(map) if( this.options.attributeSearch != "" && this.options.attributeSearch.length >= 1){ this._getGeojsonLayer() this.layerGroupWms.addTo(map); } }, onRemove: function (map) { // Triggered when the layer is removed from a map. // Unregister a click listener, then do all the upstream WMS things L.TileLayer.WMS.prototype.onRemove.call(this, map); map.off('click', this.getFeatureInfo, this); if(map.hasLayer(this.layerGroupWms)){ map.removeLayer(this.layerGroupWms) map.removeControl(this.searchControl) } }, getFeatureInfo: function (evt) { console.log(evt) // Make an AJAX request to the server and hope for the best if (isDrillActive) { return null } var url = this.getFeatureInfoUrl(evt.latlng), showResults = L.Util.bind(this.showGetFeatureInfo, this); var layername = this.wmsParams.layers; showResults(evt.latlng, layername, url); }, getFeatureInfoUrl: function (latlng) { // Construct a GetFeatureInfo request URL given a point console.log("url",this.wmsParams.format) var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()), size = this._map.getSize(), params = { request: 'GetFeatureInfo', service: 'WMS', srs: 'EPSG:4326', styles: this.wmsParams.styles, transparent: this.wmsParams.transparent, version: this.wmsParams.version, format: this.wmsParams.format, bbox: this._map.getBounds().toBBoxString(), height: size.y, width: size.x, layers: this.wmsParams.layers, query_layers: this.wmsParams.layers, info_format: 'application/json', time : 'P1000Y/PRESENT' }; params[params.version === '1.3.0' ? 'i' : 'x'] = Math.round(point.x); params[params.version === '1.3.0' ? 'j' : 'y'] = Math.round(point.y); url = this._url + L.Util.getParamString(params, this._url, true); // Possible FIXME: Let backend to determine origin console.log("Formed url: "+url) return url }, showGetFeatureInfo: function (latlng, layername, url) { var pcontent = ""; var e = this; $.ajax({ url: '/interactive/get_featureinfo', type: 'POST', data: {'layername':layername, 'url': url, csrfmiddlewaretoken: 's2kx1gB1MvmBkC3I8g1wqDqgM1s4KchP' }, dataType: 'json', success: function(data) { console.log(data); var jdata = data.properties; var desc = data.attr_desc; pcontent += '' if(!jQuery.isEmptyObject(desc)){ // if (census.getConstants()) { // $.each(jdata, function(key, value){ // if(value==null){ // value=''; // } // if(!isNaN(value)){ // if(value.toString().indexOf('.') != -1){ // var arr = value.toString().split('.'); // var trunc = arr[1].substring(0, 2); // pcontent += ''; // } else{ // pcontent += ''; // } // } else { // pcontent += ''; // } // }); // var container = $('
'); // container.on('click', 'div.click-census-analysis', function() { // if (typeof($(".layer-selected").attr('id')) != "undefined") { // var swt_id = $(".layer-selected").attr('id').slice(1); // var lay_id = $("#"+swt_id).attr('data-regid'); // if (typeof(lay_id) != "undefined") { // census.getResultsCensus(jdata,lay_id); // } // } // }); // pcontent += '
'; // pcontent += '
AtributoValor
'+desc[key]+''+arr[0]+'.'+trunc+'
'+desc[key]+''+value+'
'+desc[key]+''+value+'
Analisis para el objeto seleccionado
'; // container.html(pcontent); // L.popup() // .setLatLng(latlng) // .setContent(container[0], customOptions) // .openOn(e._map); // }else{ $.each(jdata, function(key, value){ if(value==null){ value=''; } if(!isNaN(value)){ if(value.toString().indexOf('.') != -1){ var arr = value.toString().split('.'); var trunc = arr[1].substring(0, 2); pcontent += ''+desc[key]+''+arr[0]+'.'+trunc+''; } else{ pcontent += ''+desc[key]+''+value+''; } } else { pcontent += ''+desc[key]+''+value+''; } }); pcontent += '' // Add the download button to the popup content var csvData = convertToCSV(data); var downloadButton = 'Download CSV'; pcontent += downloadButton; L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); // } } else{ $.each(jdata, function(key, value){ //pcontent += '
'+key+' = '+value+'
'; pcontent += ''+key+''+value+''; }); pcontent += '' L.popup() .setLatLng(latlng) .setContent(pcontent) .openOn(e._map); } }, error: function() { console.log('There is an error in the response'); } }); } }); L.tileLayer.betterWms = function (url, options) { return new L.TileLayer.BetterWMS(url, options); };