Я использую nettopologysuite (порт JTS Topology Suite ).Я использую реализацию SRTtree для хранения списка часовых поясов и соответствующих координат (на основе этого предложения ).Я взял список городов из географических названий, вытащил часовой пояс города и координаты, и я храню их в 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;
}