标签: spatial

MySQL纬度和经度表设置

我想在mysql数据库表中存储位置的纬度和经度值.考虑到未来,我希望能够在特定位置的特定半径范围内找到这些位置.话虽如此,我应该将纬度和经度值存储在哪些数据类型?请你能为我提供一个创建表脚本,如下所示:

place_id  |  lat  |  long
Run Code Online (Sandbox Code Playgroud)

上表中是否有一个我缺少的专栏,它将为我提供我目前可能看不到的其他信息?

谢谢你的帮助.

mysql spatial latitude-longitude

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

非均匀大小超球面中最近邻搜索的快速空间数据结构

给定k维连续(欧几里德)空间充满了相当不可预测的移动/生长/收缩的超球面,我需要重复找到其表面最接近给定坐标的超球面.如果一些超球面与我的坐标距离相同,那么最大的超球面会获胜.(随着时间的推移,超球面的总数保证保持不变.)

我的第一个想法是使用KDTree,但它不会考虑超球体的非均匀体积.所以我进一步观察并找到了BVH(边界体积层次结构)和BIH(边界间隔层次结构),这似乎可以解决问题.至少在二维/三维空间中.然而,虽然在BVH上找到了相当多的信息和可视化,但我几乎找不到任何关于BIH的信息.

我的基本要求是k维空间数据结构,它考虑了体积,要么是超级快速构建(离线),要么是动态的,几乎没有任何不平衡.

鉴于我的上述要求,您会使用哪种数据结构?我还没提到的其他任何一个?


编辑1:忘记提及:允许hypershperes(实际上是高度期望的)重叠!

编辑2:看起来不是"距离"(特别是"负距离"),我描述的指标更好地匹配力量.

c spatial multidimensional-array data-structures

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

DbGeography.PointFromText 24141:预计在某个位置有一个数字

我有WCF REST服务,其中包含以下代码

var geo = DbGeography.PointFromText(string.Format("POINT({0} {1})", longitude, latitude), DbGeography.DefaultCoordinateSystemId);
Run Code Online (Sandbox Code Playgroud)

单元测试工作正常,但是当我从客户端或HTTP debuder调用此代码时,提供纬度和经度的任何值exept 0,它会失败,但异常:

"24141: A number is expected at position X of the input. The input has ,XXXXXX."
   at Microsoft.SqlServer.Types.WellKnownTextReader.RecognizeDouble()
   at Microsoft.SqlServer.Types.WellKnownTextReader.ParsePointText(Boolean parseParentheses)
   at Microsoft.SqlServer.Types.WellKnownTextReader.ParseTaggedText(OpenGisType type)
   at Microsoft.SqlServer.Types.WellKnownTextReader.Read(OpenGisType type, Int32 srid)
   at Microsoft.SqlServer.Types.SqlGeography.ParseText(OpenGisType type, SqlChars taggedText, Int32 srid)
   at Microsoft.SqlServer.Types.SqlGeography.GeographyFromText(OpenGisType type, SqlChars taggedText, Int32 srid)
   at Microsoft.SqlServer.Types.SqlGeography.STPointFromText(SqlChars pointTaggedText, Int32 srid)
Run Code Online (Sandbox Code Playgroud)

latitude和longitute例如
lat:37.58336895 long:-122.40549454
lat:37.38931302 long:-122.16207476

我使用从SQLServer安装目录和SqlGeography.Point引用的Microsoft.SqlServer.Types来处理代码端的spartial数据.现在我想直接使用EF 5功能而不使用Microsoft.SqlServer.Types.无论有没有这个参考,都会失败.

知道什么是错的吗?

安装了.NET 4.5,SQL Server版本是Microsoft SQL Server 2008(SP3) - 10.0.5500.0(Intel X86)2011年9月22日00:28:06版权所有(c)1988-2008 Microsoft Corporation …

sql-server spatial .net-4.5 entity-framework-5

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

将比例尺添加到ggplot地图

我已经制作了这张地图ggplot2:

library(maptools); library(ggplot2)
data(wrld_simpl)
world <- fortify(wrld_simpl)
worldUk <- subset(world, id=="GBR")
ggplot() +
geom_path(aes(long, lat, group=group), data=worldUk, color="black", fill=NA) +
  coord_equal()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用photoshop,我在地图上添加了比例尺.如何使用添加类似比例尺ggplot2?这篇文章添加了一个比例尺,但该栏并未引用距离:比例尺和map-ggplot2上的北箭头

r spatial map ggplot2

9
推荐指数
2
解决办法
7642
查看次数

与spplot相比,如何使用ggplot改进空间栅格地图?

与spplot()图例相比,如何使用ggplot改进空间栅格地图的图例?

我想使用ggplot()而不是ssplot()绘制空间地图,但是与spplot相比,我想提高一些方面:

  1. 创建一个ggplot图例,从小(底部)到大值(顶部)
  2. 在ggplot图例中有与ssplot()图例类似的中断,以便我知道每种颜色的边界.

## load packages
require(raster)
require(ggplot2)
require(rgdal)
require(RColorBrewer)
set.seed(1)

r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40,
          crs="+proj=lcc +lat_1=48 +lat_2=33 +lon_0=-100
+ellps=WGS84")
r <- setValues(r,matrix(rnorm(1600, mean=0.4,sd=0.2))) 

## 1. spatial map with spplot
cuts <-seq(minValue(r),maxValue(r),length.out=8)
cuts = round(cuts,digits=2)
col.regions = brewer.pal(length(cuts)+3-1, "RdYlGn")
print( 
spplot(as(r, 'SpatialGridDataFrame'),at=cuts,
col.regions=col.regions,
colorkey=list(labels=list(at=cuts),at=cuts), pretty=TRUE,
scales=list(draw=T)
) 
)

