{"id":71,"date":"2015-09-04T21:11:06","date_gmt":"2015-09-04T21:11:06","guid":{"rendered":"https:\/\/jongarrido.es\/?p=71"},"modified":"2015-09-04T21:11:06","modified_gmt":"2015-09-04T21:11:06","slug":"analisis-network-con-open-source-iiicreacion-una-aplicacion-web-de-analisis-network","status":"publish","type":"post","link":"https:\/\/jongarrido.es\/?p=71","title":{"rendered":"An\u00e1lisis network con open source (III):Creaci\u00f3n una aplicaci\u00f3n web de analisis network"},"content":{"rendered":"<p>C\u00f3mo \u00faltimo post de la serie de 3 explicaremos aqu\u00ed como servir mediante geoserver la red network generada en art\u00edculos anteriores. Deber\u00e9mos servir adem\u00e1s una layer de tipo vista para mostrar los resultados de los an\u00e1lisis de ruta.<\/p>\n<p><!--more--><\/p>\n<p>Como paso previo NECESARIO para la puesta en marcha necesitamos crear una funci\u00f3n en nuestra base de datos para el an\u00e1lisis de ruta de un punto a otro.<\/p>\n<p>Podemos utilizar esta sentencia sql: <a href=\"http:\/\/www.jongarrido.es\/wordpress\/wp-content\/uploads\/2013\/10\/fromAtoB.zip\">fromAtoB<\/a><\/p>\n<p>En primer lugar nos logeamos en nuestro servidor geoserver y a\u00f1adimos un nuevo almac\u00e9n de datos tipo PostGis Database. Introducimos los datos de la base creada en anteriores post y a continuaci\u00f3n le damos a crear nueva SQL View.<\/p>\n<p>En la sentencia SQL pondremos:<\/p>\n<blockquote><p>SELECT ST_MakeLine(route.geom) FROM (<br \/>\nSELECT geom FROM pgr_fromAtoB(&#8216;ways&#8217;, %x1%, %y1%, %x2%, %y2%<br \/>\n) ORDER BY seq) AS route<\/p><\/blockquote>\n<p>Damos al bot\u00f3n de averiguar par\u00e1metros y ponemos como valor por defecto <strong>0<\/strong> y expresi\u00f3n regular <strong>^-?[\\d.]+$<\/strong><\/p>\n<p>Presionamos en actualizar atributos, nos aparecer\u00e1 st_makeline y ponemos:<\/p>\n<p>&#8211; Tipo: LineString<\/p>\n<p>-SRID: 4326<\/p>\n<p>Guardamos la sentencia.<\/p>\n<p>En el resto de la configuraci\u00f3n de la capa debemos poner las coordenadas de la extensi\u00f3n geogr\u00e1fica de la capa. Geoserver no sabr\u00e1 calcularlas desde el encuadre nativo ni desde los datos por lo que tendremos que meterlas a mano (puedes para ello cargar la capa de ways en un visor gis cualquiera&#8230;). Importante adem\u00e1s que en la pesta\u00f1a publicaci\u00f3n seleccionemos una simbolog\u00eda de linea.<\/p>\n<p>Ya tenemos nuestro \u00abservicio de routing\u00bb. A la hora de llamar a este wms deberemos introducir en los par\u00e1metros las coordenadas de los puntos de origen y fin de la ruta. Para ello a\u00f1adiremos una propiedad viewparams a los par\u00e1metros de nuestra capa wms:<\/p>\n<p>Parametros de nuestro wms:<\/p>\n<blockquote><p>var params = {<br \/>\nLAYERS: &#8216;projectBaselayer:pgrouting&#8217;,<br \/>\nFORMAT: &#8216;image\/png&#8217;<br \/>\n};<\/p><\/blockquote>\n<p>Tomamos las coordenadas de clicks de rat\u00f3n:<\/p>\n<blockquote><p>var startCoord = event.getCoordinate();<\/p>\n<p>var finalCoord = event.getCoordinate();<\/p><\/blockquote>\n<p>Y las metemos en la propiedad viewparams:<\/p>\n<blockquote><p>\u00a0\u00a0 var viewparams = [<br \/>\n&#8216;x1:&#8217; + startCoord[0], &#8216;y1:&#8217; + startCoord[1],<br \/>\n&#8216;x2:&#8217; + finalCoord[0], &#8216;y2:&#8217; + finalCoord[1]<br \/>\n];<br \/>\nparams.viewparams = viewparams.join(&#8216;;&#8217;);<\/p><\/blockquote>\n<p>Solo nos queda crear la capa y a\u00f1adirla:<\/p>\n<blockquote><p>result = new ol.layer.Image({<br \/>\nsource: new ol.source.ImageWMS({<br \/>\nurl: &#8216;http:\/\/www.jongarrido.es:8080\/geoserver\/wms&#8217;,<br \/>\nparams: params<br \/>\n})<br \/>\n});<\/p>\n<p>map.addLayer(result);<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>Puedes ver un ejemplo en vivo <a title=\"PgRouting demo web\" href=\"http:\/\/demos.jongarrido.es\/pgrouting\">aqui<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo \u00faltimo post de la serie de 3 explicaremos aqu\u00ed como servir mediante geoserver la red network generada en art\u00edculos anteriores. Deber\u00e9mos servir adem\u00e1s una layer de tipo vista para mostrar los resultados de los an\u00e1lisis de ruta.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[17,20,21,22,23,27],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-open-street-map","tag-osm","tag-pgrouting","tag-postgis","tag-postresql","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/jongarrido.es\/index.php?rest_route=\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jongarrido.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jongarrido.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jongarrido.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jongarrido.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":0,"href":"https:\/\/jongarrido.es\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions"}],"wp:attachment":[{"href":"https:\/\/jongarrido.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jongarrido.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jongarrido.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}