Welcome to Planet OSGeo

November 13, 2024

I saw a physical therapist yesterday. I had a virtual visit with my physician today. I had a 2 mile hike in the sun around a local reservoir. Now I'm listening to the Glenn Branca Orchestra on The Frow Show and my take on my health is: let's go!

The expert consensus is that I did not injure my spine, but that muscles in my hip right next to my spine have clamped down on a nerve. I'm going to proceed as if that is true, foam rolling, walking, and running through the pain, and not worrying about my spine cracking in pieces. I do have a little bit of numbness in my upper left leg and so I will not directly dive into long technical downhill runs. I expect that I'll resolve that soon.

by Sean Gillies at November 13, 2024 02:16 AM

November 12, 2024

I've taken a momentary break from our (admittedly) glacial pace of MapGuide development to put out another release of mapguide-rest 

This release includes the following changes:

  • Fix missing reverse routing on selection overview
  • Fix bad feature query preparation when querying against watermarked layers
  • Relax strict-typing on MgReaderToGeoJsonWriter::FeatureToGeoJson() so that it can work with MgPaginatedFeatureReader allowing pagination to work again
  • Added missing properties parameter to swagger defn for session-based feature selection route

We now return to regularly-scheduled programming of trying to get MapGuide Open Source 4.0 to the finish line.

As for mapguide-rest, I envision at least once more major RC *after* the final release of MapGuide Open Source 4.0 before finally wrapping things up on development work and pulling the trigger on the mapguide-rest 1.0 final release. Enough of this RC-after-RC business!

by Jackie Ng (noreply@blogger.com) at November 12, 2024 01:46 PM

It was great to attend FOSS4G:UK South West 2024 in Bristol on 12th Nov, at OSGeo:UK’s now regular Bristol Venue, The Engine Shed. The event was a sell out and we had 62 people in the Engine Shed’s main room.

This was the first time in a while that I have been to a FOSS4G:UK as an attendee rather than as an organiser - and it made a nice difference! We had 14 great presentations, covering a whole range of topics including digitalization of railways, reproducible science, real time vessel monitoring, landscape heritage, open source funding, cloud native web apps and a whole variety of useful open source tools.

Unfortunately I missed the first presentation - thanks Great Western Railways! - but one common theme that cropped up a lot was how social media as a tool for open source projects has changed dramatically. James Milner said that social media used to be a great way to promote his program, Terra Draw, but know he gets no where near the same impact from using social media. It’s now a bit of a big unknown, and I particularly liked how he summarised this:

Interestingly, I sent out a number of social media posts to Twitter (X), Mastodon and LinkedIn, and LinkedIn got the most response, so make of that what you will! Although I think it’s fair to say LinkedIn is not universally loved, as it was memorably described as “Grindr for Business” by Andrew Bailey!

The presenters have also mastered the use of memes, with Matt Travis hitting home with some of the perils of waiting for large data sets to load:

and of course also

It was also fantastic to get FAIR Open Science and FAIR workflows mentioned in the presentation by Richard Conway & Garin Smith from Telespazio, who are in the process of developing an exploration platform that allows researchers both to share their data, code and their methods in a reproducible form.

I also had the opportunity to speak about GoFundGeo and talk about how OSGeo:UK is funding a range of open source geospatial projects that will have an impact in the UK. Join the OSGeo:UK mailing list or check the website to find out more.

Finally, as ever, it was great to meet new people and network again with old friends at these events. I know of at least one contract opportunity, as well a number of potential ones and also I think some new volunteers for OSGeo:UK!

Thanks very much to all the organisers - Pascal Coulon, Alastair Graham, Sam Franklin, Dan Ormsby, Illya Sparkes-Santos, Ant Scott, as well as everyone who came along and took part.

If you want help or advice on any open source geospatial tool, or are interested in Introductory or Advanced GIS training in QGIS or R, please do contact me.

by Nick Bearman at November 12, 2024 12:00 AM

November 11, 2024

November 10, 2024

November 09, 2024

Even Rouault has proposed a new, modern, and more coherent command line interface (CLI) for the GDAL/OGR project. I think it's a good idea and a good time to do it. I've wanted a better one for about 15 years. Even credits Rasterio for inspiration, and that's gratifying to see. I started writing Rasterio 10 years ago in part because I wanted a better CLI for GDAL.

