Imagesforyou.ru

IMG FOR YOU — ИНТЕРЬЕРНАЯ ФОТОСТУДИЯ
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Записываем видео из Google Street View

Записываем видео из Google Street View

Сама по-себе возможность, конечно же замечательная, но сайт не позволяет сохранять результаты экспериментов в виде роликов. Вот эту досадную неприятность решено было исправить, и не просто исправить, а реализовать в виде программки для iOS, помогая тем самым, превратить iPhone или iPad в устройство для создания, а не потребления, контента.
Как всё устроено
Итак, на сегодняшний день у нас есть несколько ресурсов, позволяющих снимать Стрит Видео. В первую очередь, это, hyperlapse.tllabs.io, который позволяет отметить 2 точки, проложить между ними маршрут и наслаждаться зацикленной анимацией.
image
Второй сайт, который позволяет смотреть стрит видео это http://track-kit.net
image
Этот сайт позволяет просматривать видео для созданных или импорированных треков. Несмотря на то, что Стрит Видео здесь не является основной функцией, можно сгенерировать прямую ссылку именно на видео для тека. Например, такую:
http://track-kit.net/maps_s3/index.php?track=8821.gpx&svv=134
Правда, на моём Маке более-менее работает только в Хроме.

  1. Проложить маршрут от точки А к точке Б. Желательно, отобразить доступность Гугл Стрит Вью.
  2. Загрузить кадры панорам
  3. Дать возможность пользователю отредактировать панорамы, например, направив камеру на какой-лиобо объект.
  4. Сгенерировать видео из набора кадров
  5. Решить ряд типичных для iOS проблемм.
Прокладываем маршрут

Для этого мы используем Google Maps SDK for iOS и Google direction API
С помощью Google direction API запрашиваем у Google набор точек между начальной и конечно точек пути в закодированном виде.
Google Maps SDK for iOS (класс GMSPath) понадобится чтобы перевести закодированый список точек который получили от Google в широту и долготу.
Для общения с Google используется AFNetworking.

Если загрузка прошла успешно в списке coordinatesArr мы храним набор координат точек нашего пути.
P.S. у Google direction API есть 1 нюанс — если необходимо провести маршрут не через 2, а скажем, через 20 точек, то придется делать несколько запросов для интервалов точек пути так как если передать в запрос через «&waypoints» большое количество промежуточных точек, Google может вернуть ошибку.

Читайте так же:
Можно ли ставить ps4 вертикально без подставки
Загружаем панорамы

Для загрузки панорамы можно использовать запрос вида cbk0.google.com/cbk?output=json&ll=latitude,longitude
Он нам вернет информацию о ближайшей к точке панораме с координатами latitude,longitude.
Самое важное что мы можем получить это «panoId» — id нужной нам панорамы (помимо panoID мы можем получить так же информацию об углах смещения панорамы, которые могут пригодиться если надо будет повернуть панораму в определенном направлении):

Далее с помощью полученного ID панорамы мы можем через запрос:
cbk0.google.com/cbk?output=tile&panoid=panoid&zoom=zoom&x=x&y=y
получить уже необходимые нам тайлы панорамы, где panoId — это полученный ранее идентификатор панорамы, zoom — это масштаб панорамы (ее размер), x и y — это номера тайла панорамы по вертикали и горизонтали, при этом количество тайлов панорамы зависит от введенного нами зума. Например, если мы выберем zoom = 3, то панорама будет состоять из 7 тайлов в ширину и 3 в высоту.
То есть чтобы получить целую панораму нам надо загрузить все тайлы:

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

Генерируем видео

Для этого нам понадобится библиотека AVFoundation:

От туда берем всего 3 класса:
AVAssetWriter — запись медиа данных в файл
AVAssetWriterInput — Добавляет пакет медиаданных в AVAssetWriter для записи в файл
AVAssetWriterInputPixelBufferAdaptor — предоставляет пакет видеоданных (CVPixelBuffer) для AVAssetWriterInput
Соответственно нам надо их где-то определить:

После этого все готово к записи видео.
В AVAssetWriterInput имеется функция:
(void)requestMediaDataWhenReadyOnQueue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block
Которая, вызывает Block каждый раз когда нужна новая порция данных.

Скорость проигрывания видео контролируется с помощью переменной presentationTime, которая указывает время кадра в выходном файле
UIImage *image — это текущий кадр
Когда все кадры записаны в видео, мы сообщаем videoWriter и writerInput о том что необходимо остановить запись видео:

Читайте так же:
Можно ли подключить dualshock 4 к ps3

Функция получения CVPixelBufferRef с изображения:

Работа в фоновом режиме

Чтобы видео продолжало генерироваться когда наше приложение находится в фоновом режиме, можно использовать long-running background task для этого советую использовать неплохой класс
https://github.com/vaskravchuk/VideoMaker/

Добавляя немножко опций, получаем такой вот программный продукт.
itunes.apple.com/us/app/street-video-maker-free-create/id788610126?mt=8
image
Вот пример видео, созданного при помощи такой программы:

Google Street View Car Crashes in Grand Rapids Michigan

Posted on December 4, 2016 Author Google Street View Guy Categories US Tags blueman, mask Leave a comment on Blue Masked Man?

You know, the ones that take the roadside pictures that appear on Google Maps. But one such car in Grand Rapids didn’t have the best day on the road on Monday, Oct. 3.

According to Grand Rapids Police Sgt. Terry Dixon, a Google street view car was involved in a minor crash around 3:22 p.m. The two-car crash occurred at the intersection of Michigan Street and Houseman Avenue.

Read more here: http://www.mlive.com/news/grand-rapids/index.ssf/2016/10/google_street_view_car_involve.html

Google Street View Chile Captures a Bike Fail

Posted on October 4, 2016 Author Google Street View Guy Categories US Tags car, crash Leave a comment on Google Street View Car Crashes in Grand Rapids Michigan

Где остановиться в Паттайе

Центральная Паттайя и Южная Паттайя – районы города, наиболее посещаемые туристами, особенно из-за их близости к пляжам, и очень легко найти отель для проживания во время отпуска.

Если вы ищете хороший 3-х и 4-звездочный отель, предпочтительнее выбрать отель Ibis, Mercure или Holiday Inn, который обеспечивает отличный уровень гигиены, безопасности и комфорта без необходимости тратить целое состояние. В ценах в среднем колеблющихся около 25-30 евро за ночь за двухместный номер.

Те, кто хочет роскошный отель без лишних затрат, могут забронировать в Hilton на Центральном пляже Паттайи или в MGallery Baraquda Pattaya. Все 5-звездочные отели расположены в самом центре ночной жизни города и предлагают бассейны, лаунж-бары, рестораны и все самое лучшее, что вы можете себе представить для поездки мечты.

Читайте так же:
Можно ли переворачивать стиральную машину на бок

Стоимость за двухместный номер обычно колеблется около 70-100 евро, но она может достигать максимум 170-200 евро для самых известных гостиничных сетей.

Паттайя, Тайланд: что посмотреть и чем заняться

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector