标签: geodjango

Django - 确定地理坐标是否在圆圈内

django是否有任何可以查看地理坐标(十进制纬度/长度)并确定是否在具有一定半径的圆圈内(比如100公里)?

我有某种类型的数据,每个都有一个纬度/经度,我想在数据库中进行搜索,以查看该数据是否位于具有指定半径大小的圆内.

我本可以自己编写一些可以处理这个问题的东西,但是如果有一些已经写好的内容可以解决这个问题我会徘徊

python gis django geodjango geopy

4
推荐指数
1
解决办法
2048
查看次数

使用GeoDjango在坐标系之间转换

我正在尝试将坐标信息添加到我的数据库,添加django.contrib.gis对我的应用程序的支持.我正在编写一个south数据迁移,它从数据库中获取地址,并向Google询问坐标(到目前为止,我认为我最好的选择是geopy用于此).

接下来我需要将返回的坐标从WGS84:4326Google的坐标系转换为WGS84:22186我的坐标系.

我迷失在试图找到办法的GeoDjango文档中.到目前为止,我认为我需要这样做:

gcoord = SpatialReference("4326")
mycoord = SpatialReference("22186")
trans = CoordTransform(gcoord, mycoord)
Run Code Online (Sandbox Code Playgroud)

但后来,我不知道如何使用该CoordTransform对象..似乎是GDAL的数据对象使用的,但这对我想做的事情来说太过分了.

python django geolocation geodjango geopy

4
推荐指数
2
解决办法
4755
查看次数

使用tastypie从PointField返回纬度和经度值

使用django-tastypie v0.9.11 django 1.4.1geodjango.

在geodjango之前,我曾经将我的lat和lng值直接保存到我的模型中.然后,当我调用API时,我只是轻松地提取我的值.像这样的东西:

{
    "id": "1",
    "lat": "-26.0308215267084719",
    "lng": "28.0101370772476450",
    "author": "\/api\/v1\/user\/3\/",
    "created_on": "2012-07-18T14:33:31.081105",
    "name": "qweqwe",
    "updated_on": "2012-09-06T14:17:01.658947",
    "resource_uri": "\/api\/v1\/spot\/1\/",
    "slug": "qweqwe"
},
Run Code Online (Sandbox Code Playgroud)

现在我已经升级了我的webapp以使用geodjango,现在我将我的信息存储在PointField()中.现在,如果我对我以前制作的API进行相同的调用,我会回复此:

{
    "id": "1",
    "point": "POINT (28.0101370772476450 -26.0308215267084719)",
    "author": "\/api\/v1\/user\/3\/",
    "created_on": "2012-07-18T14:33:31.081105",
    "name": "qweqwe",
    "updated_on": "2012-09-06T14:17:01.658947",
    "resource_uri": "\/api\/v1\/spot\/1\/",
    "slug": "qweqwe"
},
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,点值不同,因此我的移动应用程序正在破碎.

我的问题是如何从点数字段中获取纬度和经度值,并像以前一样使用查询集返回它们?

python api django geodjango tastypie

4
推荐指数
1
解决办法
2908
查看次数

不接受使用django地理跨度关系过滤查询

我正在尝试使用与geodjango的地理跨度关系来过滤某些项目,但我不明白为什么它不起作用.考虑这个例子:

class Location(models.Model):
    name = models.CharField(max_length=32,)
    marker = models.PointField(srid=4326) # the marker
    objects = models.GeoManager()

class Item(models.Model):
    name =  models.CharField(max_length=200)
    location = models.ForeignKey(Location)


poly = Polygon(
[(0.02780914306640625, 52.158980248467095),
 (0.22350311279296875, 52.158980248467095),
 (0.22350311279296875, 52.253657959623055),
 (0.02780914306640625, 52.253657959623055),
 (0.02780914306640625, 52.158980248467095)]
)
Run Code Online (Sandbox Code Playgroud)

如果我查询("一个位置"是数据库中的现有位置)

Item.objects.filter(location__name__exact="A location")
Run Code Online (Sandbox Code Playgroud)

有用.

如果相反,我查询

Item.objects.filter(location__marker__within=poly)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

---------------------------------------------------------------------------
FieldError                                Traceback (most recent call last)
/home/mattions/.virtualenvs/ssouk_env/local/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in <module>()
----> 1 Item.objects.filter(location__marker__within=poly)

/home/mattions/.virtualenvs/ssouk_env/local/lib/python2.7/site-packages/django/db/models/manager.pyc in filter(self, *args, **kwargs)
    141 
    142     def filter(self, *args, **kwargs):
--> 143         return self.get_query_set().filter(*args, **kwargs)
    144 
    145     def aggregate(self, *args, **kwargs):

/home/mattions/.virtualenvs/ssouk_env/local/lib/python2.7/site-packages/django/db/models/query.pyc …
Run Code Online (Sandbox Code Playgroud)

