I like searching for POIs via a query language on Overpass. My queries tend to be quite simple - “get all amenities of x type, in y area that have z tag”. The rendered map showing matching POIs is a nice-to-have, but not completely necessary.

What is the best way to do this offline, on Linux? (ideally using software already packaged for Debian, but that’s not vital).

I’m imagining a REPL that I can pass a downloaded map to, and then can query and see the results (in an ideal world, rendering them too).

It seems database schemas are close to what I want, but they seem to be designed more for people doing large scale complex queries and building bespoke databases just with the information they want.

Are these tools a good fit for my use case, or is there is a better/simpler way?

  • balsoft@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    2 days ago

    I wish there was a way to subscribe to post comments on lemmy - I was looking for something like this myself.

    • BarHocker@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      I am using the “favourite/save” function similar to this. I do not get noifications but I can go through my saves every now and then.

    • HubertManne@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      not sure about lemmy but there is a bell icon in piefed that I think subscribes to posts. I mention because its easy to miss.

  • schnurrito@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    2 days ago

    How big are the “downloaded maps”?

    JOSM can do fairly complex queries with its search feature, maybe that satisfies your needs; but if you’re dealing with very large areas, they might overwhelm JOSM and not load in it.

    ETA: of course “downloaded maps”, if you mean .osm files, are just XML files, so it’s completely trivial to write simple scripts to search through them oneself

    • ambitiousslab@feddit.ukOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 day ago

      Thank you for the tips! I should have been more precise in my question. The downloaded maps are ~150MB, in PBF format (although I would have been happy to use any other standard format if needed). I went with osmium tags-filter in the end, and it seems to be working well.

  • MoonMelon@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Can osmium-tool do what you want?

    For example if I go here and export an osm file as pittsburg.osm: https://www.openstreetmap.org/export#map=18%2F40.440748%2F-79.999822

    Then I run osmium tags-filter pittsburg.osm n/amenity=library -o out.osm

    I get an out.osm with a bunch of libraries in it:

    <?xml version='1.0' encoding='UTF-8'?>
    <osm version="0.6" generator="osmium/1.18.0">
      <bounds minlat="40.438994" minlon="-80.003256" maxlat="40.442501" maxlon="-79.996389"/>
      <node id="367964200" version="3" timestamp="2024-05-21T20:41:15Z" uid="3199858" user="Mateusz Konieczny - bot account" changeset="151646829" lat="40.4417942" lon="-79.9973275">
        <tag k="addr:state" v="PA"/>
        <tag k="amenity" v="library"/>
        <tag k="ele" v="227"/>
        <tag k="gnis:feature_id" v="2429945"/>
        <tag k="name" v="Downtown and Business Branch Carnegie Free Library of Pittsburgh"/>
        <tag k="source" v="USGS Geonames"/>
      </node>
      <node id="367964584" version="4" timestamp="2024-05-21T20:41:32Z" uid="3199858" user="Mateusz Konieczny - bot account" changeset="151646829" lat="40.4397308" lon="-80.0008734">
        <tag k="addr:state" v="PA"/>
        <tag k="amenity" v="library"/>
        <tag k="ele" v="223"/>
        <tag k="gnis:feature_id" v="2430651"/>
        <tag k="name" v="Point Park University Library"/>
        <tag k="source" v="USGS Geonames"/>
      </node>
      <node id="367964938" version="3" timestamp="2024-05-21T20:42:16Z" uid="3199858" user="Mateusz Konieczny - bot account" changeset="151646829" lat="40.4392024" lon="-79.9972654">
        <tag k="addr:state" v="PA"/>
        <tag k="amenity" v="library"/>
        <tag k="ele" v="233"/>
        <tag k="gnis:feature_id" v="2430211"/>
        <tag k="name" v="Carnegie Library of Allegheny"/>
        <tag k="source" v="USGS Geonames"/>
      </node>
      <node id="2127151495" version="3" timestamp="2024-05-21T20:45:12Z" uid="3199858" user="Mateusz Konieczny - bot account" changeset="151646829" lat="40.4407273" lon="-79.9997963">
        <tag k="addr:state" v="PA"/>
        <tag k="amenity" v="library"/>
        <tag k="ele" v="224"/>
        <tag k="gnis:feature_id" v="2430637"/>
        <tag k="name" v="Pittsburgh Downtown Branch Library"/>
        <tag k="source" v="USGS Geonames"/>
      </node>
    </osm>
    
  • gkak.laₛ@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    I could’t find anything with a quick search, but maybe you could run the API server in an application container (e.g. Docker)? 🤔

    For more simple use cases, some apps on Flathub might be enough, for example Comaps

    (Also, I haven’t used JOSM in a while, but it might be worth checking that out as well to see if it can do want you want)

    • ambitiousslab@feddit.ukOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Thank you. Of those I think JOSM is the most appealing, if it can directly show the results on the map. I’ll give it a go later just out of interest.

      I also gave osmium tags-filter a go and it’s meeting my needs for now.

    • ambitiousslab@feddit.ukOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      I spent quite a while browsing your brewery map earlier, very cool!

      It is probably overkill for me at the moment, but it’s good to know if my needs ever scale up dramatically. Thank you!

  • SomeoneElse@en.osm.town
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    @ambitiousslab Just follow one of the “server” guides at switch2osm.org, but don’t bother with the rendering bit.
    You can add extra database columns easily (if you want extra keys).
    “on Linux” might cover anything from a greeting card to a supercomputer, but assuming you’re on something resempling a PC and don’t want to query the entire world, this should work.

    • ambitiousslab@feddit.ukOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Thanks for the tip! Your assumptions are correct.

      Someone else suggested osmium tags-filter on the downloaded PBF files (which are ~150 MB), and that’s working well at the moment. I’ll keep this in mind as I’m presuming that importing into a database will be more efficient in case I ever increase the size of the map I’m working with.