What I wanted in a GDAL CLI were the following features:

  • A root command and a few subcommands, one namespace for everything.

  • Uniform arguments and options with predictable ordering and naming.

  • Good documentation of arguments and options.

  • More subcommands with fewer options each. Making gdal_translate into 3-4 commands, for example.

  • Input and output that favor stdin/stdout and JSON.

  • Ease of installation. For example, with pip instead of an OS package manager.

I estimated in 2013-2014 that it was not feasible for me to achieve those goals within the GDAL project itself. GDAL and its community had no funding for this kind of work at the time. I found the GDAL project's tests somewhat inscrutable and frustrating. A hefty legacy of documentation and folk wisdom about the old ways would have to be updated. Mostly by me, certainly. And the GDAL user community largely did not care. Free software that was fast and effective (and, most of all, free!) was already more than most people had dreamed of. A GIS analyst had so many business and organizational problems to deal with already that the rough edges of gdalinfo and gdal_translate didn't even crack her top 20. Software polish wasn't a big concern in the second decade of FOSS4G. I think it's still a hard thing to sell. Individual consumers will pay money for slick, well-designed software that makes them feel good. Organizations value polish less. And neither GDAL nor Rasterio sell anything to individual consumers.

Overhauling gdal_translate, ogr2ogr, and friends within the GDAL project looked like a non-starter to me. Pushing a herd of boulders up a hill, by myself, for free, for a community that was largely content with working around and stepping over these boulders. I think I made the right choice for myself. I got to start from scratch, move fast, and use a modern CLI framework. I made a command line interface for Rasterio that, while not perfect, met most of my goals. And I didn't go broke or burn out while doing it.

Today, thanks to years of fundraising work by Howard Butler, Paul Ramsey, Kristian Evers, and Even, the GDAL project does have funding to overhaul its command line interface as an aspect of overall project health and maintenance. Multiple developers can be paid to work on it. They won't have to donate their time to it as I would have. Rasterio's command line interface can't be adopted by GDAL, or be forked to become GDAL's because it doesn't have all the features of existing GDAL programs (or even of gdal_translate and ogr2ogr for that matter), and my decision to have more subcommands with fewer options is kind of against the grain of GDAL. But the new GDAL CLI can adopt the demonstrably useful features and design of Rasterio's. JSON output, for example, is something that GDAL has already picked up from Rasterio.

Rasterio will certainly fade a little if the new GDAL CLI is designed and executed well. But that's in the nature of software and software communities. Rasterio has always depended on GDAL and benefited from being built on a technically solid and well loved foundation. And I didn't invent CLI subcommands and JSON output, not at all. It's not unfair. If you succeed in open source, if you move the needle, you will be emulated. In this case, I think we can call it progress. I'm content.

In the long run, I stand to get half of what I originally wanted from a GDAL CLI, the first three of the six features I listed above. And there's probably still room for a suite of Unix style programs with different opinions and design decisions, especially if it and GDAL agree on basic concepts, arguments, options, and flags.

by Sean Gillies at November 09, 2024 04:54 PM

I stopped using Twitter a while ago. Then it was rebranded as "X". I dithered about deleting my account. Would it be taken over by crypto scammers or an 18 year-old Russian army private or contractor? I've come to the conclusion that I don't care anymore. They can have it if they want. I've downloaded my archive and clicked "deactivate your account".

If you see a post from an @sgillies on X, it isn't me.

by Sean Gillies at November 09, 2024 04:03 AM

November 08, 2024

A maior promoção de 2024 começa hoje, dia 08 e vai até o dia 10 de novembro.

✅ Essa é a sua chance de adquirir nossos cursos com descontos imperdíveis nessa Black Friday.

Cursos que estão com desconto:

📍Combo: PostgreSQL, PostGIS e GeoServer (EAD Videoaula com 38h/aula)
💰50% de desconto
🗓 Acesso por 24 meses

📍Combo: PostgreSQL, PostGIS, GeoServer e OpenLayers 4 (EAD Videoaula com 53h/aula)
💰60% de desconto
🗓 Acesso por 24 meses

👉🏻 Os cupons de desconto estão sendo informados no nosso Grupo VIP, basta você clicar no link abaixo :

👉🏻 https://geocursos.com.br/blackfriday

by Fernando Quadro at November 08, 2024 11:00 AM

