【发布时间】:2011-09-09 16:00:38
【问题描述】:
我正在使用nettopologysuite(JTS Topology Suite 的一个端口)。我正在使用 SRTtree 实现来存储时区列表和相应的坐标(基于此suggestion )。我从地名中获取了城市列表,提取了城市的时区和坐标,并将它们存储在 STRtree 中。我遇到的问题是这个实现不提供“最近”功能。为了进行查询,我必须提供一个起点和一个圆周。目前,我在循环中将圆周增加 0.1,直到找到一些结果,然后我取第一个。有更好的方法吗?
这就是我正在做的事情:
public static SRTtree Cities { get; set; }
public static string GetTimezone(double lat, double lng)
{
var envelope = new Envelope(new Coordinate(lat, lng));
IList results;
do
{
envelope.ExpandBy(.1);
results = Cities.Query(envelope);
} while (results.Count == 0);
return results[0] as string;
}
【问题讨论】: