geodjango在webgis中的应用(附pandas与RESTful)

geodjango模块在webgis中的应用

1.项目简介

项目主要应用django的geodjango模块及postgres数据库的空间数据扩展模块,对今后其它项目中的gis功能做基础储备。

2.涉及的软件及扩展包

  • django(包含geodjango)
  • postgres及postgis
  • geos扩展
  • gdal扩展
  • proj4扩展
  • django-rest-framework

3.已测试的功能

1.查询某个未知点在哪个国家

在url中输入相应的经纬度,以restful的规范进行处理,返回json格式的国家信息。其中国家信息添加到admin的管理平台上,可进行数据的各类基本操作。

2.判断某个点是否在某个多边形区域内部

从包含多边形边界点的excel表中读取点数据,形成一个多边形对象,判断点是否在多边形内部,返回结果为json数据,含true则在内部,反之在外部。

pandas模块在在django-restful-framework中的使用

1.项目简介

主要尝试在django-restful-framework中使用pandas,以便在数据处理、统计功能比较复杂时能够快速解决问题。

2.使用过程

2.1 新建pandas-test应用

python manage.py createapp pandas-test

2.2 引入django-pandas

pip install django-pandas

INSTALLED_APPS = [
    'django.contrib.admin',
      ......
    'pandas_test',
    'django_pandas'
]

2.3 数据库连接略

2.4 模型

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models

class Province(models.Model):
    name = models.CharField(max_length=10)
    def __unicode__(self):
        return self.name
 
class City(models.Model):
    name = models.CharField(max_length=5)
    province = models.ForeignKey(Province, related_name = "city")
    def __unicode__(self):
        return self.name
 
class Person(models.Model):
    firstname  = models.CharField(max_length=10)
    lastname   = models.CharField(max_length=10)
    visitation = models.ManyToManyField(City, related_name = "visitor")
    def __unicode__(self):
        return self.firstname + self.lastname

2.5 视图的做法

-- coding: utf-8 --

from future import unicode_literals

from django.shortcuts import render

from rest_framework.views import APIView

from rest_framework.response import Response

from rest_framework import status

from pandas_test.models import Person

from django_pandas.io import read_frame

import json

class  PersonList(APIView):
    def get(self, request, format=None):
        persons = Person.objects.all()
        person_df=read_frame(persons,index_col='id') 转为dataframe格式的数据
        person_js=person_df.to_json(orient="records") 转为json格式的数据
        p=json.loads(person_js) json转为对象
        return Response(p)`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,597评论 6 427
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 18,791评论 4 418
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 3,856评论 1 61
  • cookie猫阅读 312评论 0 0
  • 早晨七点多,当狂风敲响窗扉,发出吱嘎吱嘎的响声时,揉着惺忪的睡眼,赵小勾艰难地爬起床,气呼呼的重新拉好被狂风吹开...
    西苏白阅读 308评论 1 2