The Cambridge Station cycle park has its perk for map lover coming home by night
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.
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
by Jackie Ng (noreply@blogger.com) at November 12, 2024 01:46 PM
Harry shared this map that he spotted on his holiday in Brazil “I also saw this nice wall in a restaurant on Ilhabella which maybe scores better on the “maps as art” criteria.”
I like the way that the land is cut out of the plaster exposing the brick.
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!
- Twitter (X) 1 retweet, 7 likes
- Mastodon 3 boosts, 3 favorites
- LinkedIn 6 comments, 4 reposts
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.
November 11, 2024
Edwin Wisze shared this “A few of the meeting rooms during the Logius PI planning have a beautiful map as a carpet. Here are a few examples: New York and The Hague”
I love maps you can walk on, feels like the right scale for me.
Which is your favourite?
November 10, 2024
I found this Map Van on Portobello Road
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.
Elizabeth spotted this street art on her way to the Kunjapuri temple. A quick search suggests that it is the symbol for International Yoga Day but you already knew that didn’t you?
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.
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 :
I found this old T-shirt in a box in storage, long forgotten. This was a swag from my first employment.
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.
In a Mastodon thread about "GeoAI" today, I blurted out:
Uh huh. It's CyberGIS all over again.
We don't talk about CyberGIS anymore. I think it's going to be the same for "GeoAI".
November 07, 2024
Reinder shared this cartoon by Thiago Lucas which one the European Cartoon Award.
The absence of New Zealand from the map may be a cartographic omission or it might be one more reason to take refuge there.
November 06, 2024
I knew that a second Trump presidency was very possible, but I'm still surprised that most American voters chose this sociopath. It's super disturbing to see the veneer of decency entirely stripped away from this country. Apparently, this really is who we are.
Seen at Arles Photography Exhibition 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.
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
At the Cubic Theatre at the London Transport Museum, a play about Harry Beck and the story behind the London tube map.
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.
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 04, 2024
This car was found in Louhans, a small town in the Bresse region in France. The town is worth a visit for its market on Mondays.
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:
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
- Charette-Migneault, F., Avery, R., Pondi, B., Omojola, J., Vaccari, S., Membari, P., … & Sundwall, J. (2024). Machine Learning Model Specification for Cataloging Spatio-Temporal Models. In Proceedings of the 3rd ACM SIGSPATIAL International Workshop on Searching and Mining Large Collections of Geospatial Data (pp. 36-39).
- Graser, A., Jalali, A., Lampert, J., Weißenfeld, A., & Janowicz, K. (2024). MobilityDL: a review of deep learning from trajectory data. GeoInformatica, 1-33.
- Jakubik, J., Roy, S., Phillips, C., Fraccaro, P., Godwin, D., Zadrozny, B., … & Edwards, B. (2023) Foundation models for generalist geospatial artificial intelligence. arXiv preprint arXiv:2310.18660.
- Jalali, A., Graser, A., & Heistracher, C. (2023). Towards eXplainable AI for Mobility Data Science. arXiv preprint arXiv:2307.08461.
- Janowicz, K., Hitzler, P., Li, W., Rehberger, D., Schildhauer, M., Zhu, R., … & Currier, K. (2022). Know, Know Where, KnowWhereGraph: A densely connected, cross-domain knowledge graph and geo-enrichment service stack for applications in environmental intelligence. AI Magazine, 43(1), 30-39.
- Li, W., Arundel, S., Gao, S., Goodchild, M., Hu, Y., Wang, S., & Zipf, A. (2024). GeoAI for Science and the Science of GeoAI. Journal of Spatial Information Science, (29), 1-17.
- Liu, P., Zhang, Y., & Biljecki, F. (2024). Explainable spatially explicit geospatial artificial intelligence in urban analytics. Environment and Planning B: Urban Analytics and City Science, 51(5), 1104-1123.
- OGC Training Data Markup Language for Artificial Intelligence (TrainingDML-AI) Part 1: Conceptual Model Standard (2023)
- Zhang, L. (2020). Explainable Machine Learning for Activity Modeling in GeoAI. Doctoral dissertation, George Mason University.
November 03, 2024
Dr. Dawn Wright shared this treasure map from the Halloween Pumpkin Carving Contest winners at Esri.
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.
November 02, 2024
Our friend Marc Tobias spotted this map in a restaurant in Clerkenwell, London
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. |
Erik sent this picture from QGIS meetup in Bratislava. Put 5 map geeks in front of a map and you will get a heated discussion of cartography, projections and stuff, add some beer and it might go on for quite a while.
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
The perfect companion hanging on a backpack
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 Jody Garnett (noreply@blogger.com) at October 30, 2024 11:21 AM
Marc-Tobias asked “Is this a map (in the wild)? If so of what?”
The answer is Michigan, US and apparently they celebrate something called Plaidurday (massive bonus points to me for working this out). I am going to mark my calendar for next year and wear a check shirt.
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
How to contribute to GRASS GIS development: Guidance for new developers in the GRASS GIS Project.
The post How to contribute to GRASS GIS development appeared first on Markus Neteler Consulting.
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.
- GEOS-11557 CVE-2024-45748 High
See project security policy for more information on how security vulnerabilities are managed.
Release notes
New Feature:
- GEOS-11352 REST service for URL checks
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:
- GeoServer 2.25 User Manual
- GeoServer 2024 Roadmap Plannings
- Raster Attribute Table extension
- Individual contributor clarification
Release notes: ( 2.25.4 | 2.25.3 | 2.25.2 | 2.25.1 | 2.25.0 | 2.25-RC )