Как создать свою карту на телефоне
Мне нужен раздел моего приложения, чтобы иметь интерактивную карту квадратной области, которая состоит из около 10 зданий. Вы должны иметь возможность нажать на здание и получить некоторую информацию о нем. Я знаю, что есть несколько способов сделать это, но я надеюсь, что кто-то с некоторым опытом в этом может дать мне несколько советов.
вот несколько способов, которыми я могу подумать об этом.
Google Maps
Я уже реализовал Google Maps API и он работает довольно хорошо, но на самом деле не имеет эффекта, который я искал. Google Maps требует подключения к интернету и дает вам доступ ко всей карте. Мне нужно, чтобы он был заперт в одном месте.
Webviews
Это кажется отличной альтернативой. Я уверен, что могу придумать простую карту изображений, которая даст вам больше информации при нажатии на определенное здание. Единственная проблема в том, что вам также нужен интернет соединение.
OpenGL?
Я никогда не рассматривал это слишком много, но я слышал, что это трудно и больно реализовать. Он мог бы работать локально, но стоит ли это того?
есть ли другой способ разработки интерактивной карты? Что-то нужно иметь в виду, что я также хотел бы когда-нибудь перенести это на iOS (Если у кого-то есть опыт с этим)
Если вы хотите полный контроль и удобно использовать html и javascript, я бы настоятельно рекомендовал использовать с открытым исходным кодом OpenLayers библиотека. Вы можете создать html-страницу, сохранить ее в активах и запустить локально на устройстве. Вы можете создать свой собственный набор картографических листов или даже использовать один файл jpeg, а затем "отобразить" здания, которые вы хотите на нем, а затем использовать простой, но обширный API OpenLayers, чтобы обеспечить выбор здания и отображение информации. Он даже имеет мультитач функциональность встроенная для панорамирования и масштабирования. Отлично работает на мобильном телефоне.
вы можете увидеть список примеров здесь. Выполнение простого источника представления на любом из примеров даст вам очень четкое представление о том, что они делают. Вы также можете взглянуть на который отображает кучу эскизов изображений в области карты от мерцания с возможностью щелчка для получения более подробной информации. В этом примере используется онлайн-канал, но вы можете легко использовать локальный.. даже один!--9-->передано из приложения в webview.
ps. У меня нет принадлежности к OpenLayers, кроме активного использования его для моих проектов.
В прошлой статье я рассказывал о том, как можно быстро сделать Web-звонилку. А что если поставить более амбициозную задачу — собрать своё собственное приложение с картой, без рекламы и с блэк-джеком? А если всего за пару дней?
Давайте сделаем это! Прошу под кат.
Для начала разберёмся, что нам предстоит сделать. На выходе мы хотим получить приложение со справочными данными и картой. И чтоб работало офлайн. Как разработчика меня в первую очередь интересует как раз карта, ведь показывать справочные данные мы и так умеем. А офлайн — довольно сильное ограничение в этом случае, ведь хороших библиотек с поддержкой офлайна не так много. Поэтому в статье сконцентрируемся на карте, а про справочник поговорим вскользь.
Выбираем движок карты
Первое, что нужно сделать — добыть данные для приложения. На рынке много источников, бесплатных и не очень. Для старта нам вполне подойдёт OpenStreetMap как открытый источник картографических данных. Там же можно взять и какое-то количество POI для нашего справочника.
Следующий шаг — выбираем картодвижок. На просторах интернета их довольно мало, бесплатных ещё меньше, а с поддержкой офлайна вообще единицы. Предлагаю воспользоваться довольно крутым вариантом — mapsforge/vtm. Это векторный OpenGL движок, очень шустрый, поддерживает офлайн, Android, iOS, различные источники данных, кастомную стилизацию, оверлеи, маркеры, 3D и даже 3D-модели объектов! Очень, очень круто.
В репозитории достаточно много примеров для быстрого старта, есть готовые карты, есть плагин, позволяющий собрать собственную карту из данных в OSM формате. Итак, приступаем!
Создаём источник данных MapFileTileSource, указываем местонахождение файла карты. Дополнительно позиционируемся в центр интересующего нас баундинг-бокса, чтоб не оказаться где-то за пределами выбранной локации при старте приложения. Устанавливаем дефолтную тему. Добавляем слой домов и слой подписей. На этом всё. Запускаем — чудеса!
Кажется, быстрее и проще и быть не может.
Делаем геокодинг
Следующий важный шаг — реализация геокодинга. Сама по себе карта — это уже неплохо, но нужна интерактивность. Мы хотим тапать в карту и видеть информацию по объекту, в который попали. И здесь есть некоторая сложность. По большому счёту, полноценный геокодинг в нашей библиотеке отсутствует. Это, пожалуй, самый большой её минус. Если ничего не изобретать, то мы можем воспользоваться имеющейся функциональностью.
Один из вариантов реализации можно посмотреть в репозитории.
В итоге мы уже умеем показывать карту и обрабатывать нажатия. Неплохо.
Добавляем важные мелочи
Давайте добавим пару важных функций.
Начнём с текущей геопозиции. В mapsforge/vtm для этого как раз имеется спец. слой LocationLayer. Использование крайне простое.
Так, позиция есть. Пора добавить кнопку перемещения к текущей позиции, как во всех уважающих себя картографических приложениях.
Ещё нам понадобятся кнопки зума.
И вишенка на торте — компас.
Захватываем мир
Друзья, мы на финишной прямой. Осталось добавить последний штрих. Мы ведь планируем захват мира, а это значит, что его нужно как-то запихать в наше приложение.
И дела обстоят так, что с нашим движком это намного проще, чем кажется.
Нам нужно немного модифицировать метод загрузки карты, добавив в него MultyMapTileSource. Это по сути враппер для любых других источников тайлов, который позволяет отображать на карте сразу всё, что в него добавлено. Просто киллер-фича. В итоге нам остаётся подготовить карту мира с минимальной детализацией, добавить её самой первой в наш враппер, а поверх рисовать всё остальное. Более того, мы можем сразу добавить все карты, какие у нас есть в каталоге с картами приложения! Шикарно, просто шикарно. И не забываем, что это офлайн :)
Пожалуй, мы готовы к релизу. Собираем билд, выкладываем в маркет и получаем заслуженные звёзды :)
Пара ложек дёгтя в огромной бочке мёда
Движок open source, развивается активно, но команда у него, прямо скажем, довольно скромная. По большому счёту это один человек под ником devemux86. И ещё пара ребят контрибьютят время от времени.
Порой встречаются артефакты в отрисовке, какие-то моргания и подёргивания. Но я ни разу не столкнулся с какими-то критическими проблемами и тем более падениями, что не может не радовать.
Есть еще один нюанс, который может не понравиться. Это отрисовка скруглений и окружностей. Пример того, как это выглядит, на скриншоте:
Если в исходной геометрии достаточно много точек (скругление гладенькая), то на карте вы можете увидеть довольно-таки «угловатую» окружность с множеством небольших выпуклостей и вогнутостей. Очевидно, это делается в угоду производительности и размеру map-файла, но выглядит не очень.
Пожалуй, это все минусы на сегодня. Вам решать, сможете вы с ними жить или нет. А мы тем временем используем эту библиотеку уже более 1,5 лет, полёт отличный, по крайней мере, на Андроиде.
Итоги
В этой статье я показал, что даже такую довольно нетривиальную задачу можно решить относительно быстро. Вы получили готовый скелет, с которым можно запрототипировать любой проект, подразумевающий использование офлайн-карты, за минимальное время.
Если возникнет интерес, в следующей статье покажу, как сделать этажи а-ля 2ГИС. И это на самом деле гораздо проще, чем кажется :)
Можно ли создать свою собственную рамку?
Люди подскажите можно ли создать свою собственную рамку. не из стандартных, а свою. если можно то.
Какова примерно трудоёмкость задачи - написать свою собственную ORM?
Какова примерно трудоёмкость задачи - написать свою собственную ORM ? Т.е. сколько по времени.
Какой тип файла в Windows может содержать свою собственную иконку?
Привет всем! Подскажите, пожалуйста, кто сталкивался, какой тип файла в Windows может содержать.
1. Одному её чертить будет очень долго.
2. Для хранения такого количества данных не хватит физической долговременной памяти ни одного налодонника, будь то андроид, айфон, или ещё какой фолишефон.
А если ещё обширней и ещё подробней, то и ещё дольше, а долговременной памяти начнёт не хватать уже лептопам, а потом и настольным персоналкам. Надо делать векторную! А начать - с глобуса в 3Д. (хочется смастерить что-то вроде этого, но подробнее, с городами и без стрельбы) Так ведь и так о ней и речь. Просто векторов может набраться и пара квадриллионов. да нее. . откуда столько? Смотря для какой цели нужна карта. Просто не нужно пытаться объять необъятное. Если карта мира - достаточно точек с городами/сёлами. Если карта города - то одного.
От сочетания разрешения карты с размерами местности. Квадратный километр равняется миллиону квадратных метров, но триллиону квадратных миллиметров, если отрисовывать каждую тонную глыбу, то в метре будет менее десятка векторов и не во всяком, но если каждую пылинку, то в каждом квадратном миллиметре могут быть тысячи векторов. А если тысяча на тысячу километров? А если вся Евразия? Другое дело, что в большинстве случаев это не нужно, но всё зависит от того, чего хотим получить. Если это игровая карта и персонажи - амёбы, то пылинки нужны. На какой местности? А это зависит от того, на какое расстояние амёба может в ходе игры путешествовать и может ли что то важное происходить за сиюсекундным кадром. К лапам перелётных птиц можем цепляться? Переноситься ураганом? Может игра по миру, где сверхзвуковой ветер - норма? Состряпать не реализуемое ТЗ на электронную карту не так сложно, как кажется.
Поскольку все чаще люди расплачиваются посредством карт в интернете, появился спрос на виртуальные карты. Почти все банковские учреждения России предоставляют такую услугу. Система – Visa. Также отмечается тенденция совершения всех действий со смартфонов. Поэтому разберемся, как открыть виртуальную карту самостоятельно с мобильного телефона.
Через систему Qiwi
После регистрации на официальном сайте Qiwi и подтверждения своего аккаунта нужно:
- Перейти на ресурсе в раздел «Банковские карты».
- Выбрать один из предложенных вариантов карт.
- Нажать «Заказать карту».
- Заполнить поле с номером телефона.
- Указать сумму, которая будет находиться на балансе ( от 300 рублей до 250 тысяч рублей ).
- Подтвердить.
- Дождаться смс с реквизитами карты для платежей (для виртуальных карт) либо доставки карты (при заказе пластиковой карты).
виды карт qiwi делятся на виртуальную и пластиковые с расширенными функциями
Цена выпуска зависит от выбранного вида карты. С тарифами можно ознакомиться на сайте. Доступно подключения услуги смс-уведомления. Ее цена 69 рублей, для некоторых тарифов предоставляется бесплатно.
Если выбрали виртуальную карту, то после того, как средства на ней закончатся, нужно будет создать новую.Выпустить виртуальную карту Qiwi можно так же через мобильное приложения кошелька для смартфонов QIWI Кошелек.
Через Яндекс.Деньги (ЮMoney)
На официальном сайте платежной системы перейти в «Карты», а затем в «Виртуальная».
- Нажать кнопку «Получить виртуалку».
- Выбрать платежную систему.
- Ввести платежный пароль.
- Указать номер телефона.
- Дождаться смс с кодом подтверждения.
- Подтвердить выпуск.
Реквизиты карты появятся в личном кабинете на сайте. Также их можно заказать через sms. За открытие плата не взимается, но за снятие и перевод на другие карты/кошельки предусмотрена комиссия в размере 3% (минимально 100 рублей). Плюсом можно считать предоставление кэшбеков.
Карта Юмани так же легко оформляется через мобильное приложение ЮMoney — кошелек, Google Pay, карта. Ранее была акция позволяющая бесплатно получить 50 баллов на Яндекс.Деньги. Регулярно смотрите акции и бонусные программы в приложении, можно получить рублями, но чаще всего бонусами, баллами или кешбеков вернуть часть средств за покупки.
Особенности виртуальных карт
Расплатиться в обычном магазине не получится, как и снять наличные. Их выпускают в двух системах: Виза и Мастеркард. Первая является самой распространенной, поскольку пользователи больше ей доверяют.
Отличительными особенностями являются отсутствие физического носителя и то, что посещение банка для получения не обязательно.
Плюсы и минусы использования виртуальных карт Visa
При использовании виртуальной карты пользователь получает ряд преимуществ:
- Появляется шанс избежать мошеннических действий в отношении основного счета. Пользователь сможет сбрасывать на виртуальную карту необходимую сумму для совершения покупок в интернете, при этом максимально скрывая данные от злоумышленников. Украсть или завладеть ею без согласия владельца практически невозможно.
- Установлен лимит на расходы. Это поможет контролировать траты и экономить.
- Карту можно заблокировать в любой момент через личный кабинет или по звонку на горячую линию сотрудникам банка.
- Виртуальную карточку невозможно потерять, так как она не имеет физического носителя.
К недостаткам можно отнести следующее:
- Часто банки предлагают клиентам карты с предоплатой, в таком случае денежные средства вносятся в фиксированном размере единовременно. Пополнить ее нельзя. Однако можно завести новую карту.
- Короткий срок действия (до двух месяцев) у некоторых карточек. Данное обстоятельство пугает не всех потребителей, но создает определенные трудности.
Для оплаты услуг интернет-казино стоит убедиться в том, что подобные платежи разрешены на этой площадке. Выбирая виртуальную карту нужно внимательно изучить предложения всех электронных «кошельков» и банков, чтобы найти оптимальный вариант по всем критериям.
Анастасия Табалина
Автор статей по настройке и управлению телефонами на базе Андроид и iOS. Помощь в мире онлайна и Интернета: поиск информации, обзоры приложений, программ, настройка и управление
Начну с предыстории. Недавно я пошел в магазин и стоя на кассе, уставший, вечером, держа в руках мобильный телефон, кассир попросил меня предъявить скидочную карту. Я сказал что ее нет, просто не желая лезть в карман, доставать кошелек и эту самую карту в нем, чтобы получить какую-то скидку. Я просто оплатил, и вышел. Когда я пришел домой и взглянул на чек, то понял, что предъявив карту, я бы заплатил примерно на 500 рублей меньше, что меня и с подвигло сделать данную публикацию. Сегодня распишу, как максимально удобно организовать хранение ваших скидочных и дисконтных карт у себя в мобильном телефоне?
Скидочные карты в телефоне
Раньше, как вы все знаете, все пользовались портмоне, картхолдерами, кошельками, чтобы хранить свои банковские и скидочные карты. Но таскать с собой такую кучу пластика не очень удобно, да и каждый раз, в разных магазинах приходится искать нужную карту, предъявлять кассиру, потом убирать обратно.
Теперь, с развитием мобильных технологий, магазины выпускают свои собственные мобильные приложения с возможностью добавления этих самых карт в данное приложение. Но это опять же, не совсем удобно, так как вам:
- приходится лезть в мобильное устройство и искать эти самые мобильные приложения;
- авторизоваться (иногда с полноценным вводом логина и пароля) в личном профиле сервиса.
Некоторые разработчики тоже сочли такой подход неудобным, поэтому сделали собственные приложения, позволяющие хранить все свои дисконтные и скидочные карты в одном месте.
Самыми популярными сторонними приложениями являются Stocard и Кошелек. Оба приложения доступны в AppStore (для iPhone) и в Play Market (для Android).Но опять же, это сторонняя разработка. Да она более удобна для тех, кто не сторонится ставить на свой гаджет полезные приложения. Но для привыкших к использованию всего функционала из коробки все равно это не совсем то, что хотелось. Я же хотел сейчас вам донести, что сегодня можно без особых проблем добавить свои скидочные и дисконтные карты в стандартные приложения от Google и Apple. Это Google Pay и Apple Wallet.
Как добавить скидочную карту в приложении кошелек
-
скачайте приложение «Кошелек» и авторизуйтесь в нем;
Перед оплатой в магазине, предъявите штрих-код карты магазина.
Как добавить скидочные карты в телефон Андроид
С добавлением скидочных карт в Android через Google Pay все просто и не нужно делать никаких лишних действий:
-
зайдите в приложение Google Pay;
готово.
Вводить никаких данных не нужно, авторизоваться тоже не нужно. Карта подтянется и отобразится в разделе "Карты".
Как предъявить карту в Android?
Перед оплатой покупки на кассе, вы можете:
- Открыть стандартное приложение.
- Выбрать карту и показать штрихкод кассиру.
- Тот направиь устройство, считывающее штрих-код, на карту в телефоне, и автоматически подтянет дисконт к вашей покупке.
- Затем можете приступать к оплате.
Как добавить скидочную карту в Wallet?
С айфоном все немного посложнее, так как вам нужно будет скачать мобильное приложение магазина, карту которого вы хотите добавить в Apple Wallet iPhone:
-
скачайте приложение нужного магазина и авторизуйтесь в нем;
Как предъявить карту iPhone?
Здесь все просто:
- Сделайте двойное нажатие по кнопке вызова Apple Pay.
- Там, где появляется карта оплаты, нажмите внизу, чтобы подтянуть остальные карты.
- Они все отобразятся в одной ленте.
- Выбирайте нужную карту и отдайте на сканирование штрих кода кассиру.
- После этого переключаетесь на свою банковскую карту и тут же оплачиваете.
Вот так вот просто можно иметь под рукой весь свой дисконт, наряду с платежными картами под защитой своего смартфона и софта от Google и Apple, а не сторонних разработчиков.
Читайте также: