Как определить, находится ли точка long / lat на видимой карте bing - PullRequest
0 голосов
/ 10 марта 2012

Это должно быть довольно просто, но я не получаю его.

У меня есть база данных с указанным lon / lat.

После загрузки карты bing я получаю границы

var view = map.getBounds();

, а затем вызываю веб-метод, чтобы получить все местоположения, которые должны быть показаны (в пределах видимой карты).

Я не могу выяснить запрос, чтобы получить местоположения (во всех из них указан lon / lat).

Это, очевидно, НЕ работает, так как, когда в игру вступают отрицательные значения, они портят запрос:

SELECT Location_name, longtitude, latitude  FROM location_view WHERE latitude< '40.112'   and latitude> '35.783'   and longtitude< '28.10453' and longtitude> '19.315' 

Есть ли нормализованный способ сделать это?Значит сравнение будет работать?

1 Ответ

0 голосов
/ 10 марта 2012

Ваш запрос будет работать абсолютно нормально с отрицательными значениями: долгота -130 по-прежнему западнее долготы -120.Единственная ситуация, в которой это не сработает, - это если границы вашей карты пересекают 180-й меридиан.Т.е. самая "западная" долгота равна 170, а "самая восточная" широта равна -170.

Какую базу данных вы используете?Если вы используете SQL Server, вы можете определить каждое ваше местоположение как точку, используя тип данных географии.Тип данных географии работает на круглой модели Земли, поэтому он будет правильно учитывать пересечение 180-го меридиана с помощью запроса, подобного следующему:

...