Saturday, I reported that I was laid up with a back injury. I'm feeling better today. The pain is manageable and I've been able to spend about half of my time awake upright, standing or sitting on my bed, with regular breaks to touch my toes and do the yoga half lift to stretch my back. I even managed to run a little bit yesterday while helping a guy who was the victim of a hit-and-run incident. Car on car, to be specific. No one was injured, as far as I could tell.

Ban cars. Ban injuries.

by Sean Gillies at November 08, 2024 03:54 AM

November 07, 2024

November 06, 2024

November 05, 2024

If you're not already using pytest's tmp_path fixture, you really should. The fixture provides a temporary directory for testing use. A directory that you can't reference from other test runs or from other test functions in the same run, but that isn't immediately deleted when your tests finish. The directory is created in your account temporary location and is eventually cleaned up by your computer's operating system. Until then, you can open the directories and their files in other applications.

I've been making assertions on datasets in Rasterio's tests and also dragging them into QGIS for a closer look after the tests finish.

https://live.staticflickr.com/65535/54120218694_cd56609f30_b.jpg

by Sean Gillies at November 05, 2024 11:56 PM

No mundo do Geomarketing, a precisão é a chave para o sucesso. E uma das etapas cruciais para garantir essa precisão é a coleta de dados em campo.

🔍 Validação Realista: Enquanto os dados de mapas e bases de dados são valiosos, nada supera a validação realista que a coleta de dados em campo oferece. Verificar pessoalmente as informações nos permite confirmar sua precisão e atualidade.

📈 Refinamento Estratégico: Ao mergulhar nas nuances de uma área específica, podemos descobrir insights que simples análises de dados remotos podem negligenciar. Detalhes sobre padrões de tráfego, comportamento do consumidor e características locais podem refinar nossas estratégias de marketing de maneiras surpreendentes.

🗣 Feedback Direto: Interagir com os residentes locais, consumidores e outras partes interessadas nos dá acesso a um feedback valioso e em tempo real. Esse feedback é uma mina de ouro para ajustar nossas estratégias e adaptá-las às necessidades locais.

📊 Personalização Efetiva: Compreender profundamente as características locais nos permite personalizar nossas estratégias de marketing de maneira mais eficaz. Não se trata apenas de atingir o público certo, mas de atingi-lo da maneira certa, levando em conta as particularidades de cada região.

Em suma, a coleta de dados em campo não é apenas uma etapa em um estudo de geomarketing, mas sim o alicerce sobre o qual construímos estratégias eficazes e impactantes. É o que nos permite transformar dados em insights acionáveis e conquistar resultados tangíveis. 🚀🌍

Fonte: Marcio T. Mendonça

by Fernando Quadro at November 05, 2024 12:00 PM

I recently needed to implement a way of showing the uncertainty of a marker in a web map (the final application isn’t ready yet) and while I found a bunch of tutorials and stackoverflow answers that covered parts of this I couldn’t find a single page on how to do it. So I’m going to write it up here so that next time I need to do this a search will find this.

TL;DR; You can see a simple demo here, and here’s a picture to show you what I’m talking about.

A map with uncertain markers

There are 3 markers (in my app anyway) and they are represented using a coloured flag. At its simplest the user can just pick a position and if they are happy with that move on to the next step (in the image above this is the blue flag). If however they are less sure of the location they can double click on the marker which will add a 100m circle (in a matching colour) around the point (the green flag above). Clicking on the circle will display a popup which allows them to adjust the radius of the circle (the red flag above). Also at any time the user can click on a flag and drag it (and it’s circle) to a new position on the map.

function addMarker(n) {
    name = n;
    if (lastClick) {
        L.DomUtil.removeClass(map._container, `${lastClick}-flag-cursor-enabled`);
    }
    lastClick = names[name];
    if (!positions[names[name]]) {
        L.DomUtil.addClass(map._container, `${names[name]}-flag-cursor-enabled`);
        map.on('click', setMarker)
    } else {
        map.panTo(positions[names[name]].getLatLng());
    }
    if (Object.values(positions).length == 3) {
      // proceed to remainder of the app
    }
}

When the user clicks on one of the buttons, addMarker is called, this clears the previous cursor if it was set and then if this colour of marker hasn’t been set changes the cursor to match the flag we are adding or pans to that marker if it has been placed on the map. Then we attach the setMarker method to the map’s click event, so when they click we can place a marker there.

function setMarker(e) {
    map.removeEventListener("click", setMarker, false);
    if (!positions[names[name]]) {
        var icon = L.icon({
            iconUrl: icons[names[name]],
            iconSize: [30, 30],
            iconAnchor: [20, 27],
        });
        lat = e.latlng.lat;
        lon = e.latlng.lng;
        //Add a marker to show where you clicked.
        var latlng = L.latLng(lat, lon);
        var marker = new L.marker(latlng, {
            icon: icon,
            title: labels[names[name]],
            draggable: false,
            clickable: true,
            autoPan: true,
        }).addTo(map);
        marker.on('dblclick', (e) => {
            addCircle(e.target);
        });
        marker.on('click', mapClickListen);
        /* this is all to work around dragend triggering a click
         * see https://gis.stackexchange.com/questions/190049/leaflet-map-draggable-marker-events
         */
        marker.on('dragstart', function(e) {
            console.log('marker dragstart event');
            marker.off('click', mapClickListen);
        });
        marker.on('dragend', (e) => {
            e.target.dragging.disable();
            //pointsValid();
            marker.on('click', mapClickListen);
        });
        positions[names[name]] = marker;

    } else {
        map.panTo(positions[names[name]].getLatLng());
    }
    L.DomUtil.removeClass(map._container, `${names[name]}-flag-cursor-enabled`);
}

Again, we check if the marker has already been placed (I’m paranoid) and if not go ahead and create a flag icon with the correctly coloured image. The IconAnchor makes sure that the base of the flag pole is placed on the click location. Then we create a new Marker using the icon at the latitude and longitude of the click, we set it to be clickable but not draggable. The idea is (was) that the user should need to click on a marker to move it, which works but the end of the drag seems to click on the marker again so it never turns off. So I found a workaround from 2016 to the bug and which was apparently fixed some years ago but I can’t seem to make it work. Any way the key step is the add addCircle to the double click event.

function addCircle(marker) {
    name = names[marker.options.title];
    if (!circles[name]) {
        const popup = document.createElement("div");
        popup.innerHTML = 'adjust radius ';
        const spinner = document.createElement("INPUT");
        spinner.id = name;
        spinner.setAttribute("type", "number");
        spinner.setAttribute("min", "10");
        spinner.setAttribute("max", "200");
        spinner.setAttribute("step", "10");
        spinner.setAttribute("value", "100");
        spinner.addEventListener('input', function(e) {
          circles[e.target.id].setRadius(e.data);
        });
        popup.appendChild(spinner);
        circle = L.circle(marker.getLatLng(), 100, {
            color: colors[name],
            fillcolor: colors[name],
            fillopacity: 0.5,

        }).bindPopup(popup).addTo(map);

        marker.on('drag', (e) => {
            circles[names[e.target.options.title]].setLatLng(e.latlng);
        });
        circles[name] = circle;
    }
}

As is usual we check if there is already a circle with this name before we create one. Then we generate the popup that allows the user to change the radius of the circle. This is a basic HTML div with a spinner (or number as HTML calls them for some reason), we can set the minimum, maximum and step for this in the HTML as per normal. The trick then to add a function to the input event that is fired when ever the user clicks the spinner (or uses their up/down arrows on it). The remaining issue is to make sure that the right circle gets updated when the input changes, to do this I set the id of the spinner to the same name that keys the dictionary of circles (these keys match the markers too). Then we can simply use the setRadius method of the CircleMarker that we are about to create. Then we create the CircleMaker and attach the popup to it and add it to the map. Finally, when we drag the matching marker we want to move we need to change the centre of the circle. This needs a function for the drag event to do this, it’s slightly more complex to look up the required circle from a marker due to makers having nice long titles so there’s a double lookup, if I had millions of markers this might be a problem but with 3 it’s fine.

And that’s all there is too it, that’s not to say I like JavaScript or web development but in the end its not too hard!

November 05, 2024 12:00 AM

November 04, 2024

It’s been a while since my post on geo and the AI hype in 2019. Back then, I didn’t use the term “GeoAI”, even though it has certainly been around for a while (including, e.g., with dedicated SIGSPATIAL workshops since 2017).

GeoAI isn’t one single thing. It’s an umbrella term, including: “AI for Geo” (using AI methods in Geo, e.g. deep learning for object recognition in remote sensing images) and “Geo for AI” (integrating geographic concepts into AI models, e.g. by building spatially explicit models). [Zhang 2020] [Li et al. 2024]

