<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Scattered thoughts on social geolocation]]></title><description><![CDATA[<h2>Scattered thoughts on social geolocation</h2>
<a href="https://shkspr.mobi/blog/2026/07/scattered-thoughts-on-social-geolocation/" rel="nofollow noopener noreferrer"><span>https://</span><span>shkspr.mobi/blog/2026/07/scatt</span><span>ered-thoughts-on-social-geolocation/</span></a>

<p>I want to be able to <a href="https://shkspr.mobi/blog/2026/04/why-is-it-so-hard-to-passively-stalk-my-friends-locations/">share my location with my friends</a> on social media. Twitter (RIP) had a way to attach an optional location to a post. Facebook still lets me check in to venues. But neither ActivityPub (Mastodon) nor AT Protocol (BlueSky) allow me to do that.</p><p>I've been <a href="https://shkspr.mobi/blog/2024/01/rebuilding-foursquare-for-activitypub-using-openstreetmap/">banging on about this for a while</a> so was delighted to be invited to chat with the <a href="https://github.com/swicg/geosocial">GeoSocial Task Force</a> on <a href="https://www.w3.org/events/meetings/ed630a3d-7581-4053-9978-75949ad42f2a/">their monthly call</a>.</p><p>But, before I start, please remember that these proposals are not mandatory. If you don't want to share your location, then please don't share your location. This is an optional feature which shouldn't be used by people with a strong need for privacy.</p><p>We were primarily discussing the nascent <a href="https://swicg.github.io/geosocial/microsyntax.html">Geographical Microsyntax proposals</a>.</p><p>Firstly, I <em>love</em> the idea of being able to share my location. I want my friends to know I'm in town for a gig. I want people to think I'm cool because I'm seeing some experimental theatre. I want to virtue signal that I'm giving blood.</p><p>Similarly, I want to be able to find social media posts by location. What's happening right now in Paris? Did anyone else hear that sonic boom in London? Which cool people are also at this gig with me?</p><p>But, I do think these proposals have some issues which need to be addressed.</p><h2><a href="#user-research">User Research</a></h2><p>The primary thing missing from the proposal is any form of understanding what users want to do with a geotagged post.</p><p>You see a post like:</p><blockquote><p>Hanging out with friends. I just checked in to <u>Leicester Square</u>.</p></blockquote><p>What do you expect to happen when you click that link?</p><ul><li>See who is at the location?</li><li>Read more information about the place being discussed?</li><li>Find all posts at that specific address?</li><li>Discover posts which are <em>close</em> to there?</li><li>Something else?</li></ul><p>What other things do people want to do with geotagged posts?</p><ul><li>Find all posts within 5Km of me?</li><li>Discover users who have posted near me?</li><li>Get emergency alerts for the city I'm in?</li><li>See what's trending in a specific country?</li></ul><p>Without knowing what people might want to do with this information, it's rather hard to design a service which meets their needs.</p><h2><a href="#to-micro-or-not-to-micro">To micro or not to micro?</a></h2><p>Where I disagree with the proposals is the idea of using inline text as a form of microsyntax.</p><p>Proposals like "I am in /London/ eating ice-cream" or "Checked in to Leicester Square L:N123456" fail for a couple of reasons.</p><p>Things like #hashtags and @mentions developed organically on social networks before they were eventually adopted by the platforms themselves. It is rare that a top-down diktat can be used to tell people how they <em>should</em> be formatting their posts.</p><p>More importantly, people are <em>crap</em> at formatting things consistently! Every event I go to has people using <code>#Event</code> alongside <code>#Event2026</code> or <code>#Event26</code> or a hundred variations.</p><p>Even if users could format it consistently, names are ambiguous. Is <code>🌐:Paris</code> the one in France or <a href="https://en.wikipedia.org/wiki/Paris,_Texas_(film)">Texas</a>?</p><p>I'm strongly of the opinion that text is for text, not syntax.</p><h2><a href="#openness-%f0%9f%86%9a-centralisation">Openness <img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f19a.png?v=3d609fed383" class="not-responsive emoji emoji-android emoji--vs" style="height:23px;width:auto;vertical-align:middle" title="🆚" alt="🆚" /> Centralisation</a></h2><p>Saying that you're on a specific point on the globe doesn't always provide useful information. Even with altitude, it isn't always possible to work out if your in the Starbucks or the Costa next door. Do you want to say you're in a train station, or a distinct platform, or even a specific train journey?</p><p>There are various services which offer unique IDs per loosely-defined place.</p><p>Google Maps provides a <a href="https://developers.google.com/maps/documentation/places/web-service/place-id">Place ID</a> for every thing that it knows about. There's a similar service from <a href="https://foursquare.com/products/places-api/">FourSquare</a>.  But both of those are closed and proprietary systems - they can only be updated by the company that creates them.</p><p>Wikipedia's Wikidata has <a href="https://www.wikidata.org/wiki/Q676755">IDs for lots of places</a>, similarly OpenStreetMap has <a href="https://wiki.openstreetmap.org/wiki/Key:place">nodes with names</a> which can be used to identify locations.</p><p>But all of these suffer from the same flaw; they are centralised.</p><p>If <a href="https://killedbygoogle.com/">Google kills its service</a> then all those Place IDs die.</p><p>This has happened before. Yahoo used to run the <a href="https://en.wikipedia.org/wiki/WOEID">Where On Earth IDentifier</a> service but discontinued it.</p><p>While OSM and Wikipedia are great projects, they're still centralised. If you're banned from OSM, you can't create a new node.</p><p>So, to my mind, the <em>primary</em> way of identifying a place has to use a fully open, globally agreed, and unrestricted standard.</p><h2><a href="#location-plus-plus">Location Plus Plus</a></h2><p>The obvious choice is latitude and longitude as defined by <a href="https://www.linz.govt.nz/guidance/geodetic-system/coordinate-systems-used-new-zealand/geodetic-datums/world-geodetic-system-1984-wgs84">WGS 84</a>. It allows for arbitrary precision anywhere on the planet.</p><p>No one can stop you issuing lat/long just because a country is under sanctions. The standards community can't revoke your access to it. The co-ordinates are well understood by almost all software.</p><p>There are some alternatives. Google's <a href="https://maps.google.com/pluscodes/">Plus.Codes</a> build on top of lat/long to make something more human readable. But, crucially, human readability is <em>not</em> the issue here. This is metadata which should never be shown to a human. If a user interface wants to format a lat/long they can do so as a Plus.Code or any other format.</p><h2><a href="#geojson">GeoJSON</a></h2><p>There are dozens of <a href="https://wiki.ietf.org/en/group/geopriv/LocationFormats">competing ways to mark up a location</a>.</p><p>It seems sensible to me that, given most major social media protocols use JSON, adding <a href="https://geojson.org/">GeoJSON</a> would be the simplest way to add geographic information to a post's metadata.</p><p>At its most basic, a single "Point" can be shared like so:</p><pre><span><img src="https://shkspr.mobi/blog/wp-content/plugins/tempest-highlight/svg/json.svg" width="32" height="32" alt="" /><span> JSON</span></span><code><span>{</span>
    <span>"type"</span>: <span>"Feature"</span>,
    <span>"geometry"</span>: <span>{</span>
        <span>"type"</span>: <span>"Point"</span>,
        <span>"coordinates"</span>: <span>[</span>-0.13005,51.5103<span>]</span>
    <span>}</span><span>}</span></code></pre><p>It can have as much or as little precision as needed.</p><p>If the place being checked into has a name, it can also be added - this could be used for display purposes within the message</p><pre><span><img src="https://shkspr.mobi/blog/wp-content/plugins/tempest-highlight/svg/json.svg" width="32" height="32" alt="" /><span> JSON</span></span><code><span>{</span>
    <span>"type"</span>: <span>"Feature"</span>,
    <span>"geometry"</span>: <span>{</span>
        <span>"type"</span>: <span>"Point"</span>,
        <span>"coordinates"</span>: <span>[</span>-0.13005,51.5103<span>]</span>
    <span>}</span>,
    <span>"properties"</span>: <span>{</span>
        <span>"name"</span>: <span>"Leicester Square"</span>
    <span>}</span><span>}</span></code></pre><p>The <code>properties</code> can be as complex as the sender wants. For example it could add Wikidata references, OpenStreetMap IDs, telephone numbers, or some cool new thing which hasn't been invented yet.</p><p>Here's a maximalist example of checking in to a park:</p><pre><span><img src="https://shkspr.mobi/blog/wp-content/plugins/tempest-highlight/svg/json.svg" width="32" height="32" alt="" /><span> JSON</span></span><code><span>{</span>
    <span>"type"</span>: <span>"Feature"</span>,
    <span>"geometry"</span>: <span>{</span>
        <span>"type"</span>: <span>"Polygon"</span>,
        <span>"coordinates"</span>: <span>[</span>
        <span>[</span>
                <span>[</span>-0.1303791,51.5099976<span>]</span>,
                <span>[</span>-0.1295305,51.5100444<span>]</span>,
                <span>[</span>-0.1297077,51.510947 <span>]</span>,
                <span>[</span>-0.1308786,51.5105859<span>]</span>,
                <span>[</span>-0.1308893,51.5105793<span>]</span>,
                <span>[</span>-0.1303791,51.5099976<span>]</span>
            <span>]</span>
        <span>]</span>
    <span>}</span>,
    <span>"properties"</span>: <span>{</span>
        <span>"name"</span>: <span>"Leicester Square"</span>,
        <span>"WikiData"</span>: <span>"Q848912"</span>,
        <span>"OSM"</span>: <span>"4082589"</span>,
        <span>"GooglePlaceID"</span>: <span>"ChIJPcTFENIEdkgR94E58rgB69o"</span>,
        <span>"PlusCode"</span>: <span>"9C3XGV69+4X"</span>,
        <span>"Quinfrob"</span>: <span>"🌐89451_𰻝"</span>,
        <span>"address"</span>: <span>{</span>
            <span>"road"</span>: <span>"Leicester Square"</span>,
            <span>"neighbourhood"</span>: <span>"St. James's"</span>,
            <span>"quarter"</span>: <span>"East Marylebone"</span>,
            <span>"suburb"</span>: <span>"Covent Garden"</span>,
            <span>"city"</span>: <span>"City of Westminster"</span>,
            <span>"ISO3166-2-lvl8"</span>: <span>"GB-WSM"</span>,
            <span>"state"</span>: <span>"England"</span>,
            <span>"ISO3166-2-lvl4"</span>: <span>"GB-ENG"</span>,
            <span>"postcode"</span>: <span>"WC2H 7NA"</span>,
            <span>"country"</span>: <span>"United Kingdom"</span>,
            <span>"country_code"</span>: <span>"gb"</span>
        <span>}</span>
    <span>}</span><span>}</span></code></pre><h2><a href="#whats-next">What's Next</a></h2><p>My personal opinion is that the following needs to happen:</p><ul><li>Talk to some users - find out what they might use this for.</li><li>Work with privacy advocates to reduce possible harms (for example, being able to redact a location from a previously shared post).</li><li>Discuss with developers about how they'd work with this metadata.</li><li>Clients should start adding GeoJSON metadata to their posts, even if it can't be displayed yet.</li></ul><p>You can <a href="https://hedgedoc.socialweb.coop/hNLDxDqoQPaFlOf4aJ4E8g?view">read the minutes of the meeting</a> and I'd encourage you to <a href="https://www.w3.org/events/meetings/ed630a3d-7581-4053-9978-75949ad42f2a/">join the next call</a>.</p>

<a rel="tag" href="https://shkspr.mobi/blog/tag/activitypub/">#ActivityPub</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/bluesky/">#BlueSky</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/fediverse/">#fediverse</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/foursquare/">#FourSquare</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/geolocation/">#geolocation</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/json/">#json</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/open-standards/">#openStandards</a> <a rel="tag" href="https://shkspr.mobi/blog/tag/openstreetmap/">#OpenStreetMap</a>]]></description><link>https://citiverse.it/topic/d53deba4-4d4f-41e2-87ed-2423c43f6832/scattered-thoughts-on-social-geolocation</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 00:50:47 GMT</lastBuildDate><atom:link href="https://citiverse.it/topic/d53deba4-4d4f-41e2-87ed-2423c43f6832.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Jul 2026 11:34:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Scattered thoughts on social geolocation on Thu, 23 Jul 2026 22:50:09 GMT]]></title><description><![CDATA[<p><span><a href="/user/blog%40shkspr.mobi" rel="nofollow noopener">@<span>blog</span></a></span> In my opinion, we need to think about two different and not necessarily related objectives at this time:</p><ol><li>Identify an Activitypub standard for geolocation. For example, some software already manages geolocation (Mobilizon, Friendica, Flohmarkt, etc.), but these software don't recognize each other's geolocation parameters. The problem, as you've already highlighted, is entirely tied to searching across different federated instances, because search <strong>only</strong> works on content that's <strong>already</strong> been captured by yours.</li><li>Find a way to "localize" content. From this perspective, Activitypub groups can be used to manage "local groups" for cities, countries, regions, etc. In Italy, for example, I've created a federated forum (a <a href="https://poliversity.it/tags/NodeBB" rel="tag">#<span>NodeBB</span></a> instance) representing twenty regional categories and about a hundred city subcategories. Those connecting from the forum see the categories hierarchically, but those connecting from the Fediverse can see individual cities as a simple federated account: cities like <span><a href="https://citiverse.it/category/13/roma" rel="nofollow noopener">@<span>roma</span></a></span> or <span><a href="https://citiverse.it/category/100/venezia" rel="nofollow noopener">@<span>venezia</span></a></span>, but also regions like <span><a href="https://citiverse.it/category/29/toscana" rel="nofollow noopener">@<span>toscana</span></a></span>, or cities like <span><a href="https://citiverse.it/category/127/ivrea" rel="nofollow noopener">@<span>ivrea</span></a></span>. Those who live in the Fediverse can mention these groups, and the group account automatically shares posts mentioning them; those who follow these groups will see posts mentioning them reshared.</li></ol>]]></description><link>https://citiverse.it/post/https://poliversity.it/users/macfranc/statuses/116971733585413576</link><guid isPermaLink="true">https://citiverse.it/post/https://poliversity.it/users/macfranc/statuses/116971733585413576</guid><dc:creator><![CDATA[macfranc@poliversity.it]]></dc:creator><pubDate>Thu, 23 Jul 2026 22:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to Scattered thoughts on social geolocation on Wed, 22 Jul 2026 12:40:17 GMT]]></title><description><![CDATA[<p><span><a href="/user/blog%40shkspr.mobi">@<span>blog</span></a></span> </p><p>Cross-referencing to the post I just made on the microblog post with the summary of this blog post. <img
      src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f605.png?v=3d609fed383"
      class="not-responsive emoji emoji-android emoji--sweat_smile"
      style="height: 23px; width: auto; vertical-align: middle;"
      title="😅"
      alt="😅"
    /></p><p><a href="https://social.coop/@smallcircles/116963628874003173" rel="nofollow noopener"><span>https://</span><span>social.coop/@smallcircles/1169</span><span>63628874003173</span></a></p><p>PS. On the delightful fediverse experience curated list I have a separate category for <a href="https://social.coop/tags/GeoSocialNetworking" rel="tag">#<span>GeoSocialNetworking</span></a> ..</p><p><a href="https://delightful.coding.social/delightful-fediverse-experience/#geosocial-networking" rel="nofollow noopener"><span>https://</span><span>delightful.coding.social/delig</span><span>htful-fediverse-experience/#geosocial-networking</span></a></p>]]></description><link>https://citiverse.it/post/https://social.coop/users/smallcircles/statuses/116963673194151971</link><guid isPermaLink="true">https://citiverse.it/post/https://social.coop/users/smallcircles/statuses/116963673194151971</guid><dc:creator><![CDATA[smallcircles@social.coop]]></dc:creator><pubDate>Wed, 22 Jul 2026 12:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Scattered thoughts on social geolocation on Wed, 22 Jul 2026 11:42:53 GMT]]></title><description><![CDATA[<p><span><a href="/user/blog%40shkspr.mobi">@<span>blog</span></a></span> <br />As a user I would probably often want to see posts within a societal boundary, more than a radius around a (somewhat arbitrary) physical point. All posts in Osaka city for example; or posts from Okinawa prefecture.</p>]]></description><link>https://citiverse.it/post/https://fosstodon.org/users/jannem/statuses/116963447472566388</link><guid isPermaLink="true">https://citiverse.it/post/https://fosstodon.org/users/jannem/statuses/116963447472566388</guid><dc:creator><![CDATA[jannem@fosstodon.org]]></dc:creator><pubDate>Wed, 22 Jul 2026 11:42:53 GMT</pubDate></item></channel></rss>