WMSLayer и TileLayer

Добрый день!
Хотелось бы больше узнать в чем разница между TileLayer и WMSLayer.
Насколько я понимаю они грубо говоря выполняют одну функцию - подложку, непосредственно карту. В чем тогда их принципиальная разница?
Может кто то посоветует URL хороших красивых WMS - серверов. Я конечно сам уже погуглил, но все же, может будут какие то советы. Требуется самая обычная карта с улицами, домами и тд. В идеале конечно использовать google-карты (как в аддоне Charts), но я прочитал, что они свои данные не предоставляют в открытый доступ.
И еще вот такой вопрос: скопировал настройки слоя из документации:

<maps:wms id="wms"
                              url="http://ows.terrestris.de/osm/service?"
                              layers="OSM-WMS"
                              format="image/png"/>

и все буквы\цифры почему то очень сильно жмет по горизонтали, так что даже невозможно разобрать
image
В чем может быть дело?

Дополнительный вопрос:
Есть ли способ как то кластеризовать маркеры, созданные на CanvasLayer?
VectorLayer очень неудобен тем, что нужно добавлять отдельные атрибуты в сущности и использовать контейнеры.
Куда проще нарисовать вручную на canvas’e маркеры, соответствующие объектам. Однако почему для них не предусмотрена кластеризация?

Добрый день!

WMS - это OGC стандарт. Такой формат обычно используется для внутренних карт предприятия, когда на основе ГИС-данных генерируется карта, которую затем можно получить в виде изображений при обращении к WMS-сервису. Для этого, например, может использоваться GeoServer. Обычно это детализированные карты, содержащие большое количество специфичной информации (в виде собственных слоев) на ограниченном участке (т.е. не весь мир, а страна, область, регион). Таким образом, это более профессиональные карты, но в то же время более тяжеловесные и не так хорошо оптимизированны для использования в web-приложениях.
Карты в виде тайлов, как раз более легковесные и оптимальны для использования в web-приложениях.
Более подробную информацию об этом можно найти в документации.

В таком случае, Вам вполне подойдет подложка в виде тайлов, например, OpenStreetMap. В документации можно найти примеры других тайл-провайдеров.

Скорей всего, это особенность конкретно данной карты. По своему опыту могу сказать, что найти хороший бесплатный WMS-сервис не очень просто, в отличие от тайл-сервисов.

Для CanvasLayer такой возможности нет. CanvasLayer предполагается для использования в качестве вспомогательного слоя, а для отображения большого количества однородных объектов логичнее использовать отдельный слой.

Это спорный вопрос, ведь векторный слой автоматически подтягивает данные из контейнера и отображает их на карте. Т.е. самому ничего не надо строить, достаточно прописать контейнер. А на Canvas все объекты нужно будет добавлять вручную.

В качестве альтернативного варианта могу предложить создание неперсистентной сущности с полем Point и заполнение контейнера этими сущностями для отображения на векторном слое.