Правильный способ расширения границ карты без использования bounds.extend(point)

Я использую границы карты для отображения маркеров, попадающих в текущее окно просмотра. При масштабировании или панорамировании границы пересчитываются, и маркеры, которые попадают в эти границы, перерисовываются, эффективно скрывая все, что не содержится в окне просмотра. Я хотел бы сделать это так, чтобы маркеры немного выходили за пределы текущего окна просмотра, однако это потребовало бы одинакового расширения границ со всех сторон, а не использования bounds.extend(point). Это возможно?

        //I would like to extend this value in order to draw features that are slightly off the viewport
        var bounds = map.getBounds()

        //This is how I am currently extending the bounds, it works but I am unsure if it is the correct way.

        bounds.b.b = bounds.b.b - 0.5
        bounds.b.f = bounds.b.f + 0.5
        bounds.f.b = bounds.f.b - 0.5
        bounds.f.f = bounds.f.f + 0.5

        //Determining whether the feature lies within the current viewport
        var result = bounds.contains(Featurecenter)

        center = null

        //If the feature lies within the viewport
        if (result) {
            Feature.setMap(map) //Making the feature visible on the map
        }

person Maeglin77    schedule 26.04.2018    source источник
comment
Что вы пробовали? Код, который вы разместили, не показывает попытки расширения границ каким-либо образом.   -  person MrUpsidown    schedule 26.04.2018
comment
Я не нашел ничего, что можно было бы попробовать, в том смысле, что во всех примерах говорится о расширении границ по определенной координате, что не сработает для меня. Единственная идея, которая у меня есть, - вручную увеличить границы, изменив координаты, но это не похоже на лучшее решение.   -  person Maeglin77    schedule 27.04.2018
comment
Я добавил то, что пробовал, но это работает, но я не уверен, что это правильный способ выполнить эту процедуру.   -  person Maeglin77    schedule 27.04.2018


Ответы (1)


  1. Не используйте b, f и подобные, которые являются недокументированными свойствами, вместо этого используйте документированные методы, такие как getNorthEast(), getSouthWest(), затем lat() и lng(), когда вам нужно извлечь координаты из объекта границ.

  2. Я не знаю другого способа расширить объект границ, кроме как передать ему новые координаты (см. ниже).

  3. Объект LatLngBounds имеет метод extend(), который вы < em>должен использовать для достижения желаемого.

  4. Мы не знаем, «насколько» вам нужно расширить границы; в зависимости от этого и от текущего уровня масштабирования, когда вы хотите расширить свои границы, вам, вероятно, потребуется выполнить некоторые математические расчеты.

  5. Если вам нужно расширить свои границы на заданное (и постоянное) расстояние, какой бы уровень масштабирования ни был установлен в настоящее время, я предлагаю вам прочитать некоторые другие вопросы и ответы, которые объясняют, как это сделать. Например:

person MrUpsidown    schedule 27.04.2018