Карты Google - TileOverlay - Растягивайте плитки для более высоких уровней масштабирования - PullRequest
0 голосов
/ 29 октября 2018

Я создал пользовательский TileProvider из изображения карты, но исходное изображение не покрывает необходимую область карты для разрешения, соответствующего наибольшему уровню масштабирования. По умолчанию поставщик не возвращает плитки, если я не создаю изображения для соответствующих уровней масштабирования. Можно ли скорее увеличить существующую плитку? Я мог бы создать увеличенные плитки, которые будут в основном растянутыми и обрезанными версиями самого высокого разрешения, которое у меня есть, но это кажется избыточным и потребует ненужного дискового пространства / обработки.

Есть ли способ растянуть плитки, когда ни один не доступен для высокого уровня масштабирования, вместо явного создания этих плиток? Я всегда мог установить свойство maxZoom на карте, но у меня разные наложения с разным разрешением. Я мог бы также добавить некоторую интеллектуальную обработку в провайдере, чтобы на лету возвращать версию тайла с субдискретизацией с меньшим разрешением, но я надеюсь, что для этого есть встроенный способ.

1 Ответ

0 голосов
/ 29 октября 2018

Вы не можете растягивать плитки на уровень масштабирования (автоматически), но вместо этого вы можете обернуть своего провайдера плиток URL-адреса одним, который позволяет настроить поведение. Например, я сделал (несколько лет назад) пользовательский провайдер плиток, который кэшировал листы в определенной папке телефона (лучше и дольше кэшировал, чем gmaps), но также мог бы проверить масштабирование (z) и, если это выше, чем определенное значение, вы можете получить плитку для меньшего увеличения и разделить на 4 (без увеличения, но вырезать и увеличить). Результат будет очень плохим, и, честно говоря, я считаю, что лучше создавать их на стороне сервера (возможно, вы используете провайдера WMS?).

...