资讯专栏INFORMATION COLUMN

Django ElasticSearch Ionic 打造 GIS 移动应用 —— 架构设计

tianyu / 1697人阅读

摘要:采用了的软件设计模式,即模型,视图和控制器。并于年月在许可证下发布。这套框架是以比利时的吉普赛爵士吉他手来命名的。在中被普遍使用,甚至包括配置文件和数据模型。提供了一个免费且开源的移动优化,和组件库,来构建高交互性应用。基于构建和优化。

搜索引擎是个好东西,GIS也是个好东西。当前还有Django和Ionic。最后效果图

构架设计

对我们的需求进行简要的思考后,设计出了下面的一些简单的架构。

GIS架构说明 —— 服务端

简单说明:

用户在前台或者后台创建数据。

在model保存数据的时候,会调用Google的API解析GPS

在haystack的配置中设置实时更新,当数据创建的时候自动更新索引

数据被ElasticSearch索引

下面是框架的一些简单的介绍

Django
  

Django 是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

  

Django 的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don"t Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。

首先考虑Django,而不是其他Node或者Ruby框架的原因是:

内置认证系统

内置CSRF

当然这是其他框架也所拥有的,主要特性还有:

一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。

一套协助创建地理信息系统(GIS)的基础框架

最后一个才是亮点,内置GIS,虽然没怎么用到,但是至少在部署上还是比较方便的。

Haystack
  

Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify your code.

Haystack是为Django提供一个搜索模块blabla..,他的主要特性是可以

  

write your search code once and choose the search engine you want it to run on

也就是说你只需要写你的代码选择你的搜索引擎就可以工作了。

ElasticSearch

在上面的Haystack提供了这些一堆的搜索引擎,当然支持地点搜索的只有SolrElasticSearch,他们支持的空间搜索有:

within

dwithin

distance

order_by(‘distance’)

polygon

在文档上没有写Solr的polygon搜索,但是实际上也是支持的(详细见这篇文章: google map solr polygon 搜索。

至于为什么用的是ElasticSearch,是因为之前用Solr做过。。。

GIS架构说明 —— 客户端 简单说明 —— GET

当我们访问Map View的时候,会调用HTML5获取用户的位置

根据用户的位置定位,设置缩放

根据用户的位置发出ElasticSearch请求,返回结果中带上距离

显示

简单说明 —— POST

用户填写数据会发给Django API,并验证

成功时,存入数据库,更新索引。

Ionic
  

Ionic提供了一个免费且开源的移动优化HTML,CSS和JS组件库,来构建高交互性应用。基于Sass构建和AngularJS 优化。

用到的主要是AngularJS,之前用他写过三个APP。

Django REST Framework

与Django Tastypie相比,DRF的主要优势在于Web界面的调试。

其他

因为选的是比较熟悉的技术栈,所以也只花了不到两天的业余时间完成的。或许,这也是全栈程序员的优势所在。

服务端代码: https://github.com/phodal/django-elasticsearch

客户端代码: https://github.com/phodal/ionic-elasticsearch

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34032.html

相关文章

  • Django ElasticSearch Ionic 打造 GIS 移动应用 —— 架构设计

    摘要:采用了的软件设计模式,即模型,视图和控制器。并于年月在许可证下发布。这套框架是以比利时的吉普赛爵士吉他手来命名的。在中被普遍使用,甚至包括配置文件和数据模型。提供了一个免费且开源的移动优化,和组件库,来构建高交互性应用。基于构建和优化。 搜索引擎是个好东西,GIS也是个好东西。当前还有Django和Ionic。最后效果图 showImg(http://www.phodal.com/s...

    weapon 评论0 收藏0
  • 地图移动应用实战 —— Django Haystack ElasticSearch 环境准备

    摘要:在一篇中,我们介绍了打造移动应用架构设计。接着,我们就开始实战了,内容也很简单。准备创建虚拟环境创建项目为了方便,这里用的是,相比的主要优势是,以后扩展方便。但是对于也是可以的。则是配置搜索引擎用的。 在一篇中,我们介绍了 《Django ElasticSearch Ionic 打造 GIS 移动应用 —— 架构设计》。接着,我们就开始实战了,内容也很简单。 Django GIS准备...

    oujie 评论0 收藏0
  • 地图移动应用实战:Ionic ElasticSearch 搜索服务

    摘要:在上一篇移动应用实战构建中,我们构建了我们的服务端,可以通过搜索搜索到结果,这一篇,我们来构建一个简单的搜索。运行如果是要在真机上运行,需要处于同一网段,或者是部署到服务器上。其他服务端代码客户端代码 在上一篇《GIS 移动应用实战 —— Django Haystack ElasticSearch 构建》中,我们构建了我们的服务端,可以通过搜索搜索到结果,这一篇,我们来构建一个简单的搜...

    neuSnail 评论0 收藏0
  • Github连击200天(1)——ShowCase

    摘要:今天是我连续泡在上的第天,也是蛮高兴的,终于达了故事的背影是去年国庆完后要去印度接受毕业生培训就是那个神奇的国度。但是在去之前已经在项目待了九个多月,项目上的挑战越来越少,在印度的时间又算是比较多。管理依赖。。。。 今天是我连续泡在Github上的第200天,也是蛮高兴的,终于达了: showImg(http://www.phodal.com/static/media/uploads...

    gaomysion 评论0 收藏0
  • 技术文章写作及运营的技巧:分析篇 | 什么样的文章受欢迎?

    摘要:值得注意的是,文章在微博上的传播时间比较短。由于我的粉丝数量还不是非常多,我只能从中挑选中阅读量最高的一篇文章。在自己的关注人数上升后,再转到这些问题上,要不会吃力不讨好。 对于以技术为核心的技术博客来说,人们是冲着他们需要的内容去的,绝大多数情况下都不是在闲逛。如果你的网站里没有他想要的东西的话,他便会离开,人们是出于目的去搜索,基于动机,而不是无聊的在闲逛。无聊的话,他们更多的会去...

    monw3c 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<