I played around with something very similar to what you're asking not too long ago. Using the Meraki Scanning API and a modified version of cmxreceiver-python that @DexterLaBora created I was able to use geojson.io to plot client devices on a map.
The cmxreceiver geojson example it doesn't quite convert to geojson format correctly (and it doesn't overwrite the key correctly) so I had to modify that to output the correct syntax. You can compare what I did with the original script (it's the mongoDB version of the script):
def save_data(data):
# print("---- RECEIVING CMX DATA ----")
# CHANGE ME - send 'data' to a database or storage system
# pprint(data, indent=1)
data["secret"] = "hidden"
data["geoJSON"] = {"type": "FeatureCollection", "features": []}
for i in data["data"]["observations"]:
if i["location"] is None:
print(i["clientMac"] + " is NONE location... Skipping!")
continue
lat = i["location"]["lat"]
lng = i["location"]["lng"]
clientmac = i["clientMac"]
data["geoJSON"]["features"].append({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [lng, lat]
},
"properties": {
"name": clientmac
}
})
For my script I just copied a single AP report to the clipboard, and then exited the script (not shown). I then had to manually paste that geojason formatted output into geojson.io to plot the client devices.
Like I said, this was just a PoC 😉
For your ask specifically, the RSSI data for each client is included in the scanning API report from an AP, so you have that available in whatever solution you end up building. I discarded it in my code, but you'll want to add that (probably into the "properties" field of the geojson).
Good luck!