Как сделать самому плитку для дорожек


Тротуарная плитка своими руками: все секреты изготовления

Самым популярным материалом для создания дорожек в саду на сегодняшний день является тротуарная плитка. Она может быть самых разных форм и оттенков, удобна при создании простых и замысловатых узоров, поэтому так нравится владельцам загородных участков.

Но качественная тротуарная плитка не всем бывает по карману. А вот изготовить её в домашних условиях обходится в разы дешевле. Если соблюдать инструкцию и технологию, вымощенные пешеходные дорожки, прослужат долгие годы.   

Сделать тротуарную плитку своими руками - задача не из простых. Зато процесс изготовления - это творческое и увлекательное занятие, которое дарит массу приятных впечатлений.

Что нужно для изготовление плитки

Главное, что потребуется для создания тротуарной плитки своими руками, это:

Опытные мастера для самостоятельного изготовления плитки в домашних условиях советуют брать цемент марки М500. Изделия из него получаются более прочными.

Песок следует просеять: в нём не должно быть листьев, травы и прочего мусора. Если Вы приобретаете песок в магазине, лучше взять по 04,-0,6 мм фракции. Вода для приготовления раствора тоже должна быть чистой.

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

Сделать тротуарную плитку можно и при помощи подручных средств. Для этого частенько используют пластиковые контейнеры, самодельные формы из деревянных брусков и так далее. Вашу фантазию никто не ограничивает. Для придания рисунка и рельефа также можно применить всё своё воображение - владельцы садовых участков для узора на плитке используют любые материалы: рельефные фигурки и даже листья деревьев.

Другие необходимые материалы и инструменты:

  • Перфоратор с миксерной насадкой или бетономешалка
  • вибростол (желательно)
  • ведро или другая большая ёмкость для замешивания
  • мелкий щебень фракции до 1 см или отсев
  • Пластификатор С-3 (желательно, для придания большей прочности)
  • чистые стеклянные ёмкости
  • мерный стаканчик
  • смазочный материал (эмульсол, ОПЛ-1, СВА-3 и другие смазки без нефтепродуктов)
  • тузлук (соляной раствор) для промывки форм  

Пропорции раствора для изготовления тротуарной плитки

Чтобы сделать тротуарную плитку, есть десятки рецептов. Однако один из них получил наибольшую популярность. Отметим, что этот рецепт приготовления раствора подходит только для серой плитки (без добавления красителей).

Необходимые пропорции для изготовления тротуарной плитки:

  • Цемент - 25 %
  • Песок - 20 %
  • Щебень - 55 %
  • Пластификатор С-3 - из расчета 10 г на 10 кг

На 80 кг раствора понадобится примерно 15 литров воды. Но лучше ориентироваться на консистенцию, заливая воду постепенно.

А для цветной плитки можно использовать этот рецепт:

  • Цемент - 20 кг
  • Песок - 35 кг
  • Щебень - 35 кг
  • Пластификатор - 70 г
  • Неорганический краситель -  500 граммов

Чтобы сделать тротуарную плитку нужного оттенка, есть один секрет. Суть в том, чтобы поэкспериментировать с количеством пигмента на небольшом объёме раствора и запомнить пропорции.

Изготовление тротуарной плитки своими руками: пошаговая инструкция

  1. Подготовьте все ингредиенты, взвесив их перед смешиванием.
  2. Растворите в горячей воде пластификатор и краситель, если будете их использовать. Пластификатор - в поллитровой банке, а краситель - в трёхлитровой. Следите, чтобы не оставалось комков.
  3. В ёмкость с водой влейте растворившийся пластификатор. Начинайте перемешивание.
  4. Затем, продолжая перемешивание, по очереди добавляйте цемент, песок и щебень.  
  5. В последнюю очередь залейте краситель.
  6. Теперь, если необходимо, долейте воды, и перемешивайте несколько минут, пока раствор не превратится в кашеобразную тянущуюся массу.
  7. Приступайте к отливанию формы. Перед тем, как поместить раствор, форму лучше смазать указанными выше средствами.
  8. Залейте бетон в форму.
  9. Теперь нужно убрать пузырьки из раствора, чтобы плита стала более плотной. Для этого используйте вибростол. Если его нет, создайте вибрацию при помощи подручных предметов. Можно использовать даже молоток, постукивая по столу, на котором стоит раствор. Конечно, с вибростолом качество плит будет лучше.
  10. Отправьте плитку сушиться. Формы накройте плёнкой и оставьте, минимум, на сутки. Чтобы плитка застыла наверняка и не потеряла свою форму, лучше подождать пару дней. Желательно, чтобы материал высыхал не слишком быстро. В жаркую погоду можно периодически его смачивать.
  11. После этого плиты можно вынимать из форм, аккуратно постукивая по краям.
  12. Это ещё не всё. Теперь плитка должна окончательно просохнуть и окрепнуть. Лучше всего положить её под навес и подождать несколько дней перед тем, как мостить ею дорожки. 
  13. Перед повторным использованием формы необходимо промыть соляным раствором, а затем чистой водой. Внутри не должно быть остатков цемента, иначе это может испортить внешний вид следующей плиты.
  14. После того, как плиты окончательно просохли, можно использовать их для дорожек.  

