我想创建具有可点击区域的内部空间的平面图。我的第一个想法是研究 GeoDjango,因为它是 Django的地图应用程序。但考虑到依赖关系、学习曲线和整体复杂性,我担心我可能会试图用火箭筒打击苍蝇。
我应该为此使用 GeoDjango,还是应该将整数列表存储在数据库字段中?
编辑:平面图相当简单;一组墙壁和工作站,能够定义工作站占用多少空间的区域,从而允许定义办公室以及开放式布局。
恕我直言,使用 GeoDjango 进行平面图并不是一个坏主意。但是,如果您的数据没有太大变化并且数据量(房间、区域、工作站……)不是很大,那么您可能不需要数据库和完整的 GeoDjango 堆栈。
一个更简单的解决方案是直接使用OpenLayers和一个(可能是扫描的)平面图的图像作为背景层。OpenLayers 还允许您定义处理“鼠标悬停”或单击事件的区域和点(标记)。
将 OpenLayers 用于平面图的一个示例是通过 Open Layers 的办公室平面图。
我会说为此目的使用 GeoDjango 绝对是矫枉过正。
它可以简单地使用图像映射或 Canvas/SVG 或 Flash 来实现额外的漂亮点:)
平面图多久更改一次?根据您的描述,带有图像映射的简单图像就足够了。
使用 GeoDjango 的一个很好的动机可能是:
the access to the geographical cooridinates backend,
并且您不会只生成具有任意比例的美丽图像,而是生成对象,geo-oriented
如果您打算将创建的计划用于indoor navigation
.
我会考虑强烈使用 GeoDjango,以及一些支持 GeoJSON 的 OpenLayers。