我有一个问题,希望你们能帮我解决。
我有一个DbGeometry点(或者DbGeography,我可以同时使用这两个点),我想检查它是否在DbGeometry多边形(或者DbGeography)中。
我现在正在做这件事:
var dbZones = new List<WasteManager.Database.Zone>();
foreach(var zone in zones)
{
var res = from z in DatabaseContext.Zones
let boundary =
我有一个应用程序,用户在其中绘制区域,然后我检查polyline是否与它们交叉。
突然,应用程序因错误而崩溃:
A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
System.ArgumentException: 24144: This operation cannot be completed because the instance is not valid. Use MakeValid to convert the inst
我正在尝试解析一个多边形,它被表示为DbGeometry类(从System.Data.Entity.Spatial)到某些列表表示,但是失败了。
我尝试过:-用.ToList<>()方法来转换它--在.NET中使用JSON库进行解析,但是不同网站的示例代码反序列化DbGeometry失败
因此,现在我将几何作为字符串返回到我的Web应用程序中:
如果我无法找到任何解决方案--如何将其表示为双重列表--我将不得不在JavaScript中手动解析它,我认为这种方式是非常不正确的,必须有某种解决方案。
我使用的是实体框架v.6.1.1,它准备了下一个模型:
public par
我有一个带有几何列的空间表。我的实体如下:
public class Tile
{
public DbGeometry Geometry { get; set; }
}
我使用一个数据传输对象将Tile类返回给我的客户端。我还从我的客户端创建了瓷砖,所以我希望从一个字符串(众所周知的几何文本表示)转换为一个DbGeometry字段。这是我的DTO:
public class TileDto
{
public String Geometry { get; set; }
}
现在,我的第一个想法是创建这样的自定义转换器:
public class DbGeometryToStri
当我尝试执行Contains操作时,我得到了一个奇怪的异常,即一个实例在另一个实例中。google上没有这个异常的结果,而且两个几何实例都不是空的,并且是有效的。
var inside = gridShape.Shape_MGA.Contains(shape.shapeMga)
Unhandled Exception: System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
at System.Data.SqlTy
这是查询。对不起,这是在一个粘贴-垃圾桶链接,而不是在这个问题,但地理数据是长于最大字符的问题!
那里有两个版本的查询。
第一个是常规查询,它在2014年运行良好,但在Azure Sql上我得到:
Msg 6522, Level 16, State 1, Line 11
A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
System.ArgumentException: 24200: The specified input do
这里我如何尝试使用DbGeometry创建多边形:
var t = System.Data.Spatial.DbGeometry.PolygonFromText("POLYGON(184124.95503725 666736.70253002, 184116.48837516 665712.23641656, 184946.22126044 666304.90276319, 184124.95503725 666736.70253002)", 2039);
当执行上面的行时,我得到以下异常消息:
Exception has been thrown by the target
我试图在另一个多边形中找到多边形的百分比,并希望将其写入现有的表中。我计算了面积,但不能把它加到现有的表格中。
SELECT
ST_Intersection(ST_MakeValid(r.geom),o.buffer) AS intersection,
ST_Area(ST_Intersection(ST_MakeValid(r.geom),o.buffer))/ST_Area(r.geom)*100
FROM public."Residential" r, public."Operation" o
WHERE ST_Intersects(o
我们正在将一大堆ArcGIS shapefile导入到PostGIS中,并使用shp2pgsql进行动态转换。问题是,如果shapefile有任何环形自交点,导入就会阻塞:
NOTICE: Ring Self-intersection at or near point -80.1338 25.8102
ERROR: new row for relation "place_shapes" violates
check constraint "shape_is_valid"
我们该如何解决这个问题呢?
我试图根据两个多边形特性的交集(其中一个表中有50m行)编写一个新列,在运行它们之前,我已经创建了"gist“索引,但是这需要花费很长时间,并且无法在Postgresql中得到结果。计算中不使用gist索引。如何使用该操作的索引?
模型附在下面的小提琴上,
CREATE INDEX idx_operation_geom ON public."Operation" USING gist (geom);
CREATE INDEX idx_operation_buffer ON public."Operation" USING gist (buffer);
我使用的是PostgreSQL 9.5和PostGIS 2.2。
我发现我的一些数据有无效的几何图形,所以我试图纠正这一点。
UPDATE schema.table
SET geom = ST_MakeValid(geom)
WHERE NOT ST_IsValid(geom);
但我有个错误:
ERROR: Column has M dimension but geometry does not
État SQL :22023
我之前检查过几何图形有多少维
SELECT count(gid), ST_Dimension(geom)
FROM schema.table
GRO
我正在尝试使用空间数据类型通过spring JPA查询注释发出原生查询请求。当被要求通过控制台甚至在数据库中执行时,查询可以完美地工作。但是当他被要求在Spring中使用时。有人知道我做错了什么吗?或者有更好的方法来达到同样的结果(让所有的计算都放在DB一边)?提前谢谢你 这就是我要执行的查询。同样,它通过控制台工作,但无法通过spring引导请求执行 @Query(value = "SELECT TOP 1 * FROM Vehicles v " +
"JOIN Bikelots l ON l.BikeLotId = v.BikeLotId
我在Postgres 10.3/Postgis 2.4上运行以下查询:
create table table_c as (
select A.*, B.area_name, B.id
from table_a A
left join table_b B
on ST_Contains(A.geom, B.geom)
);
这与一个神秘的失败:
ERROR: GEOSContains: TopologyException: side location conflict at -2.0889721121124643 53.528652265475735
由于Post
到目前为止,我所拥有的:
select Metro.Object_ID
from Geocoding_tab.dbo.Part1_Part2_Combined_Final as paypal
,Object_id.dbo.All_Combined_9_Metros as Metro
where paypal.geom.STIntersect(Metro.GEOM) = 1;