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

Я использую границы карты для отображения маркеров, которые попадают в текущий видовой экран. При масштабировании или панорамировании границы пересчитываются, а маркеры, попадающие в эти границы, перерисовываются, фактически скрывая все, что не содержится в области просмотра. Я хотел бы сделать это так, чтобы маркеры слегка вытягивались из текущего видового экрана, однако это потребовало бы расширения границ в равной степени со всех сторон, а не использования 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
        }

1 Ответ

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...