Today’s post is a collection of key GeoAI developments I’m aware of. If I missed anything you are excited about, please let me know here in the comments or over on Mastodon.

Background

A week ago, I had the pleasure to attend a “Specialist Meeting” on GeoAI here in Vienna, meeting over 40 researchers from around the world, from Master students to professor emeritus. Huge props to Jano (Prof. Krzysztof Janowicz) and his team at Uni Wien for bringing this awesome group of people together.

The elephant in the room: LLMs

Unsurprisingly, LLMs and the claims they make about geography are a mayor issue due to the mistakes they make and the biases behind them. An infamous example is AI’s issue with understanding topology:

Image source: Janowicz, K. (2023). Philosophical Foundations of GeoAI: Exploring Sustainability, Diversity, and Bias in GeoAI and Spatial Data Science. arXiv e-prints, arXiv-2304.

Even if recent versions of ChatGPT (such as GTP 4o) do a better job with this specific example, this doesn’t make their answers reliable. So between the trustworthiness, reproducibility, explainability, and sustainability issues … LLMs have a long way to go. And it’s not clear whether they are going in the right direction right now.

Geospatial foundation models

Prithvi, a model developed by NASA, IBM, et al. in 2023, is one of the first geospatial foundation models. Like much of GeoAI, Prithvi deals with remote sensing data. Specifically, it is trained on Landsat and Sentinel-2 (HLS) imagery, with applications in flood mapping and wildfire prediction. And maybe best of all: the model is open-source and publicly available.

Spatiotemporal machine learning model specifications

In the general AI community, model cards have become a common way to share information about models. However, identifying the right model for spatiotemporal tasks is hard since there are no standardized descriptions in existing model catalogs (e.g. Hugging Face, DLHub or MLFlow). To address this issue, [Charette-Migneault et al. 2024] have proposed the Machine Learning Model (MLM) extension for the SpatioTemporal Asset Catalogs (STAC). But, yet again, this development is targeting models trained with remote sensing imagery.

Similarly, the OGC Training Data Markup Language for Artificial Intelligence (TrainingDML-AI) and its ISO equivalent are limited to EO as well …

Spatial knowledge graphs

For those among us working mostly with vector data, the KnowWhereGraph is an interesting development. It’s the first geo-enriched knowledge graph [Janowicz et al. 2022] that helps answer geospatial questions by integrating a variety of spatial datasets through hierarchical grids, standard region boundaries and appropriate ontology and knowledge graph schema development. However, so far, the KnowWhereGraph is mostly limited to the United States.

Explainable AI (XAI) and geo

While answers from knowledge graphs are intrinsically explainable, many other (Geo)AI solutions are built on AI approaches that result in black box models.

Graph neural networks (GNNs) have become very popular in GeoAI (including in urban analytics and mobility [Jalali et al. 2023] [Liu et al. 2024]) but their black box nature limits their practical usefulness in domains where transparency and trustworthiness are crucial. To offer insights into how model predictions are made, [Liu et al. 2024] propose a spatially explicit GeoAI-based method that combines a graph convolutional network and a graph-based XAI method, called GNNExplainer to explore the correlation between urban objects.

Reproducibility et al.

The AI hype in geo is still going strong. Journals are being flooded with paper submissions and good reviewers are hard to come by. In many geo-related venues, it is still acceptable to present an AI paper without making code or model available. (We recently discussed this issue for mobility AI specifically [Graser et al. 2024].)

I’m convinced we can and should do better: quality over quantity, moving steadily, building and fixing things.

References

by underdark at November 04, 2024 06:00 AM

November 03, 2024

Just when my running is getting regular again, I mess up my back with yoga and yardwork. I've got searing pain in my left hip that suggests a herniated disc, and have spent most of yesterday and today in bed. I slept okay last night and hope to again. This is another argument for voting by mail: anybody could find themselves unexpectedly disabled right before election day.

I'm very grateful that I got in a solid mountain run before my mishap. With luck I'll be back out there in a few weeks.

https://live.staticflickr.com/65535/54113272015_c4be540d32_b.jpg

A view over Horsetooth Reservoir and Fort Collins from the top of Arthur's Rock, elevation 6,780 ft (2,066 m).

by Sean Gillies at November 03, 2024 01:15 AM

November 02, 2024

November 01, 2024

In the last month of October, 18 new plugins were published in the QGIS plugin repository.

