|
|
1
1
第二次尝试! 看到您编辑的问题语句,我将看看您如何分配zip值。 如果您的邮政编码是整数而不是字符串,则会引入许多错误。最大的问题是美国的邮政编码可以从0开始。 php中的示例并不好,因为将zips视为整数。当你试图用一个整数来描述我自己的邮政编码时:
它由php解释为八进制值2446。phpzipLocator使用该值作为字符串,而不进行任何显式转换。因此,PHP将八进制2446的十进制值作为字符串(1318)提供给它,该字符串根本不是邮政编码。 phpziplocator没有通知它没有找到邮政编码,而是对给定半径内不存在的所有邮政编码进行半径搜索,它认为应该是1。 如果我用字符串设置邮政编码
我得到了正确的结果。 不知道,似乎phpziplocator可以使用一点工作。 |
|
|
2
10
下面的近似距离计算相对简单,但是 可产生10%以上的距离误差。这些近似值 计算使用纬度和经度值 度 . 第一个近似值只需要简单的数学函数:
您可以通过以下方式提高近似距离计算的精度: 添加余弦数学函数:
如果需要更高的精度,必须使用精确的距离计算。 精确的距离计算需要使用球面几何,因为 地球是一个球体。精确的距离计算也需要较高的水平 浮点数学精度-约15位精度 (有时称为“双精度”)。另外,三角数学 精确计算中使用的函数需要转换纬度 经度值从度到弧度。转换纬度或 经度从度到弧度,除以经度和纬度值 在这个数据库中按180/pi,或57.2958。地球半径假定为 行驶6371公里或3958.75英里。 您必须在 计算。用度数代替弧度,计算如下:
|
|
|
3
0
phpzipLocator(ziptest.php)演示脚本中radius的默认值使用20英里作为其默认半径。
我的猜测是
更好的是,使用调试器查看代码,并查看
|