蜥蜴网站的基本地图设置
lizard-map的Python项目详细描述
蜥蜴地图
蜥蜴地图为使用蜥蜴用户界面的应用程序提供基本的地图交互。我们是在 nelen&schuurmans 我们的地理位置 信息网站(含水管理信息)。
它提供:
- openlayers(map javascript libary)地图显示和服务器端地图 生成(mapnik的wms功能)。背景图是可配置的。
- "工作区"交互模型:将可映射项拖到工作区中,然后 它们会被展示出来。工作区存储在Django数据库中。
- 附加到每个工作区的"拼贴",用于在地图上存储选定的信息 项目(如图表)。
- 一种扩展机制,将或多或少的任意映射源插入 工作区,以便显示、搜索等。
翻译状态:
核心概念:工作区
工作区项是可以在地图上显示的东西。a 工作区 是实际显示的工作区项的集合。
有两种类型的工作区:
- 编辑工作区:每个会话/用户都有自己的工作区。这个 工作区可以编辑。
- 存储工作区。待办事项:额外信息。
工作区项需要知道如何显示自身,如何搜索项 当你点击地图等。让它在任意地图上工作 源,您需要配置适配器。适配器有一个 层() 返回mapnik层的方法,用于搜索和 所以,
- 将适配器注册为 特定名称。
- 添加工作区项时,将传入适配器名称和可选的 配置适配器的json片段。
工作区项跟踪此适配器及其配置区域并使用 用于生成地图、搜索等。
拼贴
工作区项通常会导致多个区域或点。如果你点击 这样的一点,你通常会得到一个额外的信息弹出窗口。如果你想的话 比较这些信息中的几个"片段",您可以将它们放在 拼贴 。在gui中,这称为"selectie"。
点击拼贴会弹出一个包含所有收集到的信息的弹出窗口 在那个弹出窗口中。
互动
其中包括一些用于工作区交互的javascript。潜力 可以将工作区项拖放到工作区中以添加它们。工作空间 项目可以重新排序。你可以把它们拖到垃圾桶里。
依赖关系
几乎所有的依赖项都列在我们的setup.py中,因此它们被拉入 自动。不过,并不是所有的安装都像鸡蛋那么好。你可能是 小精灵请在系统范围内使用操作系统自己的打包系统安装它们。
您可以强制BuildOut将系统范围内安装的软件包与 osc.recipe.sysegg 配方。 示例配置:
[buildout] ... parts = sysegg ... [sysegg] recipe = osc.recipe.sysegg force-sysegg = true eggs = PIL matplotlib simplejson pyproj
开发安装
第一次,您必须运行"bootstrap"脚本来设置setuptools 建造:
$> python bootstrap.py
然后运行buildout设置所有设置:
$> bin/buildout
(在Windows上称为 bin\buildout.exe )。
当你或其他人在 setup.py 或 buildout.cfg
当前包作为"开发包"安装,因此 .py文件中的更改是自动可用的(就像在python中一样 setup.py开发)。
如果您想使用其他包的主干签出(而不是释放 版本),将它们作为"svn external"添加到 local_checkouts/ 目录中 并将它们添加到buildout.cfg中的 develop= 列表中。
测试始终可以使用 bin/test 或 bin\test.exe
外部依赖性
使用蜥蜴地图的完整网站的依赖关系最好表示为 ubuntu/debian包依赖项:build essential,python2.6-dev,apache2, libjpeg dev、python imaging、python matplotlib、python mapnik、python scipy, libapache2 mod wsgi、python gdal、spatialite bin、python-pysqlite2, python pyproj.
升级到Lizard 3
将应用程序转换为Lizard 3的简短摘要。
- 将旧模板标记工作区替换为工作区编辑和 拼贴编辑(见下文)。
- 查看url.py以查看旧的蜥蜴地图视图。替换为新的或 删除.
- 迁移
- 使用其中一个视图类升级到基于类的视图 (即AppView)。在谷歌上可以找到一个很好的描述 "基于类的视图重新显示"。您可以将蜥蜴地图视图视为 示例也一样。
站点集成
必须执行以下步骤才能使用 蜥蜴地图/工作区概念。
在某处安装蜥蜴地图。(在setup.py中添加"蜥蜴地图": 安装需要)
将"蜥蜴地图"添加到您的设置中。py:已安装的应用程序。
在URL中添加一个条目。py:
import lizard_map.urls (r'^map/', include(lizard_map.urls)),
使用其中一个视图,即AppView。
示例视图:
from lizard_map.views import AppView class MyAppView(AppView): template_name = 'my_app/template.html'
示例模板:
{% extends "lizard_map/wms.html" %} {% load workspaces %} {% block subtitle %} (page name) {% endblock %} {% block sidebar %} <div id="iconbox" class="sidebarbox sidebarbox-stretched iconlist"> <h2>Apps</h2> <ul> <li> <a href="/address/" class="lizard-map-link"> <img src="{{ STATIC_URL }}lizard_ui/app_icons/meetgegevens.png" /> <div>App</div> </a> </li> </ul> </div> {% workspace_edit view.workspace_edit %} {% collage_edit view.collage_edit %} {% endblock %}
将此视图添加到您的url.py:
< Buff行情>导入我的应用程序视图
(r'^$',my_app.views.my app view.as_view()),
运行syncdb/migrate开始测试。
通过加载"背景地图"设备添加和配置背景地图。
启动开发服务器。
设置
可以在settings.py中设置某些默认日期范围设置。所有 设置是可选的:
START_YEAR = 2000 # Defaults to today - 7 years END_YEAR = 2010 # Defaults to today + 3 years. # Define default period 1..5 # From daterange.py: # PERIOD_DAY = 1 # PERIOD_TWO_DAYS = 2 # PERIOD_WEEK = 3 # PERIOD_MONTH = 4 # PERIOD_YEAR = 5 # PERIOD_OTHER = 6 DEFAULT_PERIOD = 5 # Defaults to 1 # If DEFAULT_PERIOD = 6, define these DEFAULT_START_DAYS = -20 # Defaults to -1000 DEFAULT_END_DAYS = 1 # Defaults to 10
通过添加跟踪,您可以将Google Analytics添加到您的站点 代码:
GOOGLE_TRACKING_CODE = 'AA-12345678-0'