Советы:

  • При размешивании раствора не лейте сразу много воды! Если раствор будет слишком жидким - это плохо для прочности конечного продукта.
  • Некоторые владельцы загородных участков кладут формы с плитами сразу на дорожку и оставляют просыхать прямо на месте. Этот вариант тоже уместен, если в вашем саду нет животных, способных испортить фактуру будущей брусчатки. Кроме того, дорожку в данном случае придётся надёжно защищать от дождя, чтобы плитка не размокла.
  • Сделать тротуарную плитку своими руками можно и без применения пластификатора. Однако этот компонент придаст плитке большую прочность и увеличит устойчивость к перепаду температур.
  • Не бойтесь, если в песке попадаются мелкие камни. Качество плиты от этого не снизится, зато фактура будет более оригинальной.
  • Для более качественной укладки тротуарной плитки поверхность следует утрамбовать, для этого Вы можете купить виброплиту или вибротамбовку, а как дешевый аналог можете использовать брус, прикрепив предварительно к нему ручки.

Обилие форм и цветов декоративной тротуарной плитки из цемента позволят Вам превратить сад в настоящий шедевр. Это именно тот случай, когда работа стоит результата. Изготовленные своими руками плитки для садовых дорожек не только красиво смотрятся - они подарят комфортные прогулки по участку даже в самую дождливую погоду!

Настраиваемая линия, отслеживающая треки, которые вы можете распечатать самостоятельно - Robotsquare

'Basic Test Pad' - Поле номера страницы принтера: 2,2,2,2,3,3,3,3,3,11

Хотите, чтобы ваша линия следовала навыкам на тест? Независимо от того, используете ли вы LEGO MINDSTORMS, Arduino или любую другую платформу робототехники, я упростил вам задачу.

Теперь вы можете легко создать свою собственную линию, следующую за дорожками, просто распечатав набор стандартных плиток. Все это бесплатно, так что распечатайте столько плиток, сколько хотите.Для начала я привел три примера, но призываю вас создавать собственные треки. Вы можете найти обзор всех доступных плиток внизу этой страницы.

Скачать все плитки

Щелкните, чтобы загрузить PDF-файл со всеми плитками. Постоянная ссылка: http://robotsquare.com/2012/11/28/line-following/ Просто поделитесь этой ссылкой - не рассылайте PDF-файл. Таким образом, у вас всегда будет последняя версия!

Примеры

'Cool Guy' - поле номера страницы принтера: 2,2,3,3,3,3,3,3,3,3,6,8,8,12,13,22 'Fun Colors': подобрать объекты из желтого цвета, опустите его на зеленый и т. д.- Поле номера страницы принтера: 2,2,2,2,21,25,26,27,28

Обзор имеющихся плиток (не распечатывайте их! Распечатайте PDF-файл, указанный выше!)

Обратная связь

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

И поделитесь своим индивидуальным треком! Пришлите мне изображение готовой дорожки и отправьте поле настроек «Номер страницы принтера», необходимое для распечатки дорожки.

Наконец, не стесняйтесь спрашивать больше плиток в комментарии. Я могу просто добавить их в набор плиток.

,

Advanced MapKit Tutorial: пользовательские плитки MapKit

Обновление примечания : Адам Раш обновил это руководство до Xcode 11, iOS 13 и Swift 5. Майкл Кац написал оригинал.

Карты повсеместно используются в современных приложениях. Они указывают местоположение ближайших достопримечательностей, помогают пользователям перемещаться по городу или парку, находить ближайших друзей, отслеживать прогресс в путешествии или обеспечивать контекст для игры с дополненной реальностью.

К сожалению, это означает, что большинство карт в разных приложениях выглядят одинаково.Booooooring!

В этом руководстве рассказывается, как включать карты, нарисованные от руки, в ваши приложения вместо карт, созданных программно, как это использует Pokémon GO. Вы узнаете, как:

  • Замените существующие плитки MapKit другим набором плиток.
  • Создавайте собственные плитки для отображения на карте.
  • Добавьте на карту пользовательские наложения.

Вы узнаете это, создав приключенческую игру с привязкой к местности. Прогуливаясь по фантастическому Центральному парку, вы встретите грозных зверей, которых победите на пути к славе!

Рисование карты от руки требует значительных усилий.Учитывая размер планеты, это практично только для четко определенной, географически небольшой территории. Если у вас есть четко определенная область для вашей карты, настраиваемая карта может добавить тонны шипения вашему приложению.

Чтобы создать собственные плитки MapKit, вам сначала нужно научиться отображать карту. Чтобы познакомиться с MapKit, ознакомьтесь с учебником по MapKit: Начало работы
или видеокурсом MapKit и Core Location.

Начало работы

Начните с загрузки материалов проекта с помощью кнопки Загрузить материалы вверху или внизу этого руководства.Откройте стартовый проект и проверьте файлы проекта.

MapQuest - это начало веселой приключенческой игры. В реальной жизни герой бегает по Центральному парку Нью-Йорка, но отправляется в приключения, сражается с монстрами и собирает сокровища в альтернативной реальности. У него милый детский дизайн, чтобы игроки чувствовали себя комфортно и показывали, что игра не такая уж серьезная.

