Welcome to Planet OSGeo

November 23, 2020

Esta nueva funcionalidad, disponible en la versión recientemente publicada gvSIG Desktop 2.5.1, puede ser muy útil para ejecutar de forma rápida herramientas en gvSIG Desktop o localizar alguna que no sabemos exactamente dónde está.

Su funcionamiento es muy sencillo y os quedará muy claro viendo el vídeo que acompaña a este post. Una vez lanzado el buscador de herramientas, que podemos tener siempre abierto, podemos filtrar y seleccionar entre todas las herramientas disponibles en gvSIG Desktop.

¿Útil, verdad?

Para mostrar el funcionamiento he aplicado el juego de iconos «Black», al que muchos no estaréis acostumbrados, pues no es el estilo por defecto de gvSIG Desktop. Y siguiendo este ejemplo, he utilizado el buscador de herramientas para ir ejecutando diversas acciones: abrir tabla, lanzar el buscador alfanumérico, activar el botón de información,…

Otros post sobre las novedades de gvSIG Desktop 2.5.1:

by Alvaro at November 23, 2020 10:58 AM

We are pleased to announce the release of GeoServer 2.18.1 with downloads (war bin), documentation and extensions.

This release is made in conjunction with GeoTools 24.1 and GeoWebCache 1.18.1. This is a stable release recommended for production systems.

Thanks to everyone who contributed, and Alessandro Parma, Andrea Aime (GeoSolutions) for making this release.

Improvements and Fixes

This release includes a number of improvements. Notable improvements:

  • New option allow to tile cache WMS requests that align to gridsets, even if tiled=true is not present.
  • New process grouping features by attribute, and then selecting a single one out of the group, in particular, the feature with the min or max value of a given attribute. Can be used either as a rendering transformation or a stand-alone WPS process.
  • GeoFence integrated UI allows to configure security rules by IP address ranges.

Fixes included in this release:

  • Better WPS packaging, including the required CSV libraries.
  • Better support for WMS XML post requests in workspace local services.
  • Addressed incompatibility with macOS 11 preventing startup

For more information check the 2.18.1 release notes.

Community Updates

For developers building from source, our community modules are a great place to collaborate on functionality and improvements.

  • The “feature template” module has received assorted improvements

About GeoServer 2.17

Additional information on GeoServer 2.18 series:

by Andrea Aime at November 23, 2020 12:00 AM

November 22, 2020

I'm glad to release a new update of the Semi-Automatic Classification Plugin v. 7.1.0. 
This is the first version after the first release 7.0 and includes several bug fixing for several tools, therefore I recommend to update the plugin to the latest version.

Also, a new feature allows to import the polygons in a GeoPackage vector directly to the training input calculating the spectral signature thereof.

For any comment or question, join the Facebook group about the Semi-Automatic Classification Plugin.

by Luca Congedo (noreply@blogger.com) at November 22, 2020 01:51 PM

November 20, 2020

This is a new post about the upcoming version 7 of the Semi-Automatic Classification Plugin (SCP) for QGIS.

In the new version, the Geostationary Operational Environmental Satellite-R Series (GOES-R) will be freely available for download and preprocessing from the Download products tool.

GOES are geostationary satellites developed for weather monitoring by the National Oceanic and Atmospheric Administration (NOAA) and the NASA.

GOES constellation is composed of GOES-R satellite and GOES-S satellite that monitor continuously the same area, a very large portion of Earth surface with three geographic coverage regions: Full Disk, Continental United States (CONUS), and Mesoscale. In particular, Full Disk products have hemispheric coverage of 83° local zenith angle, and images are acquired every 5-15 minutes. GOES-16 monitors from 75.2 degrees west longitude, including America, the Atlantic Ocean, and the west coast of Africa. GOES-17 monitors from 137.2 degrees west longitude, including the Pacific Ocean.

A GOES-17 image (courtesy of NOAA)

