Getting all arenas

 To generate a response containing a representation of all arenas, a query is made using the SQLAlchemy ORM. To convert the query results into GeoJSON, a list comprehension is used to generate a list of dictionaries that describe each arena returned from the ORM query. The resulting list (data) is then added to a dictionary, which is converted from a Python dictionary to a JSON object using the jsonify function:

@app.route('/nba/api/v0.1/arena', methods=['GET'])
def get_arenas():
arenas = session.query(Arena).all()
data = [{"type": "Feature", "properties":{"name":arena.name, "id":arena.id},
"geometry":{"type":"Point", "coordinates":[round(arena.longitude,6), round(arena.latitude,6)]},
} for arena in arenas]
return jsonify({"type": "FeatureCollection","features":data})

The name and id field is returned, as well as the longitude and latitude. To limit the amount of data transmitted, the latitude and longitude are rounded to 6 decimals.  The low amount of precision required to describe the location of an arena makes this a reasonable limitation. While point data types are easier to return given that they consist of only two points, producing less data, polygon and polyline data are much larger and require more precision.

Compared to loops, list comprehensions decrease the processing time required for iterating over lists. Learn more about list comprehensions here:
https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions. 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset