Fluent NHibernate自动映射PostGIS的几何类型
给定以下模型: using NetTopologySuite.Geometries; public class bounding_box { public virtual int id { get; protected set; } public virtual Polygon area { get; set; } } 使用Fluent Nhibernate生成DB模式时,如何自动化area属性到area geometry(Polygon)列?请注意,我不在乎能够使用NHibernate读取/更新几何列,因为我将在代码中使用GDAL. 我知道我可以通过实施手册覆盖来做到这一点,即: public class bounding_boxMappingOverrride : IAutoMappingOverride { public void Override(AutoMapping map
8 2024-04-22
编程技术问答社区
Npgsql参数化查询输出与PostGIS不兼容
我在npgsqlcommand中具有此参数化查询: UPDATE raw.geocoding SET the_geom = ST_Transform(ST_GeomFromText('POINT(:longitude :latitude)', 4326),3081) WHERE id=:id :longutide和:latitude是 double ,id是 int . 实际上与DB的查询看起来像这样: UPDATE raw.geocoding SET the_geom = ST_Transform(ST_GeomFromText('POINT(((E'-96.6864379495382')::float8) ((E'32.792527154088')::float8))', 4326),3081) WHERE id=((10793455)::int4) 感谢Erwin BrandStetter的帮助显然,需要简化查询以与PostGIS一起使用.他提出了这一点:
22 2024-04-21
编程技术问答社区
PostGIS, ST_Transform (不存在函数...)
我有以下代码从已经创建的点层获得30m几何形状 CREATE TABLE intrsct_buff AS ( SELECT ST_Transform( ST_Buffer( ST_Transform(pt.geom,4326)::geography, 30.0), 2263) as geom, pt.count FROM public.intrsct_pts as pt ); 我不断收到错误: 第3行 function st_transform(geography, integer) does not exist 我需要在___,SRID 2263面前添加什么?这似乎是ST_TRANSFORM函数,他们说我有错误 解决方案 您需要将地理位置转换回几何形状; ST_Transform不适用于geography: CREATE TABLE intrsct_buff AS ( SELECT ST_Transform( ST_Buffer(
12 2024-04-04
编程技术问答社区
PostgreSQL按季节分组(北半球和南半球)。
我的数据点分布在全球范围内.每个数据点都有时间戳. 我想按季节对数据进行分组,如这张图所示(来源: https://en.wikipedia.org/wiki/season#/media/file:seasons1.svg ). 这是我到目前为止尝试的(北半球冬季2011/2012): SELECT * FROM my_table WHERE my_date BETWEEN '2011-12-21' AND '2012-03-21' AND ST_Y(ST_Centroid(geom)) > 0; 我该如何在所有可能的年内做到这一点?我尝试了...或之间...但是这很慢. 如何在北半球和南半球选择冬季? 更新 对于北半球的所有冬季数据,我都使用此查询: CREATE TABLE season_winter_north AS WITH first_step AS ( SELECT id, extract(mon
10 2024-03-30
编程技术问答社区
Mac终端错误-bash:未找到命令-Al Capitan 10.11.13
首次打开Mac终端时,我会收到一条错误消息 - -bash: Applications: command not found 奇怪的(或不太奇怪),当我打开另一个选项卡时,有时会遇到不同的错误 - -bash: README.md: command not found 或 -bash: [: missing `]' 我刚刚注意到今天早上...昨晚我觉得有两件事可能导致了这一点,但是我不确定我是否正确,也不知道如何适当解决这个问题问题.我的OS是El Capitan 10.11.13. 首先,昨晚,我用自制努力安装PostGis 2.2-我的Postgres版本是9.5.1. 第二,我提出了我一个项目之一的GitHub拉力请求(我不确定拉力请求如何使我的bash配置文件不安,但是Github的标准读数格式是realme.md,所以我想我最好提及这在这里). 我的狂欢个人资料对我来说似乎很干净 - [[ -s "$HOME/.profile"
6 2024-03-28
编程技术问答社区
使用Geotools Java向shapefile添加新的列属性并将其保存到数据库中
我正在通过添加一个新的列属性来转换ShapeFile.由于此任务是使用Java执行的,因此我现在知道的唯一选择是使用Geotools.我有2个主要问题: 1.我无法弄清楚如何实际添加一个新的列变量.是feature.setAttribute(" col"," value")答案? 我从这篇文章中看到了一个示例: https "> https:https://gis.stackexchange.com/questions/215660/modifying-feature-attributes-of-a-apefile-in-geotools ,但我没有解决方案. //Upload the ShapeFile File file = JFileDataStoreChooser.showOpenFile("shp", null); Map params = new HashMap(); params.put("ur
18 2024-03-19
编程技术问答社区
pgr_astar和不可能的边缘(例如,锁定的门)。
我正在使用Prowesql/Postgis和pgrouting,我需要计算最短路径.在以前的Prouting版本中,我使用了Shortest_path_astar.在我的路由图中,我有不可能的细分市场,例如锁定门.我用过: SELECT id FROM shortest_path_astar('SELECT edge_id AS id, vertex_id1 AS source, vertex_id2 AS target, ' || '(CASE WHEN door = ''S'' THEN -1.0 ELSE (length) ) END)::float8 AS cost, ' || '(CASE WHEN door_rev = ''S'' THEN -1.0 ELSE (length) ) END )::float8 AS reverse_cost, ' || 'x1, y1, x2, y2 FROM edges', origin_node, destinati
16 2024-03-17
编程技术问答社区
postgres array_agg ERROR: 不能累加不同维度的数组
i在PostgreSQL中有一个包裹表,其中分区和Zoning_description列array_agg将其投入到文本上. New.Universities表有9行,我需要在输出中返回9行. 此查询的目的是找到这些大学位于并崩溃的所有属性中,并在其中分区类型为1个唯一的列,并结合/将其几何形状溶解为多重法 select array_agg(distinct dp.zoning) zoning,array_agg(distinct dp.zoning_description) zoning_description, uni.school name_,uni.address,'University' type_,1000 buff,st_union(dp.geom) from new.universities uni join new.detroit_parcels_update dp on st_intersects(st_buffer(uni.geom,-10),
40 2024-03-05
编程技术问答社区
GIS:根据同等人口划分区域
我想将美国州分为大约平等人口的20个部分.我可以使用区域,邮政编码或其他较小的地理位置来做到这一点.我正在寻找用于进行分区的算法.它可以使用任何语言或软件(ArcGIS,QGIS,Python,Postgis,r,Node). 用于分组或聚类算法,我看过像K-均值,ArcGIS分组分析等.这些似乎没有执行所需的操作,因为它们基于变量的相似性进行分组不要基于变量分配成相等的大小.我快速看一下 esri的区域工具表明这可能是可能的. 还有其他建议吗? 解决方案 您应该考虑其他解决方案 您可以尝试质心加权伏洛诺图.即Loyds算法.选择每个Voronoi单元的Voronoi图和重心,然后冲洗并重复: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
16 2024-03-03
编程技术问答社区
OSError: libgdal.dylib: 无法打开文件
问题是:Docker由于OSError: /opt/homebrew/Cellar/gdal/3.3.0_2/lib/libgdal.dylib: cannot open shared object file: No such file or directory而无法正常运行. 我当前的任务只是将Geodjango添加到我现有的Django Dockerized项目中,并使用PostGIS数据库添加Geodjango.我使用Postgis/Postgis安装了PostGIS图像. i,但由于GDAL安装不正确,出现了问题.我安装了GDAL和自制的.老实说,如果我使用Docker,我不明白为什么我在机器上需要GDAL. 现在,我在MacBook Air(M1,2020)和所有包装的最后版本上使用大型SUR OS. 我发现了许多类似情况的描述,但与我的原因不同,原因不同. 我想弄清楚我面临的问题,为什么发生以及如何解决. 任何帮助都将不胜感激. 详细信息:
16 2024-03-02
编程技术问答社区
如何在Spark SQL中启用Postgis查询?
我有一个带有PostGIS扩展名的PostgreSQL数据库,因此我可以进行查询: SELECT * FROM poi_table WHERE (ST_DistanceSphere(the_geom, ST_GeomFromText('POINT(121.37796 31.208297)', 4326)) spark.sql("select * FROM poi_table WHERE (ST_DistanceSphere(the_geom, ST_GeomFro
10 2024-02-29
编程技术问答社区
如何使用postgis将AWS RDS Postgres实例从14升级到15?
AWS增加了对Postgres 15.2的支持.使用此错误消息升级到使用PostGIS Extension启用PostGIS Extension的升级: The instance could not be upgraded because there are one or more databases with an older version of PostGIS extension or its dependent extensions (address_standardizer, address_standardizer_data_us, postgis_tiger_geocoder, postgis_topology, postgis_raster) installed. Please upgrade all installations of PostGIS and drop its dependent extensions and try again. RDS实例已安
12 2024-01-26
编程技术问答社区
用PostGIS配置Amazon Elastic Beanstalk
有人有任何经验与Postgis建立Amazon Elastic Beanstalk(我可以利用Geodjango)? 默认设置(RDS,具有MySQL)当前不支持包装的许多功能: 1. Postgresql + Postgis 2.安装C/C ++库(例如Geos和Proj.4 )的能力 预先感谢 解决方案 如果要与Amazon Elastic Beanstalk一起使用Geodjango,则需要创建一个自定义 ami 您可以在其中安装postgis,然后将弹性beanstalk应用指向该AMI. 这是一个很好的 aws aws tutorial但是我发现第一个更容易理解.在我的自定义AMI上,我从Source中安装了Geos,Gdal,Proj4和PostGis,并使用yum install postgres安装了Postgres.以下是我用来将所有库安装到AMI中的命令. 对于Django应用程序,要找到库,我还在AWS EBS控制台中设置了一个附加的环
在AWS Beanstalk或EC2实例中设置具有GeoDjango支持的Django
因此,我有一次使用Amazon实例(2013.09)AMI-35792C5C进行了beanstalk.当时,当将eBextension脚本放在.ebextensions/ 中 00_repo.config packages: rpm: pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm' remi: 'http://rpms.famillecollet.com/enterprise/remi-release-6.rpm' files: "/etc/yum.repos.d/pgdg-93-redhat.repo": mode: "000644" owner: root group: root content: |
32 2024-01-24
编程技术问答社区
哪种GEO实现方式适用于数百万个点
我正在尝试找出用于根据长/lat到某个点的最接近点的地理实现.我将有数百万甚至数十亿个不同的纬度/经度点需要比较.我一直在寻找许多不同的实现来完成我需要完成的工作.我已经研究了PostGis(看起来很受欢迎并且表现良好),Neo4J(图数据库对我来说是一个新概念,我不确定它们如何表现),AWS DynamodB Geohash(缩放量很好,但是只写了库,但只写了库. Java,我希望在node.js等上写一个库),但无法弄清楚哪个表现最好.我纯粹是在研究反对功能数量的性能.我所需要的就是将一个点与所有点进行比较,并找到最接近的(读取操作),并且还可以快速更改数据库中的一个点(写操作).任何人都可以根据这些要求提出良好的实施 解决方案 PostGIS具有多个用于地理施法的功能.如果您的字符串足够长的时间,搜索就会变得更快(每个框碰撞少于8个邻居),但是Geohash的一代较慢,插入新点. 问题也是您想要的准确性.在纬度增加时,纬度/长"距离"会恶化,因为一定程度的经度从赤道的
22 2024-01-24
编程技术问答社区
获取指定坐标5英里范围内的所有建筑
我有数据库表Building,其中包含这些列:name,lat,lng 我如何在距指定坐标5英里的范围内获得全部Buildings,例如: -84.3865399999998 33.72024 我的尝试,但行不通: SELECT ST_CONTAINS( SELECT ST_BUFFER(ST_Point(-84.38653999999998,33.72024), 5), SELECT ST_POINT(lat,lng) FROM "my_db"."Building" LIMIT 50 ); 解决方案 为什么在分离的列中存储 x,y ?我强烈建议您将它们存储为geometry或geography,以避免在查询时间内铸造开销. 话虽如此,您可以使用ST_DWithin或ST_Distance计算和检查距离: (测试数据) CREATE TABLE building (name text, long numeric, lat n
8 2024-01-24
编程技术问答社区
错误:在Alpine Docker镜像上安装PostGIS时存在不满足的约束条件
好,所以任务似乎很容易!使用Alpine图像(因为它是轻量级且安全的)来执行某些PostgreSQL db的创建/迁移.我正在使用以下Dockerfile使用代码在这里: FROM alpine:latest RUN apk add -U postgresql # install PostGIS ENV POSTGIS_VERSION 2.5.2 ENV POSTGIS_SHA256 225aeaece00a1a6a9af15526af81bef2af27f4c198de820af1367a792ee1d1a9 RUN set -ex \ \ && apk add --no-cache --virtual .fetch-deps \ ca-certificates \ openssl \ tar \ \ && wget -O postgis.tar.gz "https://github.com/po
36 2024-01-24
编程技术问答社区
如何智能地降低或平滑GIS数据(简化多边形)?
我从 Tiger Line 数据集中详细介绍了US County Maps.我如何对数据进行采样,平滑或降解,以使我变得更直,更宽松,更少的"嘈杂"形状来代表地理特征​​ - 在这种情况下,只是县边界和州线,但也许也可能在一般情况下? 如果可以有效地完成,则可以在渲染时间发生采样,或者可以生成并存储并行数据集.我正在使用 postgis ,这些行是由shp2pgsql生成的多旋翼线 - 但是您在哪里可以生成的解决方案.沿着弯曲的线路并将其减少到与人解释器大致相同意义的平滑行将非常有用的线条. 解决方案 简单地扔掉点的问题是您可以快速扭曲原始多边形的形状.一种更好的方法是从另一个方向来到它.从多边形的基本近似开始,然后将其向上改进您的复杂形状. 这种方法的一个很好的例子是 douglas-puecker algorithm .您从从完整多边形绘制的两个顶点开始.通过选择与前两个顶点之间绘制的边缘最远的一个顶点添加第三个顶点.继续添加点,直到您拥有足够类似于原始多边形的东
16 2024-01-22
编程技术问答社区
Rails中 "未知OID "错误的来源是什么?
在将应用程序复制到生产中时,我的后表列开始行为不当,Rails通知我有一个"未知的OID 26865",并且该字段将被视为字符串. 而不是current_pos产生e. G. #我会得到0101000020E6100000FFDD958664C92A403619DEE6B2434A40.看来Activerecord-Postgis-audapter没有安装或安装不好,但是我通过测试数据类型rgeo :: feature :: feature :: point and test-assigning 来消除了这种可能性 current_pos = "POINT (13.39318248760133 52.52908798020595)" 到达该领域 - 没有错误进行,但随后产生了另一个难以理解的十
26 2024-01-10
编程技术问答社区