В игре есть несколько точек интереса, которые определяют места, где игрок может взаимодействовать с игрой.Это могут быть квесты, монстры, магазины или другие игровые элементы. Вступление в 10-метровую зону вокруг точки интереса начинает встречу. Для этого урока не так важен игровой процесс, как обучение рендерингу карты.

В проекте два тяжеловесных файла:

  • MapViewController.swift : Управляет видом карты и обрабатывает логику взаимодействия с пользователем и изменения состояния.
  • Game.swift : Содержит игровую логику и управляет координатами некоторых игровых объектов.

Основной вид игры - это MKMapView . MapKit использует плитки с различными уровнями масштабирования, чтобы заполнить вид и предоставить информацию о географических объектах, дорогах и т. Д.

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

Вид карты состоит из множества плиток, которые загружаются динамически, когда вы перемещаетесь по виду.Плитки имеют размер 256 на 256 пикселей и расположены в сетке, соответствующей проекции карты Меркатора.

Чтобы увидеть карту в действии, создайте и запустите приложение.

Вау! Какой красивый город. Основным интерфейсом игры является локация, а это значит, что без посещения Центрального парка нечего посмотреть и чем заняться. Но не волнуйтесь, вам пока не нужно покупать билет на самолет.

Место проведения испытаний

В отличие от других руководств, MapQuest - это функциональное приложение сразу после выхода! Но если вы не живете в Нью-Йорке, вы мало что сможете сделать с приложением.К счастью, в Xcode есть как минимум два способа решения этой проблемы.

Моделирование местоположения

Пока приложение все еще работает в iPhone Simulator , задайте местоположение пользователя, перейдя в Features ▸ Location ▸ Custom Location… и установив Latitude на 40.767769 и Longitude на -73.971870 .

Это активирует синюю точку местоположения пользователя и фокусирует карту на зоопарке Центрального парка.Здесь живет дикий гоблин. Вы сразитесь с ним, а затем соберете его сокровища.

После избиения беспомощного гоблина приложение отправит вас в зоопарк. Обратите внимание на синюю точку.

Моделирование приключения

Статическое местоположение полезно для тестирования многих приложений на основе определения местоположения. Однако эта игра требует посещения нескольких локаций в рамках приключения. Симулятор может имитировать смену локации для пробежки, езды на велосипеде и вождения.Эти предварительно включенные поездки предназначены для Купертино, но у MapQuest есть встречи только в Нью-Йорке.

Подобные случаи требуют моделирования местоположения с помощью файла GPX или GPS Exchange Format. Этот файл определяет путевые точки, и симулятор интерполирует маршрут между ними.

Создание этого файла выходит за рамки данного руководства, но пример проекта включает для вас тестовый файл GPX.

Откройте редактор схем в Xcode, выбрав Продукт ▸ Схема ▸ Редактировать схему… .

Выберите Run на левой панели, затем вкладку Options справа. В разделе Core Location установите флажок Allow Location Simulation . В раскрывающемся списке Default Location выберите Game Test .

Теперь приложение будет имитировать перемещение между путевыми точками, указанными в Game Test.gpx .

Сборка и запуск.

В симуляторе ваш персонаж дойдет от метро 5-й авеню до зоопарка Центрального парка, где вам снова придется сразиться с гоблином.После этого отправляйтесь во флагманский магазин вашей любимой фруктовой компании, чтобы купить улучшенный меч. Как только вы закончите цикл, приключение начнется заново.

Теперь, когда герой идет по карте, можно приступить к добавлению пользовательских плиток MapKit.

Замена плитки с помощью OpenStreetMap

OpenStreetMap - это открытая база данных картографических данных, поддерживаемая сообществом. Вы можете использовать эти данные для создания фрагментов карты, как это использует Apple Maps. Сообщество OpenStreetMap предоставляет больше, чем простые дорожные карты, они также предлагают специализированные карты для топографии, езды на велосипеде и художественной визуализации.

Примечание : Политика плитки OpenStreetMap предъявляет строгие требования к использованию данных, атрибуции и доступу к API. Перед использованием плиток в рабочем приложении проверьте соответствие.

Создание нового наложения

Чтобы заменить фрагменты карты, необходимо использовать MKTileOverlay для отображения новых фрагментов поверх стандартных карт Apple Maps.

