Có ai có thể cung cấp bất kỳ mã mẫu nào cho Flask với GeoAlchemy không?Bình với mã mẫu GeoAlchemy
Trả lời
Sử dụng SQLAlchemy 0.8, Flask-SQLAlchemy và Geoalchemy 2: truy vấn
from app import db
from geoalchemy2.types import Geometry
class Point(db.Model):
"""represents an x/y coordinate location."""
__tablename__ = 'point'
id = db.Column(db.Integer, primary_key=True)
geom = db.Column(Geometry(geometry_type='POINT', srid=4326))
mẫu:
from geoalchemy2.elements import WKTElement
from app import models
def get_nearest(lat, lon):
# find the nearest point to the input coordinates
# convert the input coordinates to a WKT point and query for nearest point
pt = WKTElement('POINT({0} {1})'.format(lon, lat), srid=4326)
return models.Point.query.order_by(models.Point.geom.distance_box(pt)).first()
Một cách để chuyển đổi kết quả để tọa độ x và y (chuyển đổi sang GeoJSON và trích xuất tọa độ):
import geoalchemy2.functions as func
import json
from app import db
def point_geom_to_xy(pt):
# extract x and y coordinates from a point geometry
geom_json = json.loads(db.session.scalar(func.ST_AsGeoJSON(pt.geom)))
return geom_json['coordinates']
Nếu bạn không bị giới hạn sử dụng Flask, bạn có thể muốn dùng thử MapFish, dựa trên giá treo và sử dụng GeoAlchemy.
Bạn có thể sử dụng nó với Flask-SQLAlchemy, nhưng bạn có thể sử dụng nó với SQLAlchemy đơn giản. Chỉ cần dịch sample models from GeoAlchemy thành Flask-SQLAlchemy. Một cái gì đó như thế này:
class Spot(db.Model):
__tablename__ = 'spots'
id = db.Column(Integer, primary_key=True)
name = db.Column(Unicode, nullable=False)
height = db.Column(Integer)
created = db.Column(DateTime, default=datetime.now())
geom = db.GeometryColumn(Point(2))
Tôi chưa thử nghiệm mã, nhưng nó phải là một phiên mã công bằng.
Mã này không hoạt động: nó cung cấp cho bạn đối tượng 'AttributeError: 'SQLAlchemy' không có thuộc tính 'GeometryColumn'' – jsalonen
from myapp import db
from geoalchemy import GeometryColumn, Point
class FixXX(db.Model):
__tablename__ = 'fixXX'
fix_pk = db.Column(db.Integer, primary_key=True)
fix = db.Column(db.String)
geometry = GeometryColumn(Point(2, srid=4326))
GeometryDDL(FixXX.__table__)
- 1. Biểu mẫu bình thường (dọc) bên trong mẫu ngang với Twitter Bootstrap
- 2. Đối sánh mẫu Bất bình đẳng
- 3. bình đẳng với Double.NaN
- 4. pymongo với bình
- 5. Phê bình mã Scala của tôi
- 6. Phục vụ hình ảnh với bình
- 7. ExtJS - Mẫu gửi mã
- 8. MySQL: trung bình với nulls
- 9. Các hàm nguyên mẫu khác với các hàm bình thường trong javascript như thế nào?
- 10. Mẫu mã NetBeans $ {date}?
- 11. Trang lật mã mẫu
- 12. Mã mẫu UISearchBar
- 13. WWDC 2010 Mã mẫu
- 14. Sử dụng liên kết bình thường để gửi biểu mẫu
- 15. cách truy cập dữ liệu biểu mẫu bằng bình?
- 16. Ngụ ý bình đẳng trong kết hợp mẫu Haskell
- 17. Django - So sánh mã mẫu với cơ sở dữ liệu
- 18. Khi nào @SessionAttributes trong SpringMVC bị xóa? (Với mẫu mã)
- 19. Tôi không nhận được NSPersistentStoreDidImportUbiquitousContentChangesNotification (với mẫu mã)
- 20. Sự cố với mã hóa trong các mẫu Django
- 21. Trả lại mã trạng thái HTTP 201 trong bình
- 22. Kiểm tra sự bình đẳng với NSNull
- 23. "Bình thường hóa" mã băm của BigDecimal: howto?
- 24. ffmpeg mã hóa mẫu muốn?
- 25. hình thức rendering với bình + wtform
- 26. sử dụng bình-đăng nhập với postgresql
- 27. Chuỗi bình đẳng với xử lý vô
- 28. Mã PHP trong mẫu FatFree
- 29. bình luận Unideal với NERD_Commenter, bình luận javascript tập tin nhúng html
- 30. "CHỌN TOP 1" bình đẳng cho người viết mã?
Để làm gì đặc biệt? –