Как мне вызвать пространственный запрос в CosmosDB для ST_WITHIN

Во-первых, вы можете легко преобразовать любую последовательность в последовательность пар смежных элементов. Просто попробуйте, сдвиньте его вперед и застегните несмещенные и несмещенные копии. Единственный трюк в том, что вам нужно начать с (<something>, 1) или (139, <something>), потому что в этом случае мы хотим не каждую пару элементов, а пару для каждого элемента:

def pairify(it):
    it0, it1 = itertools.tee(it, 2)
    first = next(it0)
    return zip(itertools.chain([first, first], it0), it1)

(This это не самый простой способ написать его, но я думаю, что это может быть наиболее читаемым для людей, которые не знакомы с itertools.)

>>> a = [1, 6, 9, 100, 102, 105, 109, 134, 139]
>>> list(pairify(a))
[(1, 1), (1, 6), (6, 9), (9, 100), (100, 102), (102, 105), (105, 109), (109, 134), (134, 139)]

Затем, с немного более сложную версию ключа Ned Batchelder, вы можете просто использовать groupby.

Однако, я думаю, в этом случае это будет сложнее, чем явный генератор, который делает то же самое.

def cluster(sequence, maxgap):
    batch = []
    for prev, val in pairify(sequence):
        if val - prev >= maxgap:
            yield batch
            batch = []
        else:
            batch.append(val)
    if batch:
        yield batch
-2
задан bobD 25 February 2019 в 09:12
поделиться

1 ответ

В то время как я первоначально пытался сделать выбор для всех документов с местоположением внутри определенного многоугольника, используя функцию ST_WITHIN в CosmosDB - я понял, что мне нужно проверить расположение в памяти в отношении многоугольника (также в памяти), а не выберите данные из CosmosDB на основе параметров геолокации.

Однако я продолжал пытаться использовать функцию ST_WITHIN в CosmosDB, передавая ей оба параметра, что было неверно.

Вместо этого я использовал библиотеку (GeoCordinate.NetCore), чтобы проверить, была ли точка внутри многоугольника.

Не было никакой необходимости использовать функции геолокации CosmobDB.

0
ответ дан bobD 25 February 2019 в 09:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: