标签: postgis

如何在PostGIS中找到两个几何图形之间的路线?

我已使用 .osm 地图数据将一些 osm 地图数据导入到我的 PostGIS 数据库中osm2pgsql

这些是我的桌子:

在此输入图像描述

在 PostGIS 表中查找 2 点之间的路线的最佳方法是什么?

谢谢

gis postgresql postgis openstreetmap

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

针对纬度/经度值的 Postgis 查询 ST_DWithin

我有一个包含locations以下列的表格:

  • latitude
  • longitude

现在我想查询给定纬度/经度点的特定半径内的所有条目。

SELECT * FROM locations
WHERE ST_DWithin(
    ST_MakePoint(longitude, latitude),
    ST_MakePoint(-0.63098, 51.18291),
    100
);
Run Code Online (Sandbox Code Playgroud)

上面的查询解释了我作为输入的数据以及我必须查询的数据。

有什么想法吗?

postgresql postgis

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

如何在谷歌地图的绘图管理器图标面板上注册点击侦听器?

我已经成功使用谷歌地图绘图管理器。现在我面临一个问题。图中显示了折线和多边形两种形状。我想在单击这些图标时仅显示一个警报,即单击多边形时显示消息“单击多边形”,单击线条时显示消息“单击折线”。图标图像在这里

javascript google-maps postgis google-maps-api-3

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

postgis上的几何多边形到经纬度

我需要将 potsgres 几何数据类型转换为经纬度。

这是我的桌子 在此输入图像描述

geom 列存储坐标,但它们不是人类可读的。

我只是不知道如何获得构成多边形的每个点。

几何数据类型有一些输出选项https://postgis.net/docs/reference.html#Geometry_Outputs

我需要每个点很长时间,因为我必须在这段代码中使用它们来定义和渲染谷歌地图上的多边形

$coords = [
          new LatLng(['lat' => 25.774252, 'lng' => -80.190262]),
          new LatLng(['lat' => 18.466465, 'lng' => -66.118292]),
          new LatLng(['lat' => 32.321384, 'lng' => -64.75737]),
        ];

        $polygon = new Polygon([
          'paths' => $coords
        ]);
Run Code Online (Sandbox Code Playgroud)

问题是我无法访问经纬度来定义构成多边形的点。

我正在使用 YII2、yii2-google-maps 扩展、PostGis Postgress。

php postgresql postgis google-maps-api-3 yii2

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

如何求点到多边形的最短距离?

其实就是标题中的问题。

有一个表(osm_buildings),其中包含建筑物及其多边形的地址。并且有一个点,您需要找到距离该点最近的多边形。

求出点​​之间的距离非常简单且可预测,但是如何正确且最重要的是快速求出点到多边形的距离呢?

postgresql postgis distance

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

AttributeError:模块“django.db.models”没有属性“MultiPolygonField”

我面临的问题是:

AttributeError: module 'django.db.models' has no attribute 'MultiPolygonField'. 
Run Code Online (Sandbox Code Playgroud)

当我尝试时它被 django 抛出makemigrations。旧的迁移文件(仅完成了 1 个 makemigrations 文件)已被删除。所以 Django 出于某种原因认为我导入django.db.models而不是django.contrib.gis.db.

我的 models.py 代码有问题(由于“geom”字段行上的代码中断)

from django.contrib.gis.db import models
from renter.models import *
from classification_list.models import*

class ForestryKeys(models.Model):

    id = models.IntegerField(primary_key=True)
    df_forestry = models.TextField(blank=True, null=True),
    geom = models.MultiPolygonField(geography=True, null=True, blank=True, verbose_name='gmtry')

    class Meta:
        managed = True
        verbose_name = 'frst'
        verbose_name_plural =  'frtses' 
Run Code Online (Sandbox Code Playgroud)

python django postgresql postgis django-models

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

如何使用 PostGIS 扩展将多边形插入数据库

我有一个表,其中包含以这种方式创建的字段:

CREATE TABLE buildings(id SERIAL PRIMARY KEY, geom GEOMETRY, name VARCHAR(30));
Run Code Online (Sandbox Code Playgroud)

我想将简单的 2D 建筑插入其中,坐标如下 8 4, 10.5 4, 10.5 1.5, 8 1.5

INSERT INTO buildings(id, geom, name)
VALUES
(1, ST_GeomFromText('POLYGON(8 4, 10.5 4, 10.5 1.5, 8 1.5)'), 'BuildingA');
Run Code Online (Sandbox Code Playgroud)

由于某种原因我收到错误

ERROR:  parse error - invalid geometry
HINT:  "POLYGON(8 4" <-- parse error at position 11 within geometry
Run Code Online (Sandbox Code Playgroud)

如何将该多边形插入到表中?

sql postgresql postgis psql

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

初始化几何类型的空列的合适值是多少

我想为几何列设置一个默认值,指示它为空或空。例如,字符串最初初始化为空或“”以指示为空/空。对于几何图形来说,什么相当于 null/empty。要为几何列设置的值是什么表明它是空的。我尝试过0"" 但不允许将它们插入几何类型的列中

python sql postgresql postgis

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

postGIS 多边形内的点

我正在使用 postgres/postGIS 我有两个我有兴趣查询的表:

 table A: contains geometry values as (POINT)  such as (P1, P2,P3,...) 
 table B: contains geometry values as (POLYGON) such as (Polygon 1, polygon 2, ...)
Run Code Online (Sandbox Code Playgroud)

我试图找到每个点位于哪个多边形内。我最有可能寻找的答案列出了点及其包含的多边形,例如:

观点 多边形
P1 多边形3
P2 多边形1

我尝试过以下内容:

SELECT *
FROM area, points 
WHERE st_intersects(area.polygons, points.point) ;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: ERROR: ST_Intersects: Operation on mixed SRID geometries (Polygon, 4326) != (Point, 8307)

非常感谢您的帮助。

postgresql geometry postgis intersection

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

属性 X 的类型为“Geometry”,当前数据库提供程序不支持该类型

我获得了一个PostgreSQL数据库,目前正在尝试绑定EF Core到它。由于数据库已经存在,我尝试构建一个上下文,并且成功地发出了类似于以下内容的警告:

找不到数据类型为“x.geometry”的列“x.Polygons.Shape”的类型映射。跳过专栏。

我在脚手架时跳过了所有此类列,并尝试手动恢复它们:

public sealed class Polygon
{
    public int Id { get; set; }
    public DateOnly CreationDate { get; set; }
    public DateOnly ModificationDate { get; set; }
    public DateOnly SurveyDate { get; set; }
    public Geometry Shape { get; set; } //This (and similar) column was added manually
}
Run Code Online (Sandbox Code Playgroud)

之后,我将脚手架实体配置提取并修补到一个单独的类,如下所示:

public sealed class PolygonConfiguration : IEntityTypeConfiguration<Polygon>
{
    public void Configure(EntityTypeBuilder<Polygon> builder)
    {
        builder.ToTable("Polygons", Constants.DatabaseScheme);
        builder.HasIndex(e => e.Id, "idx_Polygons_ID");
        builder.Property(e => e.Id).HasColumnName("ID");
        builder.Property(x => …
Run Code Online (Sandbox Code Playgroud)

c# postgresql postgis entity-framework-core

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