Here follows the quick overview in reverse chronological order. If any of the names or short descriptions catches your attention, you can find the direct link to the plugin page in the table below:

ECLAIR: Emission CompiLation for AIR quality
This plugin compiles emission data for air quality. Data can be imported, edited and exported.
GRD_Loader
Load GRD Format Rasters.
Random Point on Lines…
The Random Points on Lines… is a simple interface and a user-friendly QGIS plugin that enables to generate a specified number of random points along selected line layers within QGIS. Users can control the layer selection and the number of points generated.
BGT Loader
A processing tool to download Dutch BGT data for a specific polygon area.
geonorge-tegneregelassistent
En plugin for å implementere stiler/tegneregler basert på norske standarder som finnes i Geonorge.
EvapoGIS
Evapotranspiração.
SkyDeck Plugin
Seamlessly Integrate and Manage SkyDeck Geospatial Data within QGIS.
Curva de Nivel
Cria curvas de nivel no territorio brasileiro.
Reservoir & Basin Analysis
This plugin offers some analysis tools for reservoirs and basins.
Feature Transfer Tool
Feature Transfer Tool provides a seamless way to copy and paste features between layers.
Parameter History
A better processing history plugin.
GeOSPR
GeOSPR (Consulta, Validación y estandarización).
AutonomousGIS-SpatialAnalysisAgent
The Spatial Analysis Agent is a user-friendly plugin that serves as a “Copilot” in QGIS software. This Copilot allows users to perform geospatial analysis directly within QGIS using natural language queries, making it accessible for both experts and beginners. The plugin leverages the full potential of over 600 QGIS processing tools, and other external tools such as Python libraries (e.g., Geopandas, seaborn, etc.). Whether working with vector data, raster analysis, the Spatial Analysis Agent offers a flexible, AI-driven approach to enhance and automate GIS workflows.
Aerodrome Utilities
Fetches OSM Data and processes it for aerodroms with various algorithms.
Relation Manager
This plugin helps in the management of 1:N project relations.
Easy Filter and Selection
Plugin gives easy selecting and filter feature for users that don’t want to write complicated SQL for simple problem solution.
GeoPF Altimétrie
Warning: France only! <br/> This plugin allows to call IGN Geoplateforme API directly from elevation profile tool.
Pian Exporter
The plugin exports the vector layer in WKT format for PIAN.

by adelcidesvGIS at November 01, 2024 07:54 PM

October 31, 2024

…para criar sua aplicação WebGIS. Mas vou explicar melhor em uma rápida análise:

👉 Quando você não precisa deles:

📍 Aplicativos de pequeno porte: HTML simples, CSS e JavaScript, juntamente com uma biblioteca de mapeamento como Leaflet, OpenLayers ou Mapbox GL JS, geralmente são suficientes.
📍 Conteúdo estático: se seu aplicativo atende principalmente mapas estáticos com interatividade mínima, as técnicas tradicionais de desenvolvimento web funcionam bem.
📍 Facilidade de aprendizado: como iniciante, CONCENTRE-SE em dominar as principais tecnologias da web primeiro, facilitando o aprendizado futuro de frameworks.

👉 Quando você precisa deles:

📍 Interfaces (UI) complexas: para UIs ou painéis dinâmicos e interativos, os frameworks podem simplificar o desenvolvimento.
📍 Gerenciamento de estado: gerenciar estados complexos, como entradas de usuário e alternância de camadas, pode se tornar mais fácil com esses frameworks.
📍 Componentes reutilizáveis: eles permitem a criação de elementos de UI reutilizáveis, que são usados ​​em aplicativos WebGIS.
📍 Escalabilidade: Frameworks ajudam a gerenciar a complexidade e garantem que seu aplicativo seja sustentável à medida que cresce.

👉 O que você realmente precisa focar se for iniciante:

📍 Bibliotecas de mapeamento na Web: Bibliotecas como Leaflet e OpenLayers são ferramentas poderosas que não exigem um framework de front-end, mas podem se integrar a eles.
📍 Tecnologias de back-end: Um back-end robusto é crucial para o manuseio de dados e consultas espaciais, trabalhando independentemente de frameworks de front-end.
📍 JavaScript: O JavaScript moderno pode lidar com a maioria das funcionalidades sem a necessidade de um framework, ideal para a maioria das necessidades.

