Tag: 地理空间

使用空间点types在MySQL中存储Lat Lng值

技术使用:MySQL 5.1和PHP 5.3 我只是为我正在撰写的网站devise一个新的数据库。 我正在研究现在存储Lat和Lng值的最佳方法。 在过去,我一直在使用DECIMAL,并使用PHP / MySQLselectforms: SQRT(POW(69.1 * (fld_lat – ( $lat )), 2) + POW(69.1 * (($lon) – fld_lon) * COS(fld_lat / 57.3 ), 2 )) AS distance find最近的匹配地点。 开始阅读更多关于新技术,我想知道如果我应该使用空间扩展。 http://dev.mysql.com/doc/refman/5.1/en/geometry-property-functions.html 虽然信息很薄弱,但是如何存储数据还是有问题的。 而不是使用DECIMAL,我现在将使用POINT作为数据types? 另外,一旦存储为POINT,只需要从中获取Lat Lng值,以便我想将其绘制在地图上,还是应该再次将经纬度值存储为DECIMALS? 我知道我应该使用PostGIS作为这里的大多数post说我只是不想学习一个新的数据库,但! 跟进 我一直在玩新的POINTtypes。 我已经能够使用以下添加Lat Lng值: INSERT INTO spatialTable (placeName, geoPoint) VALUES( "London School of Economics", GeomFromText( 'POINT(51.514 […]

有没有openstreetmap的API?

例如,我想知道是否有任何API可以查询OSM数据; (lon_1,lat_1)在陆地还是在海上? 或者是否有可能将一个岛定义为明确的多边形? 到目前为止,我见过的唯一用法就是渲染OSM数据(生成切片)的工具。

Java double vs BigDecimal的纬度/经度

当存储纬度/经度的格式通常是:44.087585(即最多2点之前的数字和6dp)是否需要打扰大的?

用R开发地理专题地图

R中有很多包可以进行各种空间分析。 这可以通过在CRAN任务视图:空间数据分析中看到。 这些软件包是多种多样的,但我想要做的只是一些简单的专题地图 。 我有县和州的FIPS代码的数据,我有县和州边界的ESRI形状文件和随附的FIPS代码,允许join数据。 如果需要,形状文件可以很容易地转换为其他格式。 那么用R创build专题地图最直接的方法是什么? 这张地图看起来像是用ESRI Arc产品创build的,但是这是我想用R做的事情: 替代文字http://www.infousagov.comhttp://img.dovov.comchoro.jpg 从这里复制的地图。

什么是在半径内查找大表的最快方法MySQL(纬度经度)

目前我有几个100k +行的表。 我正在试图查找如下的数据。 SELECT *, SQRT(POW(69.1 * (latitude – '49.1044302'), 2) + POW(69.1 * ('-122.801094' – longitude) * COS(latitude / 57.3), 2)) AS distance FROM stops HAVING distance < 5 ORDER BY distance limit 100 但是目前这种方法在高负载下变慢。 有些查询需要20多秒才能完成。 如果有人知道任何更好的方法来优化这将是伟大的。

如何计算一个球体上一个点到一个线段的距离?

我在地球上有一个线段(大圆圈部分)。 线段由其端点的坐标定义。 显然,两点限定了两条线段,所以假设我对较短的线段感兴趣。 我得到第三点,我正在寻找线和点之间的(最短的)距离。 所有坐标都以经度/纬度(WGS 84)给出。 我如何计算距离? 任何合理的编程语言的解决scheme将做。

如何使用data.table:=高效地计算坐标对之间的距离

我想find最有效(最快)的方法来计算lat长度坐标对之间的距离。 已经提出了一个不太有效的解决scheme(在这里)使用sapply和spDistsN1{sp} 。 我相信如果使用:=运算符在data.table使用spDistsN1{sp}那么这可能会变得更快,但是我一直无法做到这一点。 有什么build议么? 这是一个可重现的例子 : # load libraries library(data.table) library(dplyr) library(sp) library(rgeos) library(UScensus2000tract) # load data and create an Origin-Destination matrix data("oregon.tract") # get centroids as a data.frame centroids <- as.data.frame(gCentroid(oregon.tract,byid=TRUE)) # Convert row names into first column setDT(centroids, keep.rownames = TRUE)[] # create Origin-destination matrix orig <- centroids[1:754, ] dest <- centroids[2:755, […]

计算地理邻近度的公式

我需要在我的应用程序中实现Geo邻近search,但是我对使用正确的公式感到困惑。 在Web和StackOverflow中进行了一些search之后,我发现解决scheme是: 使用Haversine公式 使用大圆距离公式 在数据库中使用空间search引擎 选项#3真的不是我的ATM选项。 现在我有点困惑,因为我总是认为大圆距离公式和Haversine公式是同义词,但显然我错了? Haversine公式http://i46.tinypic.com/30shbn6.png 上面的屏幕截图是从真棒地理(邻近)searchMySQL文件,并使用以下function: ASIN, SQRT, POWER, SIN, PI, COS 我也看到了同样的公式 ( Cosines的球形定律 )的变化 ,像这样: (3956 * ACOS(COS(RADIANS(o_lat)) * COS(RADIANS(d_lat)) * COS(RADIANS(d_lon) – RADIANS(o_lon)) + SIN(RADIANS(o_lat)) * SIN(RADIANS(d_lat)))) 这使用以下function: ACOS, COS, RADIANS, SIN 我不是math专家,但这些公式是一样的吗? 我遇到了更多的变化和公式 (比如Cosines的球形定律和Vincenty的 公式 – 这似乎是最准确的),这让我更加困惑。 我需要select一个好的通用公式来在PHP / MySQL中实现。 任何人都可以解释我上面提到的公式之间的差异吗? 哪一个是最快的计算? 哪一个提供最准确的结果? 在结果的速度/准确性方面哪一个最好? 我感谢您对这些问题的洞察力。 基于唯一的理论答案,我testing了以下的大圆距离公式: Vincenty公式 Haversine公式 […]

使用MySQL空间扩展来select圆内的点

我有一个名为flags的表,其中包含一个称为coordinates的列,充满了MySQL的“点”。 我需要执行一个查询,根据100米半径的经度和纬度位置获得一个圆圈内的所有标志。 从使用的angular度来看,这是基于用户的位置。 例如,手机会给用户的经纬度位置,然后将其传递给API的这一部分。 然后由API在用户周围创build一个半径为100米的不可见圆圈,然后返回此圆圈中的标志。 这是API的这一部分我不知道如何创build,因为我不确定如何使用SQL来创build这个不可见的圆,并只在这个半径内select点。 这可能吗? 有没有一个MySQL的空间function ,可以帮助我做到这一点? 我相信Buffer()函数可以做到这一点,但我找不到任何文档如何使用它(例如SQL)。 理想情况下,我需要一个答案,告诉我如何使用这个function或最接近它。 在将这些坐标存储为地理空间点的地方,我应该使用地理空间函数来做我要求的最大效率。 标志表: ID 坐标 名称 示例行: 1 | [几何 – 25B] | Tenacy AB 旗标表有经纬度位置和东,北(UTM) 用户的位置只是标准的纬度/经度,但我有一个库可以将此位置转换为UTM

鉴于经纬度的坐标,我们如何找出城市/国家?

例如,如果我们有这些坐标 "latitude": 48.858844300000001, "longitude": 2.2943506, 我们如何才能找出城市/国家?