GOES images are multi band rasters acquired every 10 minutes and have a spatial resolution from 0.5km to 2km, therefore these products are very useful for monitoring extreme events and large wild fires.
GOES products are downloaded through Amazon AWS Open Data (https://registry.opendata.aws/noaa-goes/).

For any comment or question, join the Facebook group about the Semi-Automatic Classification Plugin.

by Luca Congedo (noreply@blogger.com) at November 20, 2020 08:17 PM

Lors des journées internationales gvSIG ( du 4 au 6 Novembre dernier) a été effectuée une présentation en français sur l’importance actuelle de la géomatique et des données géographiques, et sur les solutions pouvant être apportées par l’Association gvSIG concernant la gestion territoriale, au travers de la Suite gvSIG, composée d’un logiciel SIG corporatif (gvSIG Desktop), d’une plateforme intégrale pour l’intégration d’Infrastructures de Données Spatiales (gvSIG Online) et d’applications SIG mobiles (gvSIG Mobile et gvSIG MApps).

Voici le lien vers la vidéo de cette présentation !

by mateoboudon at November 20, 2020 04:23 PM

En gvSIG Desktop 2.5.1 podéis acceder al marco de topología de gvSIG Desktop, una herramienta muy importante para realizar ciertos procesos de edición cartográfica. El marco de topología se está mejorando con la inclusión de nuevas reglas topológicas, y de todo eso se habla en la grabación de esta ponencia de las Jornadas Internacionales de gvSIG.

Si aún no conoces el marco de topología de gvSIG Desktop, es hora de descubrirlo.

by Alvaro at November 20, 2020 07:50 AM

November 19, 2020

This is a guest post from Raúl Marín, a core PostGIS contributor and a former colleague of mine at Carto. Raúl is an amazing systems engineer and has been cruising through the PostGIS code base making things faster and more efficient. You can find the original of this post at his new personal tech blog. – Paul

I’m not big on creating new things, I would rather work on improving something that’s already in use and has proven its usefulness. So whenever I’m thinking about what I should do next I tend to look for projects or features that are widely used, where the balance between development and runtime costs favors a more in depth approach.

Upon reviewing the changes of the upcoming PostGIS 3.1 release, it shouldn’t come as a surprise then that most of my contributions are focused on performance. When in doubt, just make it faster.

Since CARTO, the company that pays for my lunch, uses PostGIS’ Vector Tile functions as its backend for dynamic vector maps, any improvement there will have a clear impact on the platform. This is why since the appearance of the MVT functions in PostGIS 2.4 they’ve been enhanced in each major release, and 3.1 wasn’t going to be any different.

In this occasion the main reason behind the changes wasn’t the usual me looking for trouble, but the other way around. As ST_AsMVT makes it really easy to extract information from the database and into the browser, a common pitfall is to use SELECT * to extract all available columns which might move a lot of data unnecessarily and generate extremely big tiles. The easy solution to this problem is to only select the properties needed for the visualization but it’s hard to apply it retroactively once the application is in production and already depending on the inefficient design.

So there I was, looking into why the OOM killer was stopping databases, and discovering queries using a massive amount of resources to generate tiles 50-100 times bigger than they should (the recommendation is smaller than 500 KB). And in this case, the bad design of extracting all columns from the dataset was worsened by the fact that is was being applied to a large dataset; this triggered PostgreSQL parallelism requiring extra resources to generate chunks in parallel and later merge them together. In PostGIS 3.1 I introduced several changes to improve the performance of these 2 steps: the parallel processing and the merge of intermediate results.

The changes

Without getting into too much detail, the main benefit comes from changing the vector tile .proto such that a feature can only hold one value at a time. This is what the specification says, but not what the .proto enforces, therefore the internal library was allocating memory that it never used.

There are other additional changes, such as improving how values are merged between parallel workers, so feel free to have a look at the final commit itself if you want more details.

Performance comparison

The best way to see the impact of these changes is through some examples. In both cases I am generating the same tile, in the same exact server and with the same dependencies; the only change was to replace the PostGIS library, which in 3.0 to 3.1 doesn’t require an upgrade.

In the first example the tile contains all the columns of the 287k points in it. As I’ve mentioned before, it is discouraged to do this, but it is the simplest query to generate.

And for the second example, I’m generating the same tile but now only including the minimal columns for the visualization:

We can see, both in 3.0 and 3.1, that adding only the necessary properties makes things 10 times as fast as with the full data, and also that Postgis 3.1 is 30-40% faster in both situations.

Memory usage

Aside from speed, this change also greatly reduces the amount of memory used to generate a tile.

To see it in action, we monitor the PostgreSQL process while it’s generating the tile with all the properties. In 3.0, we observe in the blue line that the memory usage increases with time until it reaches around 2.7 GB at the end of the transaction.

We now monitor the same request on a server using Postgis 3.1. In this case the server uses around a third of the memory as in 3.0 (1GB vs 2.7GB) and, instead of having a linear increase, the memory is returned back to the system as soon as possible.

To sum it all up: PostGIS 3.1 is faster and uses less memory when generating large vector tiles.

November 19, 2020 08:00 PM

We are pleased to announce the release of MapProxy 1.13.0.

The latest release is available at: https://pypi.python.org/pypi/MapProxy

To upgrade within your virtualenv:

$ pip install --upgrade --no-deps MapProxy

Updated documentation is available at: https://mapproxy.org/docs/1.13.0/

Some of the improvements

MapProxy is now able to use the latest PROJ releases via pyproj.

You can hide the source URLs in WMS exceptions with the new globals.http.hide_exception_url option.

Tile sources can contain @ characters in the path of the URL (e.g. for HiDPI tile URLs like /0/0/0@2x.png).

Other fixes and changes

There are a lot more changes and improvements, especially regarding Python 3.8 compatibility.

For a complete list of see: http://github.com/mapproxy/mapproxy/blob/1.13.0/CHANGES.txt

November 19, 2020 07:00 PM

Prezados leitores,

No mês de outubro e novembro produzi a série intitulada “Como desenvolver seu WebGIS” com o intuito de elucidar alguns pontos referentes a escolha de ferramentas (open source) para tal fim.

A série está disponível no canal do YouTube da Geocursos e foi dividida em 6 episódios:

1. Banco de dados espacial

2. Servidor de mapas

3. Backend

4. Frontend

5. Desktop GIS

6. Dados

by Fernando Quadro at November 19, 2020 03:03 PM

Ya tenéis disponible la grabación del taller «Normalización radiométrica e índices de vegetación en mapeo de incendios», que fue impartido en las pasadas Jornadas Internacionales gvSIG.

En el taller se trabaja con un método de normalización, mediante la sustracción de píxeles oscuros basado en el histograma de la imagen. Se utilizan imágenes Sentinel 2 de la Agencia Espacial Europea (ESA) con la siguiente secuencia o flujo de trabajo:

  • Preprocesamiento de las imágenes

    • Transformación a formato tif de las bandas

    • Reasignación de los valores No Data

    • Conversión a valores enteros de 16 bits

  • Procesamiento o calibración a valores de reflectancia

  • Sustracción del píxel oscuro

  • Generación de índices de vegetación.

La cartografía para poder seguir el taller puede descargarse en el siguiente enlace.

Grabación del taller:

by Alvaro at November 19, 2020 11:47 AM

Ya está disponible el programa de las 1as Jornadas Iberoamericanas GeoLIBERO. ¡Y no te las puedes perder!

Las jornadas que se celebrarán del 23 al 27 de noviembre son online, permitiendo a cualquier persona interesada acceder a cualquiera de las actividades que contempla el evento: ponencias, talleres y una interesantísima mesa redonda sobre ética y datos geográficos.

Las inscripciones son gratuitas y pueden realizarse para cada webinar desde la página web del programa del evento.

Estas Jornadas están organizadas por GeoLIBERO, una Red CYTED, formada por cerca de un centenar de investigadores, cuyo objetivo es consolidar y hacer sostenible en el tiempo una red temática de intercambio de conocimientos y de cooperación entre diferentes grupos de I+D+i de la región Iberoamericana relacionados con el ámbito de la Geomática y su aplicación a las necesidades y estudio de los problemas principales en Iberoamérica. Todo ello trabajando con software libre, impulsando la soberanía tecnológica de la región, y maximizando la transferencia tecnológica y de conocimiento.


by Mario at November 19, 2020 09:40 AM

La Suite gvSIG se utiliza en los más diversos sectores, siendo aquellos que están relacionados con la seguridad y emergencias algunos de los más relevantes por las implicaciones que tienen. Entidades como la Dirección General de Emergencias y Protección Civil de España o el Consorcio Provincial de Bomberos de Valencia utilizan gvSIG desde hace ya unos años.

Más allá de los grandes proyectos, hoy os traemos un par de ponencias muy interesantes presentadas en las pasadas Jornadas Internacionales de gvSIG y que cuentan como utilizar, de forma sencilla, la Suite gvSIG tanto para el cálculo del riesgo de inundación como para la gestión de datos e infraestructuras de prevención de incendios.

gvSIG como herramienta auxiliar para el cálculo del riesgo de inundación

Suite gvSIG para gestión de datos e infraestructuras de prevención de incendios

by Alvaro at November 19, 2020 08:21 AM

The PostGIS Team is pleased to release the third alpha of upcoming PostGIS 3.1.0 release. This version is exposes some of the new performance and feature enhancements in not yet relesed GEOS 3.9 as well as numerous speed enhancements not requiring newer GEOS. Requires GEOS 3.6+ and PostgreSQL 9.6+. To use MVT you will need protobuf-c 1.1. or higher.

Best served with

PostgreSQL 13.1, GEOS 3.7 or higher is recommended.

pgRouting 3.1.1

Continue Reading by clicking title hyperlink ..

by Regina Obe at November 19, 2020 12:00 AM

November 18, 2020

The following covers a method for visualizing a complex vector tile dataset using a static server.  This particular blog is more for beginners and reduces the technical terms as much as possible. I wouldn’t recommend this method for large complex vector tile data sets, but instead for quick one-off sites that are looking to incorporate a small number of vector tiles where the GeoJSON might be too large/complex to handle.

If you just want to skip to the map and code, visit the Github page created for this blog.

Here is the big reveal at the beginning. If you want to serve a basic vector tile locally or with a static server:

  1. Create an tile cache with uncompressed .pbf files
  2. Place that tile cache on something like GitPages, e.g. embed the tile cache directly along with your website or embed the cache on your localhost along with the other site files
  3. In Leaflet, access the tile cache using ‘L.vectorGrid.protobuf()’

If you’d like to read more in depth:

I work on a Ubuntu OS; however, the methods below will just as easily work with iOS and Windows environments. The parts for building the site, e.g. the HTML, JS, CSS and GitPages, are OS agnostic.

If you want to follow the steps outlined you will need to have installed:

  • GDAL: I am only including this since I used GDAL to extract the contours from the original elevation file.
  • OGR2OGR: Easy tool for converting your shapefile to GeoJSON.
  • Tippecanoe: Excellent tool for generating your tile caches in Web Mercator.
  • T-Rex: Necessary for building your tile cache in a custom projection like NZTM. I tried a number of methods and T-Rex seemed to work best. Sadly, as of Nov 2020, ogr2ogr cannot currently create an MVT in NZTM projection, but it can do projections where the resolutions are halved at each zoom level.
  • Leaflet: Your friendly JS library for building your map in a web environment.
  • SimpleHTTPServer: if you’d like to do localhost testing, you can run your site with this.

You will also need a Github account and a basic knowledge of building a webpage .

Here are the two stacks depending on your needs:

  • Web Mercator: GDAL, OGR2OGR, Tippecanoe, Leaflet, GitPages
  • NZTM: GDAL, OGR2OGR, PostGIS, T-Rex, Leaflet, GitPages

The basic premise is this: with your vector file, you need to construct a tile cache with uncompressed PBF files. The tile cache is the same as any XYZ tile cache you would use for raster tiles, except you are filling it with .pbf files. That tile cache will need to reside in a location accessible by your Leaflet application. In this example we are using GitPages as our server and embedding our tiles directly along with the website we built. Technically, Gitpages is acting as the server. If you are testing and serving on localhost, just embed your tile cache with your web files.

I am going to keep the code light for this blog and instead layout the steps. You can find full code examples in my Github repository here.

Building Your Own Contours

Download Elevation in NZTM

If you download the entire dataset, you can create the contour lines from the VRT. This saves a lot of time by not creating a mosaic.

Build VRT

gdalbuildvrt dem.vrt *.tif

Contour (@ 50m intervals)

gdal_contour -a elev -i 50 dem.vrt wellyDEMContour.shp

Web Mercator Tile Cache

If you are building a Web Mercator site, you can use Tippecanoe to render the tile cache. You need to create a GeoJSON of your shapefile first

Shape to GeoJSON

ogr2ogr -f GeoJSON -a_srs EPSG:2193 -t_srs EPSG:3857 wellyDEMContour.json wellyDEMContour.shp


tippecanoe --no-tile-compression --projection=EPSG:3857 --minimum-zoom=12 --maximum-zoom=16 --output-to-directory "static.vector.tiles/contoursWebmer" wellyDEMContour.json

NZTM Tile Cache

If you are building an NZTM site you will need to use T-Rex to generate the NZTM tile cache for the vector tiles. T-Rex likes best if you can give it a PostGIS table to work from. I’d also recommend simplifying complex contour data sets. Your tile generation will be much faster.

Upload to PostgreSQL (you can upload the original NZTM shapefile)

shp2pgsql -s 2193 wellyDEMContour_NZTM.shp public.contournztm | psql -h localhost -d dbName -U userName

T-Rex Config

See full config here

Note the tile size you are setting. You will need this later for your Leaflet application

width = 4096
height = 4096
extent = { minx = -1000000, miny = 3087000, maxx = 3327000, maxy = 10000000 }
srid = 2193
units = "m"
resolutions = [8960.0,4480.0,2240.0,1120.0,560.0,280.0,140.0,70.0,28.0,14.0,7.0,2.8,1.4,0.7,0.28,0.14,0.07]
origin = "TopLeft"

T-Rex Tile Cache

t_rex generate --progress true --maxzoom=12 --minzoom=9 --extent=160.6,-55.95,-171.2,-25.88 --config /static.vector.tiles/trexConfig/configpsql_contour.toml

Decompress PBF Files

find . -type f | xargs -n1 -P 1 -t -I % gzip -d -r -S .pbf %
find . -type f | xargs -n1 -P 1 -t -I % % %.pbf

Important bit for Leaflet

See the GitPages site for how to set up the Leaflet JS in NZTM

// Access the tile cache
var vector = L.vectorGrid.protobuf(vectorURL, styles);

Have fun!

by xycarto at November 18, 2020 09:32 AM

Do you use MapGuide? Do you also use SQL Server on Azure and have lamented for the longest time the inability of the SQL Server FDO provider to read/write data to a Azure-PaaS-hosted SQL Server db? 

Then boy, do I have news for you!

Thanks to some day-job dogfooding of FDO Toolbox and a test Azure account on hand I have finally tackled this 7 year old FDO ticket and landed experimental support for SQL Server on Azure PaaS.

You can download the 7zip archive of the patched provider from here.

Download, extract and overwrite the existing provider dll in your MapGuide Open Source 4.0 preview or FDO Toolbox 1.5.1 installation.

I have so far verified this provider can perform most provider operations needed for use in a MapGuide context.

The only operation I couldn't verify was whether the FDO CreateDataStore API worked for this provider in Azure PaaS due to insufficient permissions in the test account I was given. The CreateDataStore API is not used in the MapGuide context, so if this API doesn't work properly on Azure PaaS, it is not a deal breaker for use in MapGuide.

I'd be interested from anyone who tries this patched provider to let me know if this particular API works on Azure PaaS (ie. You can create a new FDO data store on Azure PaaS via FDO Toolbox with this patched provider)

Many thanks to Crispin Hoult of TrueViewVisuals (FKA LinkNode) for the original patch, which I had tweaked so the azure db detection is a runtime check instead of support you have to explicitly compile into the provider dll. If we had been using Azure PaaS earlier, the patch wouldn't have taken 7 years to finally be applied!

by Jackie Ng (noreply@blogger.com) at November 18, 2020 09:01 AM

The benefit of this project is to map flood hazard and to determine flood risk zones for early warning system in state of Khartoum, Sudan as the pilot project In order to use the same method to identify the flood hazard in other states of Sudan, using Geographic Information System gvSIG to reduce the vulnerability of people and public and private property for sustainable economic development.

In mid-July 2020 Floods have ravaged Sudan.

Climate changes are responsible for flood occurrence in Sudan which are result of high temperature , precipitation, heavy rain and seasonal variations.

At least 100 people have died and more than 110,000 homes destroyed, residents take refuge in high places, and some families were forced to take shelter and protect themselves in schools and other local building.

The Sudanese government declared a state of emergency for three months and designated the country a natural disaster zone.

GIS is powerful tool for identifying and mapping of potential flood risk zones. To determine flood risk zones for early warning.

Some researchers applied a GIS-based approach to conduct flood hazard mapping with different parameters (i.e. land use, land cover, DEM, soil, river network, and slop).

The Open Source Geographic Information System gvSIG has become a reliable alternative for many users, especially for less development countries like Sudan, where limited budgets projects cannot provide the cost of installing and maintaining the commercial software.

The present pilot project proposes technique of flood sensitivity mapping using Geographic Information system gvSIG and factors as elevation, slope , land use, flow accumulation, surface roughness, topographic wetness index and curvature of the topography were digitized and then contributed in the mapping of flood.

by Alvaro at November 18, 2020 07:46 AM

November 17, 2020

O principal objetivo deste trabalho é apresentar o desenvolvimento e a implementação da Infraestrutura de Dados Espaciais do Estado do Tocantins. Para alcançar este objetivo, foi necessário catalogar, integrar e harmonizar os dados geoespaciais existentes para que pudessem ser facilmente localizados, explorados e acessados por qualquer usuário através da Internet. O sistema é utilizado para armazenamento, visualização, análise e disponibilização (download) de dados/ informações geoespaciais e estatísticas geradas na área do Zoneamento Ecológico-Econômico do Estado do Tocantins, integrando vários repositórios de dados geográficos na interface WebGIS.

O projeto foi desenvolvido utilizando software livre, baseado no gvSIG Online, uma plataforma para a implementação de Infraestruturas de Dados Espaciais que integra componentes como o servidor de mapas GeoServer, o cliente WebGIS OpenLayers e o banco de dados espacial PostgrSQL/PostGIS.

O Sistema de Informações Geográficas do Estado do Tocantins dispõe de um conjunto de Geoportais e serviços padrão (WMS, WMTS,…) que permitem consultar todas as informações geográficas e estatísticas relacionadas com cada um dos projetos desenvolvidos para o Estado e diferentes regiões (Sudeste e Norte do Estado). Para a gestão dos metadados foi utilizado o GeoNetwork utilizando a estrutura da CONCAR com a ISO 19115.

Entre as capacidades mais destacadas do gvSIG Online está a possibilidade de gerar tantos geoportais públicos quanto privados, como forem necessários e em apenas poucos minutos, aplicação de múltiplas legendas, acesso a atributos associados as informações geográficas, impressão através de modelos pré-definidos de layouts, download de dados e ferramentas de seleção gráfica e alfanumérica. Além disso, para usuários com o papel de editor, o geoportal permite as modificações de informações (gráficas e alfanuméricas) a partir do próprio Sistema Online.

Como uma parte relevante do projeto, todas as informações geoespaciais disponíveis foram adaptadas para sua integração na SDI e seu armazenamento no banco de dados espacial. Para este fim, trabalhamos com o SIG (também software livre) gvSIG Desktop, aplicando processos de mudanças de formato, reprojecções e geoprocessamentos dos diversos dados fornecidos pela SEFAZ.

Entre os diferentes geoportais gerados nesse projeto, existe um projeto relacionado a dados estatísticos que inclui informações tais como; demografia (estimativa população, população residente por situação do domicilio, população censitária municipal e população residente por cor, raça e situação), econômicas (PIB e PIB per capita), Educação (professores, instituições, taxas de abandono, matrículas, …), lavoura permanente e temporária, pecuária e saúde (taxa de mortalidade infantil, casos confirmados de várias doenças, …). A fim de proporcionar ao sistema uma maior funcionalidade geoestatística, foi desenvolvida uma série de ferramentas que integram as capacidades dos geoportais com painéis de controle que permitem a visualização e download de diferentes tipos de gráficos (barras, círculos e linhas).

by Alvaro at November 17, 2020 12:30 PM

Two projects that have allowed to evolve the geographic information management in the Government of Uruguay are presented. Both projects are based on the gvSIG Suite technologies, a catalog of open source software solutions where gvSIG Online is included, a product aimed at the Spatial Data Infrastructures implementation.

The first of these projects is the implementation of the Uruguay Spatial Data Infrastructure, highlighting the volume of data that it is composed of and the technological improvements developed to meet the project requirements. The second one is the project for the implementation of a new Central Address System in the country, also based on gvSIG Online where a system for the maintenance of street maps by the municipalities (local administrations) has been implemented.

by Alvaro at November 17, 2020 08:40 AM

November 15, 2020

Way back in the 1980s, the Vander Zalm government privatized BC highways maintenance. They let out big contracts to private companies (fortunately this was before the era of international infrastructure firms, so they were local companies) and sold off the government road building machinery. The government employees union was naturally apoplectic and very much wanted the decision reversed. An NDP government took power at the next election, and… nothing changed.

The omlette was unscramblable. The expense and disruption of re-constituting the old highways maintenance department outweighed the cost. The machinery was all sold. The government had other fish to fry. It didn’t happen then. It hasn’t happened yet. Highways maintenance is still outsourced.

With that out of the way, here’s the latest data on BC information technology outsourcing.

The political economy of changing the trend was never good. On the side of change, was a line in the Minister of Citizens Services 2017 mandate letter:

Institute a cap on the value and the length of government IT contracts to save money, increase innovation, improve competition and help our technology sector grow.

On the side of more of the same, are:

  • Existing relationships between civil servants and service providers.
  • Contractual obligations that still have multiple years to run.
  • Fear of change, including risk of service disruptions amidst big organizational changes.
  • Comfort of stasis, just renew contracts and keep slowly growing budgets.
  • Deep lack of political sexiness of internal IT issues.
  • No one at the political level who is invested in the issue. (See previous.)

The UK IT reform experience, which is still ongoing in fits and starts, got off to a fast start because of the enthusiastic backing of the Cabinet Office Minister, Sir Francis Maude. It quickly hit the rocks after Maude retired and they lost his political cover.

Getting out from under these contracts is the right thing to do, but it’s the right thing to do in very abstract and theoretical ways:

  • We want government to be more nimble and able to react to changes in society and policy.
  • The machinery of government runs on information.
  • The closer the people who work on the information are to the people working the policy, the easier it is for them to understand and react to their needs.
  • Outsourced IT places a contractual buffer between the people who need the information services and the people who provide those services. It optimizes for the predictable and charges heavily for the novel.

There’s no easy big guaranteed win, and no press conference, and no glory. Just more reactive information services with incentives that align more closely to those of the people trying to deliver value to the people of BC. It’s technocratic, dull, worth doing, and probably not going to happen.

Anyways, back to the horse race.

The big surprise for me continues to be Maximus. Still billing strong, even with MSP premiums phased out? The MSP premium elimination date was January 1, 2020, so maybe this year will finally be the one we see a big drop in Maximus billings.

The continued growth of local companies is a positive trend. These aren’t Mom’n’Pop shops, I don’t track those, but companies with revenues north of several millions. Altogether they are still doing less business than IBM alone, but it’s a solid 10% of the total now.

It’s possible I’m being overly pessimistic. The biggest components of the IT outsourcing budget are the Telus and ESIT contracts, both of which end in 2021. But the easy thing is to just renew and move on, and in a world of Covid and recessions and many other issues much nearer to the daily lives of citizens I would not be surprised to see this issue languish.

November 15, 2020 07:00 AM

November 14, 2020

I've stated many times in this long and arduous MapGuide Open Source 4.0 development cycle that the final hurdle that must be cleared before 4.0 could ever be considered final is when we can finally generate language bindings for .net, Java and PHP with a vanilla and un-modified version of SWIG.

The reasons for needing to do this were already explained in my previous introductory post to these new bindings, but to re-iterate the cliff notes version:

  • We need to support and bundle PHP 7. This is non-negotiable. The current bundled PHP 5.6 is too old and long past EOL and it is a bad look to have to bundle this version of PHP for a production MapGuide deployment/installation.
  • The latest release of SWIG can generate bindings for PHP 7
  • The cross-platform .net core has grown in leaps and bounds over traditional windows-only .net Framework in terms of adoption. The just released .net 5.0 is a sign that the current windows-only .net Framework is dead/legacy and the future of .net is a cross-platform one.
  • As a result, if we're going to be supporting .net in MapGuide, we should be generating a .net binding that can work in both Windows and Linux.
  • And if we need to do that, we might as well do it with the latest release of SWIG
  • And if 2/3 languages require vanilla SWIG, we might as well go for the trifecta and generate our Java binding with it as well!

As this final hurdle involves many steps, I figure this journey is worth documenting with its own mini dev diary series.

So what has changed since the initial announcement of these experimental bindings?

Firstly, I have decided to bring the current binding work into the official MapGuide source in a new vanilla_swig sandbox branch. All development work will continue in this branch. The previous GitHub repo housing this work will no longer be maintained and I will eventually archive/delete this repo. Going from Git back to SVN might sound like a downgrade (technically yes), but my developer "inner loop" has sped up a lot by having everything in the same repo and not having to coordinate files/changes across 2 different repos in 2 different locations. Maybe one day we'll permanently migrate the MapGuide source on GitHub, but today is not that day.

Secondly, before I tackle the PHP 7 support, I wanted to see whether the .net/Java bindings were still functional and what other final improvements we can make before all attention is fully diverted to the PHP 7 binding.

For Java, after some minor fix ups, the binding and its test suite were still A-OK. So onto the .net binding.

When I introduced these new experimental bindings, the .net one was back to a single monolithic assembly (MapGuideDotNetApi). I wasn't fully comfortable with the monolithic assembly as it would hamper any attempts to write code that could work in both MapGuide and mg-desktop. The mg-desktop .net support was hanging off of the currently Foundation/Geometry/PlatformBase split assemblies. Having our new .net binding go back to a monolithic assembly would hamper our ability to write such shared code, so if it was possible we should try to replicate the Foundation/Geometry/PlatformBase/MapGuideCommon/Web split layout in the new .net binding.

Using the current .net binding as a point of reference, splitting the monolithic MapGuideDotNetApi assembly back to the 5 constituent parts was a relatively simple affair. Thanks to the dramatically simplified csproj format we now have 5 hand-crafted C# projects targeting netstandard2.0 that reference each other and that SWIG dumps all its generated C# source into (without having to add each .cs file into the project itself) for easy compilation that automatically publishes out to respective nuget packages like so.

And because our 5 projects reference each other, those dependencies are also expressed in the nuget packages themselves. That is to say, if you install the MapGuideCommon package, it will automatically install the PlatformBase, Geometry and Foundation packages as well as they were defined as project dependencies of the MapGuideCommon C# project file.

And the final cherry on top? These nuget packages are still self-contained and bundle the native dlls that the .net binding is wrapping. The current nuget packages are already self-contained, but they are only consumable in legacy .net Framework, are windows-only and require kludgy powershell hacks to make sure all the native dlls are copied out to the project's output directory. Our new nuget packages take advantage of the fact that native libraries are now first class citizens in the .net core packaging world.

By adding such dlls to the runtimes/win-x64/native folder of a C# project, they will automatically be bundled into any nuget package created and the .net core project system knows to automatically copy these dlls out to the right location where the .net assembly can P/invoke them. 

Now for a multi-platform .net binding to work, we have to get SWIG to generate the same C++ glue code, but this time to be compiled on Linux but with the same library names so our SWIG-generated C# code will correctly P/Invoke into the respective Windows .dll or Linux .so, and pack those compiled .so files into the runtimes/linux-x64/native folder of our 5 C# projects.for automatic bundling into our nuget package.

How we are able to do this will be the topic of a future post once I've figured it all out.

by Jackie Ng (noreply@blogger.com) at November 14, 2020 04:54 PM

November 13, 2020

A few months ago the battery of my smartphone, a regular Huawei P10 Lite, started acting abnormally. Not only battery life had become very short, but some activities like trying to take a photograph would make the phone shutdown immediately. The phone is now 3 years old and I was not happy about buying a new one just because the battery is damaged. Still, I was almost ready to buy a Fairphone 3+ when I decided I could try replacing the battery. After all, I have some experience with hardware repair!

The iFixit guide is very detailed and, most importantly, you can buy the replacement battery and all repair tools for 25 euro. It’s worth trying!

As many commenters point out, the most time consuming part is removing the battery after all other parts have been moved, since there’s a lot of glue. It took me more than one hour and despite my best efforts it came out slightly bended. I didn’t break it though, which seems more important. The iOpener is quite effective however, as are the other tools.

Putting back enough adhesive to keep everything together is also a long operation, because you will need to cut small pieces of the right length and width. The tools work well even for this part of the repair.

At the end I was not even sure the phone would turn on, but it did, and what a satisfaction. I only had to throw away the old battery (at the correct collection place) and the “old” phone is almost like new. The battery now lasts for 36 hours or more, and I can hope to keep it running for a few more years.

I could have asked a repair shop, but even though it’s a pure hardware repair, I was not comfortable leaving my personal phone to someone else. And it would have been more expensive, of course.

I wanted to write this short post to let everyone know that repairing your phone is possible, thanks to great communities like iFixit, and you should avoid throwing away a literal goldmine just because it’s slightly damaged.

The crucial moment before putting the new battery in place
Here you can see the old battery that came out slightly bent
I put back lots of adhesive myself – at least I hope so
The new battery is in place and the back lid is about to be closed

by Stefano Costa at November 13, 2020 10:32 PM

Una de las novedades más llamativas de gvSIG Desktop 2.5.1 son las denominadas fichas de búsqueda o herramienta de búsqueda avanzada. En las pasadas Jornadas Internacionales de gvSIG se presentó un caso de uso de las fichas de búsqueda cuya grabación tenéis aquí mismo y que os servirá para entender todo el potencial de esta nueva herramienta.

Seguid leyendo, porque lo que viene es una breve descripción de una herramienta de consulta mucho más potente de lo que podrías imaginar…

La herramienta de búsqueda avanzada la podremos aplicar a cualquier tabla de nuestro proyecto, tanto para ficheros como para bases de datos. Lo más interesante es que está ficha de búsqueda es fácilmente personalizable y adaptable a nuestras necesidades de consulta (en el vídeo hay ejemplos muy claros de cómo realizar estas adaptaciones con unos pocos clics).

Por un lado, podremos utilizar una búsqueda simplificada, que nos permitirá seleccionar los campos por los que queremos realizar la búsqueda y que nos puede llegar a permitir el seleccionar, para nuestras búsquedas, campos de otras tablas a través de claves ajenas (ejemplos en el vídeo).

Mediante la búsqueda simplificada se pueden configurar búsquedas mediante operadores entre campos, definir el comportamiento de las búsquedas ante valores nulos, trabajar con valores en diccionarios, etc. (de nuevo, ejemplos de todo esto en el vídeo).

Por otro lado podemos utilizar la búsqueda avanzada que permite generar expresiones de búsqueda más elaboradas. Y ya os contamos que en gvSIG Desktop 2.5.1 la capacidad de generar expresiones tiene un potencial enorme.

A estas se suman otras herramientas como la búsqueda personalizada, la acumulación de filtros, histórico de búsquedas, búsquedas favoritas, uso de etiquetas y/o nombres, etc.

La herramienta de búsqueda es de esas novedades que por si solas contiene decenas y decenas de mejoras, y que amplían considerablemente el potencial de gvSIG Desktop.

Todo esto no es más que una pincelada del potencial de la herramienta, así que lo mejor es que veáis el vídeo e inmediatamente después os descarguéis gvSIG Desktop 2.5.1 (¡si aún no lo habéis hecho!) y os pongáis a probarla.

by Alvaro at November 13, 2020 05:26 PM

November 12, 2020

Cullera es uno de los municipios turísticos más conocidos de la Comunidad Valenciana, con una población de 22.000 habitantes que se multiplica por cinco en época estival. Estas características hacen que la gestión de la información con dimensión geográfica abarque numerosas áreas, desde las más frecuentes, como urbanismo y medio ambiente, a la de turismo. Dentro de un proceso de digitalización y apuesta por las nuevas tecnologías para optimizar la gestión y el servicio público a los ciudadanos, se planteó la puesta en marcha de una Infraestructura de Datos Espaciales. La tecnología seleccionada fue gvSIG Online, la solución en software libre de la Suite gvSIG para implantación de IDEs y generación de geoportales.

Os traemos una presentación sobre el proyecto que se impartió en las pasadas Jornadas Internacionales de gvSIG, cuya grabación está disponible y recomendado visualizar a cualquier gestor municipal. Es un ejemplo por muchos motivos, entre otros el convertir la IDE en una herramienta transversal que implica los distintos departamentos municipales. También por como gracias a gvSIG Online, solventaron en cuestión de horas el disponer de un geoportal informativo del aforo de playas, necesidad derivada de la situación que el COVID ha generado en relación al distanciamiento social.

Lo dicho, no os la perdáis, un ejemplo que seguro servirá a otras administraciones locales a sumarse a las cada vez más numerosas entidades que apuestan por gvSIG Online, para todo tipo de temáticas y en las más diversas geografías (aquí podéis contactarnos: info@gvsig.com):

by Alvaro at November 12, 2020 11:01 AM

November 11, 2020

In the recently published gvSIG Desktop 2.5.1, you can find a great number of novelties related directly or indirectly to editing tools, which, added to the existing tools, allow us to affirm that gvSIG is one of the most advanced applications for carrying out cartographic editing.

Here you can see the list of novelties related to editing tools:

Layer display

Options in the View menu and in the ToC context menu have been added to be able to send a layer to front or back quickly.

Select by rectangle

Possibility to select intersecting elements or contained elements, using “Shift” key.

Simple selection

Possibility to choose which elements we want to select from a list when several elements are selected with the simple selection tool at the same time (very useful when we have several geometries at the same coordinates).

Angle query

New tool that allows to measure the angle between two segments from both line and polygon layer.

Expression manager

About it you will find a post in the next days because it involves a lot of improvements by itself.

Alphanumeric data copy

Possibility to copy alphanumeric data from one geometry, and paste them into another one (including data from another table).

Geometries copy

Possibility to copy geometries on an insertion point, copying alphanumeric data too.

Point insertion

Possibility to use the points saved with the coordinate capture tool in the editing tools has been added.

Possibility to insert formulas when inserting points. It allows to insert points with relative coordinates, use saved points with the coordinate capture tool or work with polar coordinates.


New functionalities in the ‘insert circle’ tool have been added, from two tangent lines and a point, and from the tangents to two geometries and their radius


New functionalities in the ‘insert circumference’ tools have been added, from two tangent lines and a point, and from the tangents to two geometries and their radius


Possibility to insert arcs from the center and start and end points, and from three points (start, middle and end). Optional parameters have been added: radius, starting angle, sweep angle, and direction (CW and CCW).


Possibility to add ellipses from the center and the axies has been added.

Filled ellipse

Possibility to add filled ellipses from the center and the axies has been added.


Possibility to apply snapping to objects on active layers, not only on layers that we have indicated in the properties of the View.

Parallel geometry

Possibility to enter the distance value graphically by measuring on the View, to select the side on which we want to make the parallel geometry graphically when the distance has been entered by value and multiple parallel (several parallels at the same distance) has been added.

At the latest International gvSIG Conference there was a presentation where these novelties about advanced editing tools were shown:

by Mario at November 11, 2020 04:59 PM

En la recientemente publicada gvSIG Desktop 2.5.1, podéis encontrar un buen número de novedades relacionadas directa o indirectamente con la edición, que sumadas a las herramientas ya existentes, permiten afirmar que gvSIG es una de las aplicaciones más avanzadas para realizar edición cartográfica.

Vamos con el listado de novedades relacionadas con edición:

Visualización de capas

Se han añadido opciones en el menús Vista y en el menú contextual del ToC para poder cambiar el orden de las capas de forma rápida.

Selección por rectángulo

Se añade la posibilidad de seleccionar elementos que intersecten o elementos contenidos, utilizando la tecla de «mayúsculas».

Selección simple

Se añade la posibilidad de elegir qué elementos queremos seleccionar de un listado, en el caso de que se seleccionen varios elementos a la vez al utilizar la herramienta de selección simple (muy útil cuando hay varias geometrías en las mismas coordenadas).

Consulta de ángulos

Nueva herramienta que permite medir el ángulo entre dos segmentos, tanto en capas de líneas como de polígonos.

Gestor de expresiones

Sobre esto tenéis un post aparte, ya que conlleva muchas mejoras por si mismo.

Copia de datos alfanuméricos

Posibilidad de copiar los datos alfanuméricos de una geometría y pegarlos en otra, incluso entre tablas/capas distintas.

Copia de geometrías

Se añade la posibilidad de copiar las geometrías a partir de un punto de inserción, copiando también los datos alfanuméricos.

Inserción de puntos

Se añade la posibilidad de utilizar los puntos guardados con el capturador de coordenadas en las herramientas de edición.

Posibilidad de utilizar expresiones para la inserción de puntos, lo que permite insertar puntos por coordenadas relativas, utilizar en las expresiones puntos guardados con el capturador de coordenadas y trabajar con coordenadas polares.


Se ha añadido la posibilidad de insertar círculos a partir de dos tangentes y un punto, y a partir de las tangentes a dos geometrías y su radio.


Se ha añadido la posibilidad de insertar circunferencias a partir de dos tangentes y un punto, y a partir de las tangentes a dos geometrías y su radio


Se ha añadido la posibilidad de insertar arcos bien a partir del centro y los puntos de inicio y final, bien a partir de tres puntos (inicial, medio y final). Se han incorporado parámetros opcionales: radio, ángulo inicial, ángulo de barrido y dirección.


Se ha añadido la posibilidad de dibujar elipses a partir del centro y los ejes.

Elipse rellena

Se ha añadido la posibilidad de dibujar elipses rellenas a partir del centro y los ejes.

Referencia a objetos (Snapping)

Se ha añadido la posibilidad de hacer referencia a objetos sobre capas activas, no solo sobre capas que tengamos indicadas en las propiedades de la Vista.

Geometría paralela

Se ha añadido la posibilidad de introducir el valor de la distancia gráficamente mediante la medición sobre la Vista, la posibilidad de seleccionar gráficamente el lado en el que se quiere hacer la geometría paralela cuando la distancia se ha introducido por valor y la posibilidad de realizar paralelas múltiples.

En las pasadas Jornadas Internacionales de gvSIG se realizó una ponencia con demostración del funcionamiento de estas herramientas y cuya grabación ya está disponible:

by Alvaro at November 11, 2020 12:41 PM

November 10, 2020

From Esri Geodatabases to PostGIS and GeoServer

Dear Reader,

We are excited to invite you to a new GeoSolutions free webinar "From Esri Geodatabase to PostGIS and GeoServer, tips and tricks" to be held on December 3rd at 11:00 AM ET. The Webinar will cover tips and tricks to export Esri Geodatabases to PostGIS and serving them via GeoServer.

The Esri Geodatabase is the native structure of how Esri's products are store and share among and Esri's based infrastructure. Making a Geodatabase available to GeoServer so it can be access through WFS, without loosing any data, can be a little bit tricky. There are sophisticate tools that can help move the data from Esri sources to PostGIS. For example, FME, is such a tool that provides the ability to  extract transform and load (ETL) data from one system to another. At GeoSolutions, we try to embrace and use open source solutions as much as possible in conjunction with open standards. The approach we usually follow consists of custom Python scripts using the QGIS Graphical Modeler to guide the process.

[caption id="" align="aligncenter" width="709"] Process to publish Geodatabase data to GeoServer[/caption]

The process starts by exporting the Geodatabase to GeoPackage. Also, the workspace definition is exported so the PostGIS tables can be configured properly. We use scripts guided by QGIS Modeler to process the workspace definition and create the tables in PostGIS. Once the tables are available in PostGIS, the data can be published via GeoServer and  available via WFS, Vector tiles, etc. Our process deals with the common blockers such as dealing with domain and subtypes that are instinct constructs of the Esri's geodatabase.

Domains are used to create rules regarding the value of attributes. Let's say I'm modeling the results the US Elections per state, where I'm only going to store the result of the winning party.

[caption id="attachment_5701" align="aligncenter" width="500"]Domains Domains[/caption] I can define a table State to capture these information. And, I can also define a rule regarding the values that the Winning_Party can take, by creating a Domain for the Winning_Party Attribute. The trick is making these information available to a  Client Application that can, for example,  use this information to restrict values for a web form. The other common issues is subtypes. From Esri's documentation, here is an example of subtypes used in conjunction with domains. [caption id="attachment_5702" align="aligncenter" width="527"] Attribute domains and subtypes
Attribute domains and subtypes (http://bit.ly/esri-subtypes-domains)[/caption] Esri Geodatabases allows the creation of subtypes allowing to define entities that might have different domain in their attributes to better enforce the integrity of the data. At GeoSolutions we use declarative partitioning to model the Esri's subtypes constructs. [caption id="attachment_5708" align="aligncenter" width="479"]Subtypes Modeling Subtypes Modeling[/caption] Following the Streets example. A table Streets is created with an attribute subtype. The attribute subtype can have value Local_Subtype or Highway_Subtype. Then the following  SQL statement are executed for each subtype tables -- Parent table CREATE TABLE Streets (id INTEGER, subtype INTEGER, code INTEGER, name VARCHAR(100)) PARTITION BY LIST(subtype); -- 'Local' partition CREATE TABLE Local_Streets PARTITION OF Streets FOR VALUES IN (1); ALTER TABLE Local_Streets ADD CONSTRAINT Streets_Local_FK FOREIGN KEY(code) REFERENCES Domain_Local_streets(code); -- 'Highway' partition CREATE TABLE Highway_Streets PARTITION OF Streets FOR VALUES IN (2); ALTER TABLE Highway_Streets ADD CONSTRAINT Streets_Local_FK FOREIGN KEY(code) REFERENCES Domain_Highway_streets(code);

If done properly, all the data that is transferred that has domains and subtypes will be available in PostGIS and can properly be used by tools like GeoServer.

If you want to learn more about this topic and see a demo, I invite you to join the free webinar, which will be given one of our lead engineers, Christian Picone. Register now so you will have the opportunity to hear more about this topic and ask anything you want to Christian.


Hope to see you virtually on December 3th, meanwhile stay safe and keep strong!


Luis 320x100_eng

by Luis Bermudez at November 10, 2020 03:14 PM

It is a while now that I am collecting gps logs done by car and bike to get a better idea on how to "correct" a bit jumping points. This is how the Kalman filter was added to the GPS points pipeline as additional information of choice (not always you want the corrected information).

As usual, when working on stuff, you need to get a better view over things, which usually means also to get a qualitative idea of what is going on. This is how we got to gradient coloring of the gps lines.

The result is actually quite cool and gives a good insight of what happened and when. So we decided that this will enter the next release of SMASH.

How does it work?

The GPS log properties panel now has an additional combobox that permits the selection of a color palette for a particular information.

If a palette is selected it overrides the solid color of the log, applying the palette to the line.

The result in the case of elevation is something like:

Which gives a pretty good idea about where the peak is. Also, assuming the temporal direction of the log, the downhill parts of the log are drawn with dotted border.

You might want to know where the steep parts are, right? That is what slope can help you in:

A maybe less interesting vision is the one colored by speed:

And last but not least, it is possible to view the log by its accuracy. This can be quite interesting for surveyors, if they decide to pair to the survey a complete log, which will then tell them where accuracy was better. Obviously in the below map it is simple to see where the galleries are:

I find this view of the GPS logs quite intriguing. Some might say that it would be better to have this information before a trip... and they are right. Which is why we added this coloring option also to gpx data layers. If the gpx contain the elevation information, then the elevation and slope palette are available:

I hope you'll also enjoy it... in the next release :-)

by moovida (noreply@blogger.com) at November 10, 2020 09:37 AM

Entre las novedades más importantes de gvSIG Desktop 2.5.1 se encuentran todas las mejoras que se han introducido en el generador de expresiones, que permiten aumentar de forma exponencial el potencial de gvSIG Desktop como herramienta para analizar la información.

Una expresión es una operación con la que se obtiene un resultado y estas expresiones pueden ser tan simples o complejas como necesitemos, pudiendo utilizar una gran variedad de operadores de todo tipo y variables como valores de campos, coordenadas, etc.

Mediante el generador de expresiones, entre otras múltiples utilidades, podemos obtener resultados similares a los producidos cuando ejecutamos ciertos geoprocesos.

También se puede utilizar para operar y realizar búsquedas entre tablas relacionadas (desde una tabla, buscar valores que están en otra tabla).

La interfaz del generador de expresiones nos permite acceder a cientos de operadores, previsualizar resultados, informarnos de posibles errores en nuestras expresiones, guardar nuestras expresiones, acceder al histórico de expresiones, etc. Todo un potencial que vale la pena explorar.

¿Dónde podemos utilizar/encontrar el generador de expresiones?

  • Selección alfanumérica (filtro)
  • Calculadora de campo
  • Formularios/fichas de búsqueda (otra novedad de gvSIG Desktop 2.5.1)
  • Exportación de capas (para selección de valores a exportar y en ruta de capa)
  • Geoprocesos
  • Información rápida (QuickInfo)
  • Añadir en bases de datos
  • Edición
  • Etiquetas
  • Campos virtuales o calculados
  • Scripting

En las pasadas Jornadas Internacionales de gvSIG Desktop hubo una ponencia donde se explica con todo detalle el funcionamiento del generador de expresiones, con ejemplos de uso. Vale mucho la pena que le dediquéis un momento. Lo tenéis disponible en el canal de YouTube de gvSIG:

by Alvaro at November 10, 2020 08:58 AM

November 09, 2020

Como comenté en un post anterior, desde hace un tiempo alumnado de (cada vez más) universidades está realizando prácticas con la Asociación gvSIG, teniendo además la posibilidad de ser 100% en modalidad online. Y parte de esas prácticas está resultando en diversa documentación, que puede ser de interés compartir.

Hoy os compartimos un pequeño tutorial para analizar la distribución de los robos en transporte público, mediante el uso del geoproceso Kernel con gvSIG Desktop, que podéis descargar aquí:

Como podéis ver son tareas muy sencillas, fáciles de replicar y enormemente útiles para interpretar un determinado hecho.

Y de complemento, un pequeño documento que la misma alumna ha generado sobre las ventajas que ha encontrado en el uso de gvSIG Desktop y Online, explicadas con un ejemplo práctico de análisis de la problemática de violencia familiar en la zona metropolitana del Valle de Toluca:

Rosario García Ramírez, de la UAEMEX es la estudiante que ha realizado los documentos de este post.

by Alvaro at November 09, 2020 04:10 PM

November 05, 2020

For the longest time, MapGuide's support for WFS and WMS was nothing too special. The level of support was the bare-minimum enough so that we could say "We support WFS/WMS"

For MapGuide 4.0, the WFS and WMS support has been enhanced in the following areas:

GeoJSON format support

As I've previously mentioned, if we're going to serve feature data in a JSON format, we should just go straight to GeoJSON and not bother with anything else.

This now also applies for WFS and WMS operations that return feature data. Namely:
  • GetFeatures for WFS
  • GetFeatureInfo for WMS
For both these operations, specifying application/json as the requested format will return the data in GeoJSON. This support is most useful for WMS GetFeatureInfo as due to the ubiquity of GeoJSON support, a WMS GetFeatureInfo response in GeoJSON format can be used as a convenient "selection overlay" to display selected features when clicking on a WMS map.

Configurable geometry output for WMS GetFeatureInfo

Sometimes, one may not wish to have geometry output for certain WMS GetFeatureInfo requests. So for MapGuide 4.0, there is a new _EnableGeometry metadata option for Layer Definition resources, that determines if WMS GetFeatureInfo requests against this layer should return geometry data or not.

The next release of MapGuide Maestro lets you toggle this setting in the UI without having to mess around with resource header XML.

This setting is only applicable if the Layer Definition itself has been set to be queryable for WMS.

WFS Support for hit count

The spec for WFS GetFeatures defines a special mode where one can request a hit count (ie. A raw total) instead of the actual raw feature data. MapGuide did not implement this part of the WFS spec (it is optional). For MapGuide 4.0, this is now implemented.

If you pass resultType=hits to your WFS request, you now get a total instead of the feature data.

As an aside, if you use VSCode on the regular, I highly recommend you install the REST client extension. It has replaced Postman for my HTTP/REST API testing. As evidenced by the above screenshot, testing HTTP requests is dead simple.

Special thanks to OpenSpatial for their assistance in testing out this feature.

Viewer representation for WMS GetMap

As of the 4.0 preview 2 release, the mapagent now also supports a new viewer representation for WMS layers, giving you a built-in way to easily preview any published WMS layer in MapGuide by simply specifying a format of application/openlayers, which is a new option in the GetMap test page

In this format, a HTML page is returned which contains an OpenLayers viewer set up to the WMS layer(s) in question.

No more needing to fire up a client GIS application like Gaia or QGIS to preview such layers, MapGuide now provides the means to preview such layers out of the box!

by Jackie Ng (noreply@blogger.com) at November 05, 2020 09:34 AM

November 04, 2020

Fare compiti ripetitivi che non aggiungono valore, non ci incoraggiano a crescere, ci sfiniscono, sembrano essere compiti che non sono adatti a persone creative con un atteggiamento critico riflessivo. Quindi, automatizzare queste attività e garantire la qualità delle nostre sforzo o dedicare il nostro tempo a facere quello che può fare un automi programmabili?


Rispondere a questa domanda è ciò che mi ha spinto a partecipare al progetto, New Rules for the Topology Framework in gvSIG desktop è stato sviluppato all’interno del programma GSoC in collaborazione con l’organizzazione OSGeo e l’Associazione gvSIG.


L’obiettivo è sviluppare una serie di strumenti che consentano il trattamento degli errori topologici, automatizzando le attività di confronto della geometria attraverso regole di integrità che verificano e convalidano la relazione delle geometrie con i dati.


Mentre avanzavamo nel progetto, era necessario correggere gli errori, sviluppare miglioramenti, generare nuove regole e azioni. L’automazione è stata effettuata tramite la tecnica di scripting, viene sviluppato un algoritmo che fornisce una soluzione alla logica definita dalla regola, permettendoci di ottimizzare l’utilizzo del tempo e per l’utente di concentrarsi sulla logica da risolvere mentre l’algoritmo si occupa dell’analisi e valutazione dei dati.

La parte più impegnativa è stata la ricerca richiesta dal progetto e allo stesso procedere secondo i piani e raggiungere la qualità richiesta.

Una di queste sfide era la regola Must not have gaps, in cui era necessario sviluppare funzioni accessorie che permettessero di svolgere un processo secondo quanto stabilito dalla norma e allo stesso tempo efficiente, per questo era necessario creare un metodo personalizzato per la pulizia del errori, che elimina le incongruenze nel risultato.


Illustrazione 1. Risultato con metodo di differenza predefinito.

Illustrazione 2. Risultato con metodo di differenza + metodo di pulizia personalizzato.


Quest’anno oltre ad aver sviluppato le seguenti 6 nuove regole:

Anche la qualità è stata migliorata sulla base dell’esperienza del 2019.

Inoltre, spicca il miglioramento fornito dall’implementazione delle mark actions.


Illustrazione 1. Mark point action. Regola Must not intersect with (linea)

Illustrazione 2. Mark point action. Regola Must not intersect with (linea)

Questa nuova implementazione migliora notevolmente la visualizzazione degli errori e restituisce le geometrie di questi in un nuovo layer, le mark actions velocizzano il processo di identificazione e correzione degli errori. Con il progetto è possibile automatizzare le attività ripetitive, ridurre gli errori e dare la possibilità all’utente di concentrarsi sull’obiettivo del progetto e non sulla parte tecnica, si ottiene semplicità nell’analisi dei dati e si ottimizza l’utilizzo del tempo.


Penso che la cosa più importante sia vedere come attualmente abbiamo tutto pronto per garantire che il lavoro svolga la funzione che dovrebbe, essere un’attività che ci incoraggia a svilupparci come esseri umani, ora dipende da noi come decidiamo di svolgere le nostre attività.

Per me è stato un orgoglio aver potuto qualificar per i periodi 2019 e 2020 di GSoC, apprezzo la fiducia ricevuta per permettermi di contribuire a gvSIG e alla comunità del software aperto. Il lavoro si è potuto svolgere grazie allo sviluppo del team con i tutor, principalmente Carlos Colombana, Óscar Martínez e con la communita degli sviluppatori, per me è stata un’esperienza arricchente e molto piacevole.

Infine, voglio ringraziare Marisa Boggio per avermi aiutato a migliorare il mio italiano.

La synergy generata nella collaborazione in team fa la differenza.

Per me è un privilegio poter condividere il progetto con voi, grazie mille a tutti!!!!

Repository del progetto:

GitHub: https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki

OSGeo: https://wiki.osgeo.org/wiki/New_rules_for_the_Topology_Framework_in_gvSIG_Desktop_(_GSoC_2020_)

Articolo scritto da Mauro Carlevaro

by Mario at November 04, 2020 07:48 AM

Do repetitive tasks that do not add value, do not encourage us to grow, wear us out, they seem to be tasks that are not proper for creative people with a reflective critical attitude. So, automate tasks and ensure the quality of our activities or spend our time doing what a machine?


Answering this question is what motivate me to participate in the project New Rules for the Topology Framework in gvSIG desktop, which was developed within the GSoC program in conjunction with the OSGeo organization and the gvSIG Association.


The objective is to develop a set of tools that allow the treatment of topological errors, by automating the tasks of geometry comparison through integrity rules that verify and validate the relationship of geometries with the data.


As we progressed, it was necessary to correct errors, develop improvements, generate new rules and actions. The automation was carried out through the scripting technique, an algorithm is developed that provides a solution to the logic defined by the rule, allowing save time and for the user to focus on the logic to be solved while the algorithm is in charge of the analysis and data evaluation.

The most challenging part was the research required by the project and at the same time progressing according to plan and meeting the required quality.

One of these challenges was the Must not have gaps rule, in which it was necessary to develop accessory functions that would allow a process to be carried out according to what is established in the rule and at the same time efficient, for this, a personalized method had to be made for cleaning errors, which eliminates inconsistencies in the result.

Illustration 1. Result with default difference method.

Illustration 2. Result with difference method + custom cleaning method.


This year in addition to having developed the following 6 new rules:

Also, was improved the quality of the development based on the experience of 2019. Furthermore, one of the improvement that stands out is the implementation of mark actions stands out.

Illustration 3. Mark point action. Rule must not intersect with (line)

Illustration 4. Mark point action. Rule must not intersect with (line)

This new implementation significantly improves the display of errors and returns the geometries of these in a new layer, the mark actions speed up the process of identification and correction of errors.

With the project it is possible to automate repetitive tasks, reducing errors, and give the user the possibility to focus on the project objective and not on the technical part, simplicity in data analysis is achieved and the use of time is optimized.


I think the most important thing is to be aware that nowadays we have everything ready to ensure that work fulfills the function it should, be an activity that encourages us to develop as human beings, now it depends on us how we decide to carry out the tasks.

I have been proud to have been able to qualify for the 2019 and 2020 periods of GSoC, I appreciate the trust received to allow me to contribute to gvSIG and the open software community. The work could be carried out thanks to team development with the tutors, mainly Carlos Colombana, Óscar Martínez and with the developer community, it was an enriching and very enjoyable experience. Furthermore, I want to thanks Luis Boggio for his suggestions to improve the article.

The synergy generated in team cooperation makes the difference.

For me it is a privilege to be able to share the project with you, thank you very much !!!!

Article written by Mauro Carlevaro

GitHub: https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki

OSGeo: https://wiki.osgeo.org/wiki/New_rules_for_the_Topology_Framework_in_gvSIG_Desktop_(_GSoC_2020_)

by Mario at November 04, 2020 07:47 AM