👉 Conclusão:
Como iniciante, concentre-se nos fundamentos como HTML, CSS e JavaScript. React e outras coisas vêm depois e ficam mais fáceis então.

Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech

Gostou desse post? Conte nos comentários 👇

by Fernando Quadro at October 31, 2024 12:00 PM

October 30, 2024

A melhor prática para criar um sistema WebGIS é armazenar todos os seus dados espaciais em um servidor PostgreSQL habilitado para PostGIS. Garanta que a indexação espacial seja aplicada para recuperação de dados mais rápida.

Você pode facilmente construir uma interface intuitiva e amigável usando HTML básico, CSS, Bootstrap e JavaScript.

Use Leaflet ou OpenLayers como sua biblioteca de mapeamento padrão!

Para filtrar dados ou executar consultas, siga estas etapas:
📍 Colete a entrada do usuário e envie-a para seu script de backend por meio de uma solicitação AJAX.
📍 Valide a entrada no backend e busque os dados necessários do banco de dados PostgreSQL usando consultas SQL.
📍 Prepare os dados no backend e envie-os de volta para o cliente (interface do usuário).
📍 O cliente receberá os dados por meio da mesma chamada AJAX e os formatará em camadas Leaflet. AJAX é assíncrono.
📍 Estilize suas camadas de forma eficaz usando funções JavaScript.
📍 Exiba as camadas no mapa.
📍 Ajuste automaticamente a visualização do mapa para se ajustar à extensão do recurso pesquisado.
📍 Adicione-os a um controle de camada para alternar a visibilidade entre ligado e desligado.
📍 Crie dicas de ferramentas ou pop-ups para exibir informações detalhadas.
📍 Se o usuário pesquisar por um único recurso, desenhe um círculo, linha ou polígono ao redor dele e amplie o recurso.

Estas são as etapas básicas para exibir dados em um sistema WebGIS.

Gostou desse post? Conte nos comentários 👇

Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech

by Fernando Quadro at October 30, 2024 12:00 PM

October 29, 2024

Porque mais e mais empresas estão migrando para publicar seus produtos e serviços como WebGIS ou disponibilizando seus dados e funcionalidades pela web.

Essa mudança faz parte da tendência mais ampla conhecida como “GIS moderno”.

A mudança para o WebGIS oferece benefícios significativos.

👉 Aqui estão as principais vantagens do WebGIS:

1. Alcance um público mais amplo: os aplicativos WebGIS podem ser acessados ​​globalmente por qualquer pessoa com uma conexão de internet, simplesmente usando uma URL.

2. Nenhuma instalação necessária: como o WebGIS é baseado em navegador e os navegadores geralmente são pré-instalados na maioria dos dispositivos, os usuários podem acessar os aplicativos instantaneamente sem a necessidade de instalação complexa de software.

3. Compatibilidade entre plataformas: o WebGIS funciona perfeitamente em todos os sistemas operacionais (Windows, Mac, Linux, etc.) usando navegadores da web padrão.

4. Custos mais baixos: as empresas podem reduzir despesas usando infraestrutura de nuvem e evitando ou reduzindo a necessidade de licenças de software caras.

5. Colaboração em tempo real: vários usuários podem interagir com os mesmos dados simultaneamente, permitindo colaboração em tempo real de diferentes locais.

6. Atualizações instantâneas: quaisquer atualizações ou alterações nos aplicativos podem ser disponibilizadas imediatamente para todos os usuários, sem exigir atualizações manuais ou reinstalações — basta atualizar o navegador.

7. Mais fácil para usuários não técnicos/não GIS: os aplicativos WebGIS geralmente oferecem interfaces intuitivas, tornando-os acessíveis até mesmo para especialistas não GIS que precisam executar tarefas específicas.

8. Escalabilidade: as soluções WebGIS podem ser dimensionadas facilmente para lidar com cargas de dados crescentes e demandas do usuário, fornecendo flexibilidade para empresas em crescimento.

O WebGIS ajuda as empresas a fornecer serviços e aplicativos com tecnologia GIS de forma mais eficaz, tornando-os acessíveis, eficientes e fáceis de usar para seus clientes e empresas.

Gostou desse post? Conte nos comentários 👇

Fonte: webgis.tech
Instagram: https://instagram.com/webgis.tech
LinkedIn: https://www.linkedin.com/company/webgis-tech

by Fernando Quadro at October 29, 2024 12:00 PM

