2013-11-20 4 views
0

У нас есть данные Locations в базе данных сервера Sql. Четыре точки (bounding rectangle) определены для каждого Location. Четыре пункта: Bottom Latitude, Top Latitude, Left Longitude, Right Longitude. Если googlemaps попадает в любую область ограничивающего прямоугольника, для этого местоположения будет отображаться маркер.Поиск прямоугольника на googlemaps

У нас есть другие местоположения в базе данных, для которых мы сохранили только Lat Lng, и мы ищем их, используя нижеследующий запрос, и он работает!

SELECT * 
FROM  SomeOtherLocationsTable 
WHERE LocationLatitude >= @bottomlat AND 
     LocationLatitude <= @toplat AND 
     LocationLongitue >= @leftlang AND 
     LocationLongitue <= @rightlng 

Как мы можем искать местоположения с четырьмя точками, определенными для них?

+0

Позвольте мне найти решение, а затем я докажу, что этот вопрос не «слишком широк». –

ответ

1

Использование STIntersects

Вместо чисел вы должны хранить geometries (то вы можете использовать один и тот же запрос для ТОЧЕК и многоугольники)

0

Через некоторое R & D мы смогли найти решение ниже и работает для нас (нам нужна функциональность всего места США):

SELECT * 
FROM  LocationsTable 
WHERE  
    NorthEastLongitudeRectangle < @SouthWestLongitudeRectangle OR 
    SouthWestLongitudeRectangle > @NorthEastLongitudeRectangle OR 
    NorthEastLatitudeRectangle < @SouthWestLatitudeRectangle OR 
    SouthWestLatitudeRectangle1 > @NorthEastLatitudeRectangle 

мы все еще тестируем его, но, надеюсь, это будет работать!

Смежные вопросы