django geolocation django-queryset geodjango

4
推荐指数
1
解决办法
1614
查看次数

Geodjango管理员,显示点域不作为地图

这可能是一个愚蠢的问题,但我找不到任何明确的答案.

如何更改Django Admin中的显示,以便Pointfield不会像OpenLayer Map那样显示,而是显示为常规输入字段.我需要查看long,lat进行调试..

我必须更改字段类型吗?小工具?

谢谢!

django admin point geodjango

4
推荐指数
1
解决办法
4620
查看次数

在GeoDjango Admin中禁用Openlayers地图

我正在使用Django 1.6和Postgres/PostGIS(GeoDjango).我注意到当我从1.5升级到1.6时,我无法再通过管理页面使用WKT添加空间数据.以前,我可以将要显示的几何体的WKT粘贴到文本框中.现在,当我转到管理页面时,会显示一个允许我编辑几何图形的地图,但我无法添加数据.

是否有一个简单的修复程序,允许我禁用显示此地图?

python django maps django-admin geodjango

4
推荐指数
1
解决办法
1190
查看次数

Django测试:创建测试数据库时出错:权限被拒绝复制数据库"template_postgis"

我正在设置Django项目running tests.但我得到以下错误:

Got an error creating the test database: permission denied to copy database "template_postgis"
Run Code Online (Sandbox Code Playgroud)

注意:我的默认应用程序的数据库工作正常.的issue is happening while running tests.

完整的堆栈跟踪如下:

moin@moin-pc:~/workspace/mozio$ python manage.py test --verbosity=3
nosetests --verbosity=3
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
Creating test database for alias 'default' ('test_my_db')...
Got an error creating the test database: permission denied to copy database "template_postgis"

Type 'yes' if you would like to try deleting the test database 'test_mozio_db_test', or 'no' to cancel: yes …
Run Code Online (Sandbox Code Playgroud)

python django postgis geodjango django-testing

4
推荐指数
1
解决办法
4044
查看次数

使用GeoDjango将geojson文件中的多边形数据导入PostGIS

我使用GeoDjango和PostGIS作为后端.我有几个geojson文件,其功能如下例所示.GeoDjango提供了导入形状文件和其他格式但geojson格式的信息.如何将这些geojson文件导入数据库?

  "features": [
{ "type": "Feature", "properties": { "SubName": "X", "SubSubName": "A" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 70.693828, 37.074496 ], [ 70.693828, 37.074496 ] ] ] } }
,
{ "type": "Feature", "properties": { "SubName": "X", "SubSubName": "B" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 70.502913, 27.065997 ],  [ 70.502913, 27.065997 ] ] ] } }
Run Code Online (Sandbox Code Playgroud)

我有两个核心要求:

  1. 使用D3JS Map库在Webportal上加载Subregion多边形
  2. 当我有一个lat-long时,找到该点存在于哪个多边形中,并从多边形属性中获取SubName和SubSubName.

如果有关于GeoDjango的PostGIS使用和导入文件的适当文档,那将是很棒的.

提前致谢.

django postgis geodjango django-1.10

4
推荐指数
1
解决办法
1682
查看次数

“无法找到SpatiaLite库。” Django的

我正在尝试使Django的SQLite3接受空间查询。本教程建议将其添加到设置中:

SPATIALITE_LIBRARY_PATH = 'mod_spatialite'
Run Code Online (Sandbox Code Playgroud)

产生此错误:

django.core.exceptions.ImproperlyConfigured:无法加载SpatiaLite库扩展“ mod_spatialite”,因为:找不到指定的模块。

我也尝试这样做:

SPATIALITE_LIBRARY_PATH = r'C:\\Program Files (x86)\\Spatialite\\mod_spatialite-4.3.0a-win-x86\\mod_spatialite-4.3.0a-win-x86\\mod_spatialite.dll'
Run Code Online (Sandbox Code Playgroud)

如果不添加此变量,则在迁移时会收到此错误:

django.core.exceptions.ImproperlyConfigured:无法找到SpatiaLite库。确保它在您的库路径中,或在设置中设置SPATIALITE_LIBRARY_PATH。

谢谢..

python sqlite django spatial geodjango

4
推荐指数
1
解决办法
1440
查看次数

Django AttributeError:“ DatabaseOperations”对象没有属性“ select”

我有一个GeoDjango实例连接到PostGIS数据库后端。当我查询此数据库中的表时,出现标题错误:

AttributeError: 'DatabaseOperations' object has no attribute 'select'
Run Code Online (Sandbox Code Playgroud)

如在其他地方建议的那样,我检查以确保我的local_settings.py文件指定了正确的数据库引擎:'ENGINE': 'django.contrib.gis.db.backends.postgis'。这在我的设置文件中已经是正确的。

您如何解决此问题?

django postgis geodjango python-2.7

4
推荐指数
1
解决办法
924
查看次数