Jac*_*cuz 49 javascript php gis timezone geolocation
有没有可能在不使用webservices的情况下确定point(lat/lon)的时区?Geonames.org对我来说不够稳定:(我需要这个在PHP中工作.
谢谢
Mic*_*rdt 54
我有一段时间没遇到这个问题,并且确实完成了亚当建议:
IIRC花了不到1秒的时间来填充R-Tree,然后它可以每秒执行数千次查找(都是在一台5岁的PC上).
Chr*_*ldt 13
您的结果有多准确?如果粗略估计足够,请自行计算偏移量:
offset = direction * longitude * 24 / 360
Run Code Online (Sandbox Code Playgroud)
东方向为1,西方方向为-1,经度方向为(-180,180)
Jam*_*s D 10
我在处理另一个项目时遇到了这个问题,并深入研究了这个问题.我发现所有现有的解决方案都缺乏主要方面.
下载GeoNames数据并使用一些空间索引来查找最近的点肯定是一个选项,它会在很多时候产生正确的结果,但如果查询点位于错误的一侧,它很容易失败区域边界距离数据库中最近的点.
更准确的方法是使用时区的数字地图并编写代码以在该地图中查找包含给定查询点的多边形.值得庆幸的是,http: //efele.net/maps/tz/world/上有一个很好的世界时区地图.要编写有效的查询引擎,您需要:
每个都值得他们自己的Stack Overflow问题/答案页面.
在断定现有解决方案都没有满足我的需求后,我编写了自己的解决方案,并在此处提供:
AskGeo使用数字地图并具有高度优化的空间索引,允许在一个线程中在我的计算机上每秒运行超过10,000个查询.它是线程安全的,因此甚至可以实现更高的吞吐量.这是一段严肃的代码,我们花了很长时间来开发,所以我们在商业许可下提供它.
它是用Java编写的,因此在PHP中使用它将涉及使用:
http://php-java-bridge.sourceforge.net/doc/how_it_works.php
我们也愿意将它移植到赏金中.有关定价的详细信息以及详细文档,请访问http://askgeo.com.
我希望这很有用.这当然对我正在进行的项目很有用.
我知道这已经过时了,但我花了一些时间寻找这个答案.找到了非常有用的东西 Google通过long/lat执行时区查找.每天2,500个限制(或商业用户100,000个).
https://developers.google.com/maps/documentation/timezone/
如果您知道时区的多边形以查看给定的纬度/经度是否在其中,您应该能够.
对于陆地上的区域,有一些shapefile映射已经为tz(Olson)数据库的时区制作.它们没有像tz数据库那样经常更新,但它是一个很好的起点,对于大多数用途来说似乎非常准确.
| 归档时间: |
|
| 查看次数: |
41837 次 |
| 最近记录: |