You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.5 KiB
Python

import json
import requests
def getData(url):
r = requests.get(url)
return r.json()
def convertData(data, msymbol="restaurant", msize="medium"):
data_dict = []
for d in data:
if d.get('longitude') and d.get("latitude"):
data_dict.append({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [float(d["longitude"]),
float(d["latitude"])]
},
"properties": {
"name": d.get("applicant", ""),
"marker-symbol": msymbol,
"marker-size": msize,
"marker-color": "#CC0033",
"fooditems": d.get('fooditems', ""),
"address": d.get("address", "")
}
})
return data_dict
def writeToFile(data, filename="data.geojson"):
template = {
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
},
},
"features": data }
with open(filename, "w") as f:
json.dump(template, f, indent=2)
print "Geojson generated"
if __name__ == "__main__":
data = getData("http://data.sfgov.org/resource/rqzj-sfat.json")
writeToFile(convertData(data[:350]), filename="trucks.geojson")