我从这个页面中抓取了一个邮政编码数据库及其经纬度等 .它有以下字段:
ZIP,LATITUDE,LONGITUDE,CITY,STATE,COUNTY,ZIP_CLASS
数据在文本文件中,但我将其插入MySQL表中.我现在的问题是,我如何利用上面的字段来计算用户可以在网站上输入的两个邮政编码之间的距离?PHP中的工作代码将不胜感激
我使用了这段代码,但它不起作用:
需要两个gps坐标之间的距离,如41.1212,11.2323英里(Java)
double d2r = (180 / Math.PI);
double distance = 0;
try{
double dlong = (endpoint.getLon() - startpoint.getLon()) * d2r;
double dlat = (endpoint.getLat() - startpoint.getLat()) * d2r;
double a =
Math.pow(Math.sin(dlat / 2.0), 2)
+ Math.cos(startpoint.getLat() * d2r)
* Math.cos(endpoint.getLat() * d2r)
* Math.pow(Math.sin(dlong / 2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = 6367 * c;
return d;
} catch(Exception e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我想在地图上画一个静态圆圈Google Maps.当用户捏住时,地图将放大/缩小.
我需要知道地图半径(与圆圈中包含的区域相关)并相应地更改底部的搜索条.
有人知道如何检索从左边到右边屏幕边缘的距离吗?我没有在Google Maps API文档中找到任何内容.
像这样的东西:

给定一组带有x,y坐标的几百万个点,快速找到一个位置的前1000个最近点的算法是什么?"快速"在这里意味着家用电脑上大约100毫秒.
蛮力意味着进行数百万次乘法,然后对它们进行排序.虽然一个简单的Python应用程序可以在不到一分钟的时间内完成,但对于交互式应用程序来说仍然太长.
点的边界框将是已知的,因此将空间划分为简单网格是可能的.然而,点的分布有些不均匀,所以我怀疑大多数网格方块都是空的,然后突然其中一些将包含大部分点.
编辑:不必确切,实际上可能非常不准确.如果前1000名实际上只是来自前2000名的一些随机点,那就没什么大不了的了.
编辑:点集很少改变.
我想计算圆环表面上两个x/y坐标之间的距离.因此,这是一个普通网格,其边角和边是"连接"的.例如,在500x500的网格上,(499,499)处的点与(0,0)相邻,并且例如(0,0)和(0,495)之间的距离应为5.
有没有什么好的数学计算方法呢?
对于正方形网格,图块A和B之间的欧氏距离为:
distance = sqrt(sqr(x1-x2)) + sqr(y1-y2))
Run Code Online (Sandbox Code Playgroud)
对于被限制沿着正方形网格移动的演员,曼哈顿距离是我们必须行进的实际距离的更好度量:
manhattanDistance = abs(x1-x2) + abs(y1-y2))
Run Code Online (Sandbox Code Playgroud)
如何在六边形网格中获得两个瓷砖之间的曼哈顿距离,如下面的红色和蓝色线所示?

我有一个NxM矩阵,我想计算点NxN之间的欧几里德距离矩阵M.在我的问题中,N大约是100,000.由于我计划将此矩阵用于k近邻算法,我只需要保持k最小距离,因此得到的NxN矩阵非常稀疏.这与dist()例如导致密集矩阵(并且可能存在我的尺寸的存储问题N)的情况形成对比.
我到目前为止发现的kNN包(knnflex,kknn,等)均出现使用密集矩阵.此外,该Matrix包装不提供成对距离功能.
更接近我的目标,我发现该spam软件包具有一个nearest.dist()功能,允许人们只考虑小于某个阈值的距离,delta.然而,在我的情况下,特定值delta可能会产生太多的距离(因此我必须NxN密集地存储矩阵)或距离太远(因此我不能使用kNN).
我之前已经看到过尝试使用包执行k-means聚类的讨论bigmemory/biganalytics,但在这种情况下我似乎不能利用这些方法.
有人知道在R中以稀疏方式计算距离矩阵的函数/实现吗?我的(可怕的)备份计划是有两个for循环并将结果保存在一个Matrix对象中.
我正在为我的应用程序开发一个演示,其中有两个按钮,分别命名为"START"和"STOP".当用户点击"开始"时,他将开始行走.我想要做的是,当用户点击"STOP"时,演示将计算他在"START"和"STOP"之间的距离.如果用户按下"START"并按下"STOP"而不执行任何步骤,则必须显示0km或0m.我不知道如何开始这个; 请提出建议.
我有1个红色多边形和50个随机放置的蓝色多边形 - 它们位于地理2D空间中.找到红色多边形与其最近的蓝色多边形之间的最短距离,最快/最快的算法是什么?
请记住,将构成多边形顶点的点作为测试距离的值并不是一个简单的例子,因为它们可能不一定是最接近的点.
所以最后 - 答案应该将最接近的蓝色多边形返回到单一的红色多边形.
这比听起来更难!
R中的基本/公共类被称为"dist",并且是对称距离矩阵的相对有效的表示."matrix"但是,与对象不同,似乎不支持"dist"使用"["运算符通过索引对操作实例.
例如,以下代码不返回任何内容NULL,或错误:
# First, create an example dist object from a matrix
mat1 <- matrix(1:100, 10, 10)
rownames(mat1) <- 1:10
colnames(mat1) <- 1:10
dist1 <- as.dist(mat1)
# Now try to access index features, or index values
names(dist1)
rownames(dist1)
row.names(dist1)
colnames(dist1)
col.names(dist1)
dist1[1, 2]
Run Code Online (Sandbox Code Playgroud)
同时,在某种意义上,以下命令可以正常工作,但不要使访问/操作特定索引对值更容易:
dist1[1] # R thinks of it as a vector, not a matrix?
attributes(dist1)
attributes(dist1)$Diag <- FALSE
mat2 <- as(dist1, "matrix")
mat2[1, 2] <- 0
Run Code Online (Sandbox Code Playgroud)
一个解决方法 - …