GeoServer 2.25.4 release is now available with downloads (bin, war, windows), along with docs and extensions.

This is a maintenance release of GeoServer providing existing installations with minor updates and bug fixes. GeoServer 2.25.4 is made in conjunction with GeoTools 31.4, and GeoWebCache 1.25.3.

Thanks to Jody Garnett for making this release.

Update 2024-11-08: Testing from Sören Kalesse noted the downloads included snapshot jars. The binaries have been updated with intended geotools and geowebcache jars.

Security Considerations

This release addresses security vulnerabilities and is considered an important upgrade for production systems.

See project security policy for more information on how security vulnerabilities are managed.

Release notes

New Feature:

Improvement:

  • GEOS-11399 Use Catalog streaming API in LayerGroupPage
  • GEOS-11427 metadata: “fix all” to support changing config repeatable field
  • GEOS-11463 WMS vector dimension validation should query only one feature and only for dimension attribute
  • GEOS-11502 Permit resize on user/group/role palette textbox to allow for extra long role names
  • GEOS-11503 Update mongo schemaless DWITHIN to support non-point geometry
  • GEOS-11557 CVE-2024-45748 High
  • GEOS-11588 GWC disk quota, check JDBC connection pool validation query

Bug:

  • GEOS-10811 GeoServer 2.22.0 WPS error while clipping raster with GeoJSON input
  • GEOS-11071 GeoJSON PPIO goes NPE while decoding a GeoJSON geometry
  • GEOS-11107 Open search for EO community module: packaging missing gt-cql-json-xx.x.jar
  • GEOS-11453 Failure to look-up default value of custom dimensions on vector layers
  • GEOS-11484 DirectRasterRenderer is not respecting advancedProjectionHandling and continuosMapWrapping format_options
  • GEOS-11493 Azure blob store may not get environment parameters from property file
  • GEOS-11497 WPS execution fails with GeoJSON input
  • GEOS-11504 ResourceAccessManagerWrapper misses some delegating methods
  • GEOS-11505 OWS Monitor only handles WFS 1.0 requests
  • GEOS-11513 WMTS/GetDomainValues - Returned values are not sorted
  • GEOS-11514 Fix parsing WPS geometry geojson inputs
  • GEOS-11524 csw: default queryables mapping not generated
  • GEOS-11543 Unable to use propertyName to filter properties in a GetFeature request when service is not set
  • GEOS-11553 SLD Style: Empty SE Rotationelement throws RuntimeException (QGIS generated SLD)
  • GEOS-11556 NullPointerException when GWC disk quota monitoring is disabled
  • GEOS-11559 The customized attributes editor is prone to setting the wrong attribute source

Task:

  • GEOS-11470 Upgrade the version of Mongo driver for schemaless plugin from 4.0.6 to 4.11.2
  • GEOS-11506 Upgrade Spring version from 5.3.37 to 5.3.39 and Spring security from 5.8.13 to 5.8.14
  • GEOS-11508 Update OSHI from 6.4.10 to 6.6.3
  • GEOS-11533 Update org.apache.commons.vfs2 to 2.9.0
  • GEOS-11574 Bump org.eclipse.jetty:jetty-server from 9.4.52.v20230823 to 9.4.55.v20240627 in /src
  • GEOS-11587 Update map fish-print-v2 2.3.2

For the complete list see 2.25.4 release notes.

Community Updates

Community module development:

  • GEOS-11517 Using various OGC APIs results in service enabled check related WARN logs
  • GEOS-11518 DGGS JDBC store SQL encoder should not force the timezone to CET
  • GEOS-11519 Make DGGS rHealPix tests run again
  • GEOS-11560 OGC API modules lack cql2-json in assembly
  • GEOS-11563 Allow configuring a DGGS resolution offset on a layer basis
  • GEOS-11565 Allow configuring the minimum and maximum DGGS resolution for a layer
  • GEOS-11579 DGGS modules prevent GeoServer startup if JEP is not installed

Community modules are shared as source code to encourage collaboration. If a topic being explored is of interest to you, please contact the module developer to offer assistance.

About GeoServer 2.25 Series

Additional information on GeoServer 2.25 series:

Release notes: ( 2.25.4 | 2.25.3 | 2.25.2 | 2.25.1 | 2.25.0 | 2.25-RC )

by Jody Garnett at October 29, 2024 12:00 AM