Откройте MapViewController.swift и замените setupTileRenderer () на следующее:

 private func setupTileRenderer () { // 1 let template = "https: // tile.openstreetmap.org/{z}/{x}/{y}.png» // 2 let overlay = MKTileOverlay (urlTemplate: шаблон) // 3 overlay.canReplaceMapContent = true // 4 mapView.addOverlay (наложение, уровень: .aboveLabels) // 5 tileRenderer = MKTileOverlayRenderer (tileOverlay: наложение) } 

По умолчанию MKTileOverlay поддерживает загрузку плиток с использованием URL-адреса, созданного по шаблону для указания пути к плитке.

Вот что делает код выше:

  1. Сначала вы объявляете шаблон URL для получения плитки из API OpenStreetMap.Вы заменяете {x} , {y} и {z} во время выполнения координатами отдельного фрагмента. То, насколько пользователь увеличил карту, определяет координату z или координату уровня масштабирования. X и y - это индекс плитки для отображаемого участка Земли. Вам необходимо предоставить плитку для каждой координаты x и y для каждого поддерживаемого вами уровня масштабирования.
  2. Затем вы создаете наложение.
  3. Затем вы указываете, что плитки непрозрачны и должны заменить плитки карты по умолчанию.
  4. Вы добавляете оверлей в mapView . Пользовательские плитки MapKit могут располагаться либо над дорогами, либо над надписями (например, с названиями дорог и мест). Плитки OpenStreetMap поставляются с предварительно нанесенными метками, поэтому они должны располагаться над метками Apple.
  5. Наконец, вы создаете средство визуализации плитки, которое обрабатывает отрисовку плиток.

Прежде чем плитки могут появиться, необходимо настроить средство визуализации плитки с помощью MKMapView . Итак, ваш следующий шаг - добавить следующую строку в конец viewDidLoad () :

 MAPview.делегат = себя 

Это устанавливает MapViewController как делегат своего mapView .

Затем в расширение MKMapViewDelegate добавьте следующий метод:

 func mapView ( _ mapView: MKMapView, renderer Для наложения: MKOverlay ) -> MKOverlayRenderer { вернуть tileRenderer } 

Средство визуализации наложения сообщает представлению карты, как рисовать наложение. Средство визуализации фрагментов - это специальный подкласс для загрузки и рисования фрагментов карты.

Вот и все! Выполните сборку и запустите, чтобы увидеть, как OpenStreetMap заменяет стандартную карту Apple. Но как это может работать всего с несколькими строками кода?

На этом этапе вы действительно можете увидеть разницу между картами с открытым исходным кодом и Apple Maps!

Разделение Земли

Магия наложения плитки заключается в возможности преобразования пути плитки в конкретный ресурс изображения. Три координаты представляют путь плитки: x , y и z .X и y соответствуют индексам на поверхности карты, 0,0 - верхний левый фрагмент. Координата z представляет уровень масштабирования и определяет, сколько плиток составляют всю карту.

На уровне масштабирования 0 сетка 1 × 1, требующая одного тайла, представляет весь мир:

На уровне масштабирования 1 вы делите весь мир на сетку 2 × 2. Для этого требуется четыре плитки:

На уровне 2 количество строк и столбцов снова удваивается, требуется шестнадцать плиток:

Этот шаблон продолжается, увеличивая в четыре раза как уровень детализации, так и количество плиток на каждом уровне масштабирования.Для каждого уровня масштабирования требуется 22 * ​​z плитки, вплоть до уровня масштабирования 19, для которого требуется 274 877 906 944 плитки!

Теперь, когда вы заменили плитки Apple на OpenStreetMap, пришло время сделать шаг вперед и показать ваши собственные полностью настраиваемые плитки MapKit!

Создание пользовательских листов MapKit

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

Однако для уровня масштабирования 16 потребуется 4 294 967 296 тайлов для всей планеты! Чтобы нарисовать эти плитки от руки, потребуется больше жизни.

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

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

Для этого вам понадобится собственный подкласс MKTileOverlay .Добавьте один, открыв AdventureMapOverlay.swift и добавив следующий код:

 class AdventureMapOverlay: MKTileOverlay { переопределить URL-адрес функции (путь forTilePath: MKTileOverlayPath) -> URL { пусть tileUrl = "Https://tile.openstreetmap.org/\(path.z)/\(path.x)/\(path.y).png" URL возврата (строка: tileUrl)! } } 

Это устанавливает подкласс и заменяет базовый класс, используя шаблонный URL-адрес, на специальный генератор URL-адресов.

Пока оставьте плитки OpenStreetMap, чтобы протестировать настраиваемое наложение.

Откройте MapViewController.swift и замените setupTileRenderer () на следующее:

 private func setupTileRenderer () { let overlay = AdventureMapOverlay () overlay.canReplaceMapContent = true mapView.addOverlay (наложение, уровень: .aboveLabels) tileRenderer = MKTileOverlayRenderer (tileOverlay: наложение) } 

Это меняет местами пользовательский подкласс вместо оверлея, предоставляющего тайлы OpenStreetMap.

Постройте и снова запустите. Игра выглядит точно так же, как и раньше. Ура!

Вы используете подкласс MKTileOverlay , но все еще загружаете данные OpenStreetMap в этот подкласс. Затем вы замените эти плитки своими собственными плитками MapKit.

Загрузка предварительно обработанных тайлов

А теперь самое интересное. Откройте AdventureMapOverlay.swift и замените URL-адрес (forTilePath :) следующим:

 переопределить URL-адрес функции (путь forTilePath: MKTileOverlayPath) -> URL { let tilePath = Bundle.main.url ( forResource: "\ (path.y)", withExtension: "png", подкаталог: "плитки / \ (path.z) / \ (path.x)", локализация: нет) } 

Здесь вы пытаетесь найти совпадающую плитку в пакете ресурсов, используя известную схему именования. Это найдет файлы, которые уже загружены в ваш проект. В начальном проекте вы можете найти их в папке tile . Вы заметите, что плитки сгруппированы в папки по их координате z, а затем снова сгруппированы по координате x.Сами файлы представляют собой PNG, названные по их координате y.

Затем добавьте следующий код в конец метода:

 if let tile = tilePath { возврат плитки } else { вернуть Bundle.main.url ( forResource: "пергамент", withExtension: "png", подкаталог: "плитки", локализация: нет)! } 

Вернуть найденный тайл, если он существует. В противном случае, если плитка отсутствует, вы замените ее пергаментным узором, который придаст карте фантастический средневековый вид.Это также избавляет от необходимости предоставлять уникальный актив для каждого пути плитки.

Постройте и снова запустите. Теперь вы увидите настраиваемую карту.

Попробуйте увеличивать и уменьшать масштаб, чтобы увидеть различные уровни детализации.

Если вы сейчас слышите телефонный звонок, это значит, что сотрудники Apple пытаются перенести вашу игру в Apple Arcade. ;]

Ограничение уровня масштабирования

Но есть небольшая проблема с вашей игрой. Если вы увеличите или уменьшите масштаб слишком далеко, вы полностью потеряете карту.

К счастью, это легко исправить. Откройте MapViewController.swift и добавьте следующие строки в конец setupTileRenderer () :

.
 overlay.minimumZ = 13 overlay.maximumZ = 16 

Это информирует mapView , что вы предоставили плитки только между этими уровнями масштабирования. При изменении масштаба изображения плитки, представленные в приложении, увеличиваются. Пользователь не получит никаких дополнительных деталей, но, по крайней мере, отображаемое изображение теперь соответствует масштабу.

Вы можете пойти еще дальше и ограничить масштабирование слишком далеко. Откройте MapViewController.swift и добавьте следующие строки под initialRegion в viewDidLoad ()

 mapView.cameraZoomRange = MKMapView.CameraZoomRange ( minCenterCoordinateDistance: 7000, maxCenterCoordinateDistance: 60000) mapView.cameraBoundary = MKMapView.CameraBoundary ( CoordinateRegion: initialRegion) 

Здесь вы используете cameraZoomRange и cameraBoundary , чтобы ограничить возможность увеличения вашего initialRegion .

Создание плиток

Шансы, что вы читаете это руководство по созданию фантастической приключенческой игры, очень малы. В этом разделе вы узнаете, как создавать собственные плитки MapKit, соответствующие вашим потребностям.

Примечание : Этот раздел является необязательным, так как он описывает, как рисовать определенные плитки. Чтобы перейти к другим методам MapKit, перейдите к разделу Fancifying the Map .

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

Откройте папку проекта и посмотрите MapQuest / tile / 14/4825 / 6156.png . На этой плитке показана нижняя часть Центрального парка с уровнем масштабирования 14. Приложение содержит десятки этих маленьких изображений, которые образуют карту Нью-Йорка, где происходит игра. Каждый был нарисован вручную с использованием элементарных навыков и инструментов.

Выбор плитки, которая вам нужна

Первый шаг к созданию собственной карты - это выяснить, какие плитки вам нужно будет нарисовать.Для начала загрузите исходные данные из OpenStreetMap и используйте такой инструмент, как MapNik, для создания из них изображений листов.

К сожалению, исходный код составляет 57 ГБ! Кроме того, инструменты немного неясны и выходят за рамки этого руководства. Однако для ограниченного региона, такого как Центральный парк, есть более простой способ обхода.

В AdventureMapOverlay.swift добавьте следующую строку к URL-адресу (forTilePath :) :

 print ("запрошенный фрагмент \ tz: \ (path.z) \ tx: \ (path.х) \ ти: \ (path.y) ") 

Сборка и запуск. Теперь, когда вы масштабируете и перемещаете карту, пути к плиткам отображаются в выводе консоли. Это показывает, какие именно плитки вам нужно будет создать.

Примечание : Если вы работаете на симуляторе, вы, вероятно, увидите множество ошибок вида Ошибка компилятора: недопустимый файл библиотеки в консоли Xcode. Это ошибка симулятора, и ее можно спокойно игнорировать. К сожалению, это делает консоль довольно шумной, что затрудняет просмотр результатов вашего print операторов.

Далее вам нужно получить плитку источника и настроить ее. Вы можете повторно использовать схему URL-адресов, указанную ранее, чтобы получить плитку OpenStreetMap.

Следующая команда терминала захватит плитку и сохранит ее локально.

 curl --create-dirs -o z / x / y.png https://tile.openstreetmap.org/z/x/y.png 

Вы можете изменить URL-адрес, заменив x, y и z конкретным путем на карте. Для южной части Центрального парка попробуйте:

 завиток --create-dirs -o 14/4825/6156.png \ https://tile.openstreetmap.org/14/4825/6156.png 

Эта структура каталогов - уровень масштабирования / x-координата / y-координата - упрощает поиск и использование плиток в дальнейшем.

Настройка внешнего вида

Следующим шагом будет использование базового образа в качестве отправной точки для настройки. Откройте плитку в своем любимом редакторе изображений. Например, так это выглядит в Pixelmator:

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

Если ваш инструмент поддерживает слои, рисование различных объектов на отдельных слоях позволит вам настроить их так, чтобы они выглядели лучше. Использование слоев делает рисование более щадящим, так как вы можете использовать другие функции, чтобы скрыть беспорядочные линии.

Теперь повторите этот процесс для всех плиток в наборе, и все готово. Как видите, это займет немного времени.

Вы можете немного упростить процесс:

  • Сначала объедините все плитки для всего слоя.
  • Нарисуйте пользовательскую карту.
  • Разделите карту на плитки.

