Hoi,
i’ve worked on a few map based apps over the last years and while map data is freely available (openstreetmap), photos of POIs (and additional POI info) are usually locked behind a pretty expensive api. i’d like to change that and build a website that allows people to upload CC0 licensed POI photos using atproto (with additional POI info maybe coming later).
i’ve been working on a prototyp, but i’m new to atproto and not sure what exactly my lexicon should look like, i’ve read the posts here regarding geo locations and found the geo.json and the fsq.json lexicons.
also looked into beaconbits which is really close to what i want (main things missing being the automatic permissive license and it being a bit too hard to upload lots of images imo) but i cloudnt find their lexicon and they seem to do images only by linking to a bsky post which i dont want to do (as otherwise if you upload lots of images you spam your bsky feed).
like someone mentioned in one of their posts one way is just to start doing something and then look how it goes, which i like, but still wanted to get some initial feedback on what i figured out so far and if that all makes sense.
here is my rough lexicon so far:
{
"lexicon": 0,
"id": "zz.yy.xx",
"description": "Geo pics",
"defs": {
"main": {
"type": "object",
"required": [
"images",
"location",
"mainPoiUri",
"license"
],
"properties": {
"images": {
"type": "array",
"items": {
"type": "ref",
"ref": "#image"
}
},
"location": {
"type": "ref",
"ref": "community.lexicon.location.geo"
},
"name": {
"type": "string",
"description": "The name of the location."
},
"mainPoiUri": {
"type": "ref",
"ref": "#poi",
"description": "main uri to map provider"
},
"otherPoiUris": {
"type": "array",
"items": {
"type": "ref",
"ref": "#poi"
}
},
"license": {
"type": "string",
"description": "image license default to CC0"
},
"attribution": {
"type": "string",
"description": "what to put into attribution"
}
}
},
"image": {
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 1000000
},
"aspectRatio": {
"type": "ref",
"ref": "app.bsky.embed.defs#aspectRatio"
},
"alt": {
"type": "string",
"description": "Alt text description of the image, for accessibility."
}
}
},
"poi": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "uri to osm or other map data provider, in the format of {provider}://{type}//{id} e.g. osm://node/XYZ"
}
}
}
}
}
questions:
- regarding the license, is it enough if i just mention on my app that all uploaded photos are CC0 and that people should only upload photos they own the rights too? i’ve added a license field so people could in theory also upload images with a different license later on.
- is setting a main poi uri (+ and optional list of other uris) like i did a good idea?
tips and feedback welcome!