## 2. spatial map with ggplot
p = rasterToPoints(r); df = data.frame(p)
colnames(df) = c("x", "y", "NDVI")

p  <- ggplot(data=df) + geom_tile(aes(x, y, fill=NDVI)) +
coord_equal() + …
Run Code Online (Sandbox Code Playgroud)

r raster spatial map ggplot2

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

如何将形状文件导入MySQL

我需要将shape文件中的空间数据导入MySQL表.我可以导入PostGreSQL.MySQL的任何指针.我需要MySQL表中的数据.

mysql import spatial shapefile

8
推荐指数
1
解决办法
2万
查看次数

如何使用MySQL Spatial Extensions创建一个半径和坐标为中心的圆几何?

我正在尝试使用中心和半径的坐标在MySQL中创建圆几何.我到处搜索...我在网站上的MySQL文档中找到的所有内容都是多边形的.可能是我在找错了地方.任何人都可以帮助我使用适当的SQL来帮助我创建一个表,该表将这个Circle几何存储为表中的一列吗?另外,我甚至不确定在MySQL中是否有办法这样做?我正在使用的版本是 MySQL 5.6.

提前致谢.

mysql spatial spatial-query

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

当REST调用返回数据时,Neo4j Spatial"WithinDistance"Cypher查询返回空

我有一个看似正确配置的空间图层和索引,并且可以使用findGeometriesWithinDistance REST API调用成功查询节点.

POST /db/data/ext/SpatialPlugin/graphdb/findGeometriesWithinDistance {"layer":"geom","pointX":15.0,"pointY":60.0,"distanceInKm":100.0}
Run Code Online (Sandbox Code Playgroud)

但是,当使用cypher进行查询时,我没有得到任何结果(我试过没有运气就颠倒了60.0和15.0的顺序):

START n=node:geom('withinDistance:[60.0, 15.0, 500.0]') return n;
Run Code Online (Sandbox Code Playgroud)

Cyper返回:

==> +---+
==> | n |
==> +---+
==> +---+
==> 0 row
==> 
==> 13 ms
Run Code Online (Sandbox Code Playgroud)

休息:

200 OK
==> [ {
==>   "paged_traverse" : "http://localhost:7474/db/data/node/14472/paged/traverse/{returnType}{?pageSize,leaseTime}",
==>   "outgoing_relationships" : "http://localhost:7474/db/data/node/14472/relationships/out",
==>   "data" : {
==>     "lon" : 15.2,
==>     "bbox" : [ 15.2, 60.1, 15.2, 60.1 ],
==>     "RaceName" : "Parador Es Muy Caliente",
==>     "lat" : 60.1,
==>     "gtype" : 1
==>   },
==> …
Run Code Online (Sandbox Code Playgroud)

spatial neo4j

8
推荐指数
2
解决办法
2191
查看次数

使用DB :: raw表达式的POINT/POLYGON等的Laravel模型

我有一个使用像地理空间领域的一些车型POINT,POLYGONMULTIPOLYGON.我想告诉我的模型以特殊方式处理这些属性,以便我获得所需的模型属性集.

示例:每个常规Model::find()或其他Eloquent方法应在存储之前或检索数据库值之后应用一些自定义代码.

$area->surfacePOLYGONMySQL中的一个字段,但在我的模型类中,我想$area->surfare作为一个点数组来处理.

SELECT因此,我要像1)使用原始表达式来获取值的文本表示获取值,和2)通过一些自定义的PHP代码到WKT字符串转换成一个数组.

INSERT/UPDATE我想取属性值(数组)和1)将其转换为WKT字符串,然后2)使用存储该值的DB原始语句将其写入数据库.

我想在一个字段的基础上设置它,而不是作为每个字段的特殊get/set函数,而不是在控制器中 - 因为我有许多地理空间字段.

有没有办法在Laravel实现这一目标?

(同一个问题的一个更抽象的版本,就是我如何创建操作实际SQL查询的属性值的代码,而不仅仅是通过mutators和accessors进行一些基于值的操作)

更新: 深入了解Laravel Doc和API,我发现这个Eloquent::newQuery()方法可能是我需要操作的吗?这会用于任何查询,无论是否SELECT,INSERTUPDATE

php mysql spatial laravel laravel-4

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

sf:如何从 GEOMETRYCOLLECTION 回到 MULTIPOLYGON?

我有一个世界国家数据集,想在本初子午线上拆分它,并将数据重新集中在太平洋上。

我正在尝试使用简单功能 (sf) 来执行此操作,但遇到了一个我无法解决的对象类型问题。

为了拆分数据,我尝试了以下操作:


   st_wg84 <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

   # world country layer
   sfpolys <- rnaturalearth::ne_countries(scale = "medium", returnclass = "sf") 
   %>% st_sfc(crs = st_wg84 )

   # shift central/prime meridian towards west 
   shift <- 152 

   # create "split line" to split worldmap (split at Prime Meridian)
   split.line <- st_linestring(
     x = cbind(matrix(shift-180, 181, 1), matrix(-90:90,181,1))
    ) %>% 
     st_sfc(crs=st_wg84)

   # split country polygons along prime meridian
   sfpolys.split <- lwgeom::st_split(sfpolys, split.line)

Run Code Online (Sandbox Code Playgroud)

哪个有效,产生一个GEOMETRYCOLLECTION对象,沿着所需的线分割,包含与传入的相同数量的特征MULTIPOLYGON

接下来,我需要移动坐标以使地图重新居中,为此我必须将多边形坐标转换为数据框。

    countries <- …
Run Code Online (Sandbox Code Playgroud)

r polygon spatial r-sf

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