Укладка плитки

После создания новых плиток поместите их обратно в структуру папок плитки / уровень масштабирования / x-координата / y-координата в проекте. Благодаря этому вещи будут организованы и легко доступны.

Это также означает, что вы можете легко получить к ним доступ, как вы это делали в коде, добавленном для URL-адреса (forTilePath :) .

 let tilePath = Bundle.main.url ( forResource: "\ (path.y)", withExtension: "png", подкаталог: "плитки / \ (path.z) / \ (path.x)", локализация: нет) 

Вот и все. Вы готовы начать рисовать красивые карты!

Изучение карты

Карта выглядит великолепно и соответствует эстетике игры. Но есть еще много всего, что нужно настроить!

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

Замена пользовательской аннотации

Начните заменять значок своего героя, открыв MapViewController.swift и добавив следующий метод в расширение MKMapViewDelegate :

 func mapView ( _ mapView: MKMapView, viewFor аннотации: MKAnnotation ) -> MKAnnotationView? { переключить аннотацию { // 1 случай пусть пользователь как MKUserLocation: // 2 если разрешить existingView = mapView ,dequeueReusableAnnotationView (withIdentifier: "пользователь") { вернуть existingView } else { // 3 let view = MKAnnotationView (аннотация: пользователь, reuseIdentifier: "пользователь") view.image = #imageLiteral (имя ресурса: "пользователь") Вернуться мнение } дефолт: вернуть ноль } } 

Этот код создает настраиваемое представление для пользовательской аннотации. Вот как:

  1. Если MapKit запрашивает MKUserLocation , вы вернете пользовательскую аннотацию.
  2. Представления карты содержат пул многоразовых представлений аннотаций для повышения производительности. Сначала вы пытаетесь найти представление для повторного использования и вернуть его, если оно есть.
  3. В противном случае вы создаете новый вид. Здесь вы используете стандартный MKAnnotationView , который довольно гибок. Здесь вы используете его только для изображения авантюриста.

Сборка и запуск. Вместо синей точки вы теперь увидите блуждающую фигурку из палочек.

Не самый героический из героев, но тем не менее герой! :]

Аннотации для определенных мест

MKMapView также позволяет отмечать ваши собственные достопримечательности.MapQuest подыгрывает метрополитену Нью-Йорка, рассматривая систему метро как большую большую варп-сеть, позволяющую телепортироваться с одной станции на другую.

Чтобы это было понятно вашим игрокам, вы добавите на карту несколько маркеров ближайших станций метро. Откройте MapViewController.swift и добавьте следующую строку в конец viewDidLoad () :

 mapView.addAnnotations (Game.shared.warps) 

Сборка и запуск. На некоторых станциях метро теперь есть значки.

Как и синяя точка, которая раньше показывала местоположение пользователя, эти стандартные метки не соответствуют эстетике игры. На помощь приходят пользовательские аннотации.

В mapView (_: viewFor :) добавьте следующий регистр к switch , над регистром по умолчанию:

 case let warp as WarpZone: если разрешить existingView = mapView.dequeueReusableAnnotationView ( withIdentifier: WarpAnnotationView.identifier) ​​{ existingView.annotation = аннотация вернуть existingView } else { return WarpAnnotationView ( аннотация: деформация, reuseIdentifier: WarpAnnotationView.identifier) } 

Используйте тот же шаблон, что и ранее, для аннотации. Если есть уже существующий, верните его, в противном случае создайте новый. Собери и запусти снова.

В представлении настраиваемых аннотаций теперь используется шаблонное изображение и цвет для конкретной линии метро.Если бы только метро было мгновенным перекосом в реальной жизни!

Использование пользовательского рендеринга наложения

MapKit предлагает множество способов украсить карту для игры. На следующем шаге вы воспользуетесь преимуществом одного из них, используя MKPolygonRenderer , чтобы нарисовать эффект мерцания на основе градиента на резервуаре.

Начните с замены setupLakeOverlay () в MapViewController.swift на:

 private func setupLakeOverlay () { // 1 let lake = MKPolygon ( координаты: & Game.shared.reservoir, count: Game.shared.reservoir.count) mapView.addOverlay (озеро) // 2 shimmerRenderer = ShimmerRenderer (оверлей: озеро) shimmerRenderer.fillColor = #colorLiteral ( красный: 0,2431372549, зеленый: 0,5803921569, синий: 0,9764705882, альфа: 1) // 3 Timer.scheduledTimer (withTimeInterval: 0,1, повторы: истина) {[слабый я] _ в самостоятельно? .shimmerRenderer.updateLocations () самостоятельно? .shimmerRenderer.setNeedsDisplay () } } 

Это устанавливает новый оверлей от:

  1. Создание MKPolygon той же формы, что и резервуар.Эти координаты предварительно запрограммированы в Game.swift .
  2. Настройка настраиваемого средства визуализации для рисования многоугольника со специальным эффектом. ShimmerRenderer использует Core Graphics для рисования многоугольника и градиента поверх многоугольника.
  3. Поскольку средства визуализации оверлея не предназначены для анимации, для обновления наложения устанавливается таймер 100 мс. Каждый раз, когда наложение обновляется, градиент немного сдвигается, создавая эффект мерцания.

Затем замените mapView (_: rendererFor :) на:

 func mapView ( _ mapView: MKMapView, renderer Для наложения: MKOverlay ) -> MKOverlayRenderer { если наложение AdventureMapOverlay { вернуть tileRenderer } else { вернуть shimmerRenderer } } 

Выбирает правильное средство визуализации для каждого из двух наложений.

Строй и беги, затем панорамируй по водоему, чтобы увидеть Мерцающее море!

Поздравляем! Вы узнали, как использовать MapKit для создания пользовательских карт для ваших приложений.

Куда идти дальше?

Загрузите файлы завершенного проекта, нажав кнопку Загрузить материалы вверху или внизу руководства.

Создание нарисованных вручную пользовательских плиток MapKit отнимает много времени, но придает вашим приложениям особый эффект присутствия.И хотя создание ресурсов требует определенных усилий, использовать их довольно просто.

В дополнение к базовым плиткам OpenStreetMap имеет список специализированных поставщиков плиток для таких вещей, как езда на велосипеде и рельеф. OpenStreetMap также предоставляет данные, которые можно использовать, если вы хотите программно создавать собственные плитки.

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

Наконец, если вы хотите еще больше расширить представления MapKit, взгляните на учебник MapKit: Overlay Views.

Если у вас есть какие-либо вопросы или комментарии к этому руководству, не стесняйтесь присоединиться к обсуждению ниже!

Данные и изображения OpenStreetMap принадлежат © OpenStreetMap. Данные карты доступны по лицензии Open Database License, а данные листов картографии лицензированы как CC BY-SA.

raywenderlich.com Еженедельно

Информационный бюллетень raywenderlich.com - это самый простой способ оставаться в курсе всего, что вам нужно знать как мобильному разработчику.

Получайте еженедельный дайджест наших руководств и курсов, а в качестве бонуса получите бесплатный углубленный курс по электронной почте!

,

Что такое плитка, как работает функция поиска с плиткой и для чего ее можно использовать

(Pocket-lint) - Tile наиболее известен своими Bluetooth-трекерами. Вы можете подключиться к Tile и использовать его для отслеживания своего имущества - например, классическим примером являются ваши ключи.

Но с Tile происходит гораздо больше, поскольку компания стремится расширить свое предложение, упростив отслеживание вашего имущества или поиск предметов, которые вы потеряли.

Вот как работает Find with Tile и все, что вам нужно знать.

Что такое плитка?

Tile - компания, предлагающая трекеры, которые подключаются через Bluetooth Low Energy (Bluetooth LE или BLE), что позволяет владельцу использовать приложение для смартфона для поиска этих трекеров по запросу.

Компания продает ряд различных трекеров - Tile Pro, Tile Mate, Tile Slim (и несколько более старых моделей), - а также работающие другие устройства с поддержкой Bluetooth, например наушники.

В случае наушников вам не понадобится отдельный трекер Tile, система будет работать с использованием встроенного в устройство оборудования Bluetooth, известного как Find with Tile, если эта технология поддерживается.

squirrel_widget_168258

Существует 26 миллионов плиток (по данным за 2019 год), с 6 миллионами запросов местоположения каждый день - и Tile сообщает, что на нее приходится более 90 процентов рынка Bluetooth-трекеров США - так что это довольно обширная система. ,

Что такое поиск с плиткой?

Как мы только что упоминали выше, Find with Tile расширяет систему Tile за пределы собственных трекеров. Он позволяет включать другие устройства Bluetooth в экосистему Tile, что означает, что вы можете находить и определять местоположение этих устройств так же, как и трекер Tile.

Например, есть поддержка Bose, что означает, что вы можете зарегистрировать наушники SoundSport в приложении Tile и использовать приложение для поиска этих наушников. Беспроводная связь Sennheiser Momentum также предлагает эту технологию.К аппаратному обеспечению нечего добавить, все это программное обеспечение и использует существующий чип Bluetooth и аккумулятор наушников.

Система Find with Tile предназначена для объединения гораздо большего количества вещей, а это означает, что вы можете отслеживать целый ряд различных элементов, и уже объявлено о более 20 партнерских отношениях.

Tile предназначен для соединения всех ваших устройств, чтобы вы могли легко найти что-то, что вы потеряли дома, оставили в спортзале, в автобусе или где-либо еще.

Как работает расположение плитки?

Система определения местоположения Tile использует этот BLE для подключения к устройствам - все, что ей нужно, это Bluetooth и немного времени автономной работы.Когда устройство находится в пределах досягаемости, вы можете просто открыть приложение на своем телефоне, коснуться плитки и найти ее - затем плитка воспроизведет мелодию, чтобы вы могли ее найти.

Если вы находитесь вне зоны досягаемости, вы можете увидеть последнее зарегистрированное местоположение (которое взято из местоположения вашего телефона в то время), чтобы вы могли повторить свои шаги, чтобы найти этот потерянный предмет.

Но здесь есть и гораздо более масштабная игра сообщества. Если вы больше не находитесь в этой области, вы можете нажать кнопку, чтобы уведомить вас, когда ваше устройство будет найдено и в игру вступит остальная часть сообщества Tile.Когда ваш потерянный предмет обнаруживается другим пользователем плитки, местоположение возвращается вам.

Это все анонимно, поэтому вы не знаете, кто обнаружил ваш предмет, и они не знают, что они обнаружили ваш предмет, вы просто передадите местоположение вашему приложению, чтобы вы могли пойти и найти пропавшие вещи.

Использование этого более широкого сообщества дает Tile большое преимущество - если вы живете в каком-либо городском или пригородном районе, вероятно, вокруг вас будут тысячи пользователей Tile, поэтому обнаруживать вещи, которые вы можете потерять, становится проще.По мере того, как сообщество растет за счет большего числа партнерств, плотность сообщества Tile будет увеличиваться, снова повышая вероятность того, что ваш пропавший предмет будет найден.

Система работает и в обратном направлении - вы можете использовать любую плитку, чтобы найти свой телефон двойным нажатием кнопки.

squirrel_widget_168266

Какие устройства и компании работают с Tile?

У этого вопроса две стороны. Во-первых, Tile может работать в программной форме, если знает, какое оборудование Bluetooth установлено на устройстве.Возвращаясь к тем наушникам Bose SoundSport, например, это было программное решение, добавленное, когда наушники уже были в продаже.

Но Tile также работал над созданием партнерских отношений для интеграции функций Tile с поставщиками оборудования Bluetooth. Эти компании включают:

  • Qualcomm
  • Dialog Semiconductor
  • Silicon Labs
  • Кипарисовик
  • Toshiba
  • Nordic Semiconductor

Эти компании являются одними из крупнейших поставщиков Bluetooth на рынке, и это означает, что если компания производит новое устройство - например, фитнес-трекер - они могут выбрать расположение плитки в качестве функции своих наушников, поскольку она изначально поддерживается оборудование Bluetooth.Например, Nordic Semiconductor используется Garmin и Polar, поэтому в будущих устройствах можно будет предложить функцию поиска с помощью плитки.

Некоторые крупные бренды уже работают с Tile, в том числе:

  • Bose
  • Skullcandy
  • Самсонит
  • Гершель
  • П2
  • KeySmart
  • Xfinity
  • Монстр
  • Кочевник
  • Повышенный

Некоторые продукты этих брендов включают функцию «Найти с плиткой», позволяющую легко находить эти предметы дома или на улице.

Pocket-lint

Плитка и умный дом

Однако поиск ваших устройств не ограничивается телефоном. Tile также имеет партнерские отношения с Google и Amazon, что означает, что вы также можете использовать Google Assistant или Alexa для поиска устройств, что означает, что вы можете использовать свой голос. Вы также можете использовать ярлыки Siri.

Tile также будет поддерживать Assistant Connect, функцию Google, которая позволяет взаимодействовать без использования облака Google. В этом случае вы сможете найти плитку с помощью Google Home или Nest Hub, и никакой информации не нужно будет передавать через облако - это может быть точка-точка в вашем доме.

Используя Amazon Alexa, например, вы должны включить Tile Skill, войти в свою учетную запись, чтобы связать их - тогда вы можете просто сказать «Alexa, попросите Tile найти мои ключи», он найдет и позвонит на устройство. на ваших ключах.

Есть еще большая домашняя игра с Tile. Comcast является одновременно инвестором и партнером Tile, и да, телеприставки Comcast также могут использоваться для функций Tile, поиска потерянных предметов с вашего телевизора.

Для Великобритании, поскольку Comcast купила Sky, вероятно, что та же функциональность будет распространена на собственные телеприставки Sky в будущем.Это может не только помочь найти что-то, что вы потеряли в доме, но и поможет расширить сеть Tile по внутренним точкам, чтобы снова расширить сеть сообщества Tile.

Подписка на плитку

Большинство функций плитки доступны вам без дополнительной оплаты - это в первую очередь покрывается стоимостью покупки устройства. Но есть предложение подписки с уровнем Premium, которое открывает некоторые дополнительные функции.

При годовой стоимости 29 долларов США.99 (или 2,99 долл. США в месяц) вы можете получить доступ к ряду других функций:

  • Неограниченный доступ к устройствам Tile с друзьями семьи
  • Умное оповещение, чтобы сообщить вам, если вы уходите из дома без чего-нибудь, что обычно берете с собой
  • 30-дневная история местоположений, чтобы вы могли видеть, где был ваш Tile
  • Бесплатная замена батареи для Tile Pro или Mate
  • 3 года гарантии на вашу плитку
  • Служба поддержки премиум-класса

А как насчет службы Apple AirTags?

Apple недавно объявила об объединении «Найти друзей» и «Найди мой iPhone» в новое приложение «Найди меня».Ходят слухи, что Apple заинтересована в запуске собственного тега, похожего на Tile.

Служба Apple Find My в настоящее время использует службы определения местоположения на своих iPhone, часах и других устройствах, чтобы помочь вам найти их, что вы можете сделать через iCloud, на своем iPhone или iPad.

Хотя Apple не делала никаких заявлений о трекере, он будет полностью отделен от системы Tile. Потенциально он будет отлично служить пользователям Apple (как, например, для отслеживания iPad или iPhone), но будет ли он когда-либо распространен на оборудование сторонних производителей, мы просто не знаем.

squirrel_widget_168274

Написано Крисом Холлом.

,

Смотрите также