Создайте интерактивную карту с помощью Leaflet JS

  1. Что такое Leaflet JS?
  2. Настройка проекта
  3. Почему я не вижу карту?
  4. Зарегистрируйтесь для получения ключа API
  5. Выбрать и подготовить данные
  6. Тип данных, который требуется Leaflet
  7. Где найти geoJSON
  8. Построение данных на карте
  9. Добавить всплывающее окно для каждого маркера
  10. Стилизация всплывающего контента
  11. Окончательный результат
  12. Пожалуйста, свяжитесь с нами

В этом уроке я собираюсь продемонстрировать, как создать простую полноэкранную карту, используя библиотеку JavaScript под названием Leaflet JS, и заполнить ее интерактивными значками, используя данные из Открытые данные Бристоль , Я объясню, как собирать и форматировать данные, чтобы они стали интерактивными. Наконец, я объясню, как настроить стиль листов карты и как можно улучшить карту.

Что такое Leaflet JS?

Leaflet JS, как следует из названия, - это библиотека Javascript для создания интерактивных карт, удобных для мобильных устройств. Он с открытым исходным кодом и имеет крошечный размер всего 38 КБ, который может включать в себя большую часть картографии функции тебе может понадобиться

С их сайта Leaflet это:

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

Я думаю, что эта библиотека идеально подходит для всех, кто хочет научиться создавать пользовательские карты, поскольку ее, как правило, проще понять, чем библиотеки Google Maps, и каждая функциональность, такая как нанесение маркера на карту, достижима с помощью 1-2 строк код!

Настройка проекта

Чтобы начать проект, вам нужно создать структуру проекта, с которой вы будете работать. Для этого создайте папку с именем Leaflet Map и добавьте еще три папки с именами «css», «js» и images. Внутри 'css /' создайте файл с именем style.css и map.js внутри 'js /'. Также создайте файл с именем index.html. Ваша структура должна напоминать это:

index.htmlcss

/ style.css js / main.js markers.js images /

Откройте index.html в редакторе кода и введите следующий код:

<! DOCTYPE html> <html> <head> <meta charset = "utf-8"> <meta http-эквивалент = "x-ua-совместимый" content = "ie = edge"> <title> Интерактивная карта - Leaflet JS </ title> <meta name = "viewport" content = "ширина = ширина устройства, начальный масштаб = 1,0, максимальный масштаб = 1,0, масштабируемый пользователем = нет" /> <! - Включите базовые стили CSS для Leaflet ->> "" /> <! - Включить JS-библиотеку Leaflet GhZmYgACEe0x35K7YzW1zJ7XyJV / TT1MrdXvMcA == "crossorigin =" "> </ script> <! - Включить наши стили -> <link rel =" stylesheet "href =" css / style.css "> </ head> <body> < div id = "map"> </ div> <script src = "js / markers.js"> </ script> <script src = "js / main.js"> </ script> </ body> </ html >

В заголовок HTML-документа я включаю необходимые листовки JS и CSS-файлы, выделенные в их Инструкция по началу работы , Затем у меня есть div с идентификатором 'map', к которому я прикреплю код инициализации листовки. Контейнер карты должен иметь определенную ширину и высоту, чтобы он отображался на странице. Добавьте следующий код в css / style.css:

html, body {padding: 0; поле: 0; низ: 0; высота: 100vh; переполнение: скрытое; } #map {position: absolute; низ: 0; высота: 100vh; ширина: 100 кВт; }

Теперь давайте инициализируем карту, добавив некоторые опции и установив карту, чтобы показать центр Бристоля. Карты используют координаты широты и долготы (известные как широта / долгота). Чтобы получить это для Бристоля, посетите http://www.latlong.net/ и введите Bristol UK в название места.

Добавьте следующий код в js / main.js:

var mymap = L.map ('map', {center: [51.454513, -2.587910], zoom: 16});

Откройте index.html в браузере, и вы увидите элементы управления масштабированием в левом верхнем углу, но на самом деле карты там нет, как показано ниже:

Почему я не вижу карту?

Причина, по которой вы не видите узнаваемую карту, заключается в том, что на карте еще нет набора тайлов. Tilesets - это, по сути, картины мира, разбитые на квадраты разных размеров. Размер квадратов соответствует уровню масштабирования, увеличиваясь или уменьшаясь в деталях. Leaflet JS может использовать любой набор плиток и Mapbox, а картографическая платформа с открытым исходным кодом для специально разработанных карт - это ресурс, который я буду использовать. Mapbox предлагает полную настройку и управление картами, а также размещение обширных API и библиотек для 3D-карт, разработки игр и многое другое.

Mapbox предлагает полную настройку и управление картами, а также размещение обширных API и библиотек для 3D-карт, разработки игр и многое другое

Пример настройки набора карт Mapbox

Зарегистрируйтесь для получения ключа API

Листовка требует, чтобы вы создали API-ключ для использования набора мозаики Mapbox. Это позволяет им отслеживать количество запросов к их ресурсам в месяц. Текущий максимум составляет 50000 запросов в месяц, после чего они предлагают платить, как вы используете модель ,

  1. Зарегистрировать аккаунт Вот
  2. Нажмите Токены доступа API
  3. Нажмите «Создать новый токен»
  4. Скопируйте сгенерированный ключ и отредактируйте js / main.js
  5. Введите свой ключ API в значение для accessToken: 'your.mapbox.access.token'

var mymap = L.map ('map', {center: [51.454513, -2.587910], zoom: 15}); L.tileLayer ('https://api.tiles.mapbox.com/v4/ {id} / {z} / {x} / {y} .png? Access_token = {accessToken}', {авторство: 'Картографические данные & copy; <a href="http://openstreetmap.org"> участники OpenStreetMap </a>, <a href="http://creativecommons.org/licenses/by-sa/2.0/"> CC-BY- SA </a>, Изображения © <a href="http://mapbox.com"> Mapbox </a> ', maxZoom: 18, id:' mapbox.streets ', accessToken:' your.mapbox.access. token '}). addTo (mymap);

В приведенном выше коде вы видите заглавную букву L, за которой следует .tileLayer; L является Название класса листовки. Сохраните код main.js и обновите страницу, вы должны увидеть карту, централизованную в Бристоле. Теперь вы можете использовать карту, как если бы вы использовали масштабирование, панорамирование и т. Д. Я считаю, что карта отображается более детально, особенно вокруг зданий, и если вы удалите или увеличите значение maxZoom, вы сможете увидеть более детально.

Карта Центрального Бристоля с использованием набора тайлов Mapbox

Выбрать и подготовить данные

Карты работают лучше всего, когда у них есть некоторый объем данных, с которыми вы можете взаимодействовать и находить больше географической информации. Карты Google - пример, который использует очень обширную информацию, такую ​​как их Направления и Библиотека Мест.

Функции в библиотеке JavaScript Google Places позволяют вашему приложению искать места (определенные в этом API как заведения, географические местоположения или известные достопримечательности), содержащиеся в определенной области, например в границах карты или вокруг фиксированной точка.

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

Тип данных, который требуется Leaflet

Листовка может наносить на карту маркеры, полилинии, всплывающие окна, фигуры, многоугольники и круги, предоставляя вам широту и долготу и некоторые основные параметры. Вот как можно добавить круг и маркер на карту:

var circle = L.circle ([51.45055, -2.59455], {color: '# 9416b7', fillColor: '# 9416b7', fillOpacity: 0.5, radius: 100}). addTo (mymap); var marker = L.marker ([51.4508553, -2.593530]). addTo (mymap);

Это должно произвести это на карте ниже:

Это должно произвести это на карте ниже:

Leaflet JS Маркер и Круг

Если вы хотите нанести несколько маркеров на карту, есть лучший способ, чем индивидуально написать новый L.marker для каждого. Вы можете сгруппировать всю информацию маркера в один большой файл в формате, называемом geoJSON, который является форматом для кодирования различных структур географических данных, включающих в себя координаты (Lat / Lng) и свойства (описание, заголовок).

Помимо координат, вы можете создавать неограниченные свойства и использовать их для воздействия на определенные функции маркера. Например, вы можете создать свойство iconType и установить его значение в redMarker . Затем в коде вы можете автоматически установить изображение значка на основе значения iconType .

Пример geoJSON

Где найти geoJSON

Существует отличный ресурс под названием Open Data Bristol, где вы можете искать свободно доступные наборы данных для огромного количества применений. В этом примере я собираюсь найти все банки переработки для Бристоля из Бристольского городского совета. Для этого перейдите к https://opendata.bristol.gov.uk нажмите «Данные», найдите «утилизацию» и нажмите на появившуюся карту. На вкладке Таблица отображаются все доступные строки данных. Нажмите на вкладку «Экспорт» и выберите geoJSON (весь набор данных).

Построение данных на карте

Откройте recycling-banks.geojson в текстовом редакторе, выберите все, а затем скопируйте и вставьте в проект js / markers.js. Вам нужно будет присвоить весь файл geoJSON переменной, чтобы он был доступен в основном файле js. Должно начинаться как с var markers =

var markers = {"type": "FeatureCollection", "features" ....

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

L.geoJSON (маркеры, {// Опции здесь}). AddTo (mymap);

Теперь, если вы сохраните и загрузите index.html в браузере, вы должны увидеть все нанесенные на карту банки утилизации!

html в браузере, вы должны увидеть все нанесенные на карту банки утилизации

Bristol Open Data банки утилизации нанесены на карту

В приведенном выше коде вы можете видеть, что я написал // Параметры здесь , хорошо, параметры, которые могут быть переданы этой функции, указаны в документации для geoJSON по адресу http://leafletjs.com/reference-1.2.0.html#geojson

Я хочу иметь возможность привязать всплывающее окно к каждому маркеру, которое появляется при нажатии на него. По умолчанию всплывающее окно пустое, поэтому его необходимо заполнить некоторым содержимым HTML. Наиболее очевидная вещь, которую нужно сделать, это передать get site_name из объекта свойств в markers.js. Опция onEachFeature обеспечивает необходимую нам функциональность:

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

«Функция» описана на http://geojson.org/ как геометрические объекты с дополнительными свойствами .

onEachFeature требует функцию, которая передает два аргумента через обратный вызов:

Изображение, показывающее спецификацию для метода onEachFeature

Добавление следующего кода дает мне полный доступ к данным маркера:

function queryMarker (функция, слой) {console.log (функция); } L.geoJSON (markers, {onEachFeature: queryMarker}). AddTo (mymap);

Добавить всплывающее окно для каждого маркера

Наконец, я добавлю код для рендеринга некоторого содержимого в каждом всплывающем окне маркера. Внутри папки с изображениями я добавил два изображения emoji PNG:

Внутри папки с изображениями я добавил два изображения emoji PNG:

Маркер всплывающие иконки

Полный код теперь выглядит так:

var mymap = L.map ('map', {center: [51.454513, -2.587910], zoom: 15}); L.tileLayer ('https://api.tiles.mapbox.com/v4/ {id} / {z} / {x} / {y} .png? Access_token = {accessToken}', {авторство: 'Картографические данные & copy; <a href="http://openstreetmap.org"> участники OpenStreetMap </a>, <a href="http://creativecommons.org/licenses/by-sa/2.0/"> CC-BY- SA </a>, Изображения © <a href="http://mapbox.com"> Mapbox </a> ', // maxZoom: 18, id:' mapbox.streets ', accessToken:' your.mapbox. access.token '}). addTo (mymap); / ** * Обработка сохраненного значения для возврата пользовательского значка изображения * @ строковое значение «Да» или «Нет» * @tturn-строка HTML-тег изображения с альтернативным текстом * / function getAvailabilityIcon (value) {var icon = ''; if (value === "Да") {icon = '<img class = "site__availability__icon" src = "images / icon_yes.png" alt = "Да" />'; } else if (value === "No") {icon = '<img class = "site__availability__icon" src = "images / icon_no.png" alt = "No" />'; } значок возврата; } / ** * Эта функция создает html-контент на основе свойств внутри каждого маркера *. * * @param объект имеет особый маркерный объект, переданный через метод geoJSON * onEachFeature * @return string html content для метода bindPopup * / function createPopupContent (feature) {// Инициализирует контейнер для хранения всплывающего содержимого var html = '< div class = "popup__content"> '; // Получить имя сайта if (feature.properties.hasOwnProperty ('site_name')) {html + = '<h2 class = "site__name">' + feature.properties.site_name + '</ h2>'; } // Получить полный адрес if (feature.properties.hasOwnProperty ('full_address')) {html + = '<p class = "site__address">' + feature.properties.full_address + '</ p>'; } / * * Каждый банк утилизации позволяет перерабатывать определенные материалы, они * отмечены свойством, таким как «Стекло», и значением - «Да» * или «Нет». Ниже я покажу некоторые из них в небольшом списке. * / html + = '<div class = "site__availability"> <ul>'; // Пластиковые бутылки if (feature.properties.hasOwnProperty ('plastic_bottles')) {html + = '<li> <span> Пластиковые бутылки: </ span>' + getAvailabilityIcon (feature.properties.plastic_bottles) + '</ li > '; } // Батареи if (feature.properties.hasOwnProperty ('battery')) {html + = '<li> <span> Батареи: </ span>' + getAvailabilityIcon (feature.properties.batteries) + '</ li> «; } // Paper if (feature.properties.hasOwnProperty ('paper')) {html + = '<li> <span> Paper: </ span>' + getAvailabilityIcon (feature.properties.paper) + '</ li> «; } // Картон if (feature.properties.hasOwnProperty ('картон))) {html + =' <li> <span> Картон: </ span> '+ getAvailabilityIcon (feature.properties.cardboard) +' </ li> «; } // Shoes if (feature.properties.hasOwnProperty ('shoes')) {html + = '<li> <span> Shoes: </ span>' + getAvailabilityIcon (feature.properties.shoes) + '</ li> «; } html + = '</ ul> </ div>'; // End .site__availability html + = '</ div>'; // Конец .popup__content return html; } function queryMarker (feature, layer) {/ * * Свяжите новое всплывающее окно с каждым Feature и вызовите пользовательскую * функцию для создания всплывающего содержимого * / layer.bindPopup (createPopupContent (feature)); } L.geoJSON (markers, {onEachFeature: queryMarker}). AddTo (mymap);

Вот результат теперь при нажатии на один из маркеров:

Значок маркера для Asda Bedminster Recycling Наличие

Стилизация всплывающего контента

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

/ * Стиль всплывающего маркера html * / .site__name {margin: 0 0 .8em 0; } .site__address {font-size: 1.3em; } .site__availability {max-width: 16em; } .site__availability ul {padding: 0; маржа: 0 0 1,5em; стиль списка: нет; } .site__availability ul li {margin-bottom: .8em; } / * Имя свойства * / .site__availability ul li span {font-size: 1.4em; вес шрифта: полужирный; высота строки: 1,5; } / * Значение свойства (значок) * / .site__availability__icon {width: 2em; плавать: правильно; }

Окончательный результат

Вуаля! Теперь всплывающее содержимое выглядит намного более читабельным:

Теперь всплывающее содержимое выглядит намного более читабельным:

Карта со стилем CSS

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

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

Пожалуйста, свяжитесь с нами

Поговори с Пирсом сегодня

Связаться с нами

Похожие

Что такое пипсы?
Пип является аббревиатурой от «Процент в баллах» - процент в баллах Один пункт (или пункт) - это наименьшее возможное изменение цены, которое может переместить рынок. Большинство валют указаны с четвертым десятичным знаком Значение пункта будет меняться в зависимости от выбранного объема Пипс - это наименьшее возможное значение, на которое может измениться цена инструмента. Пипсы также известны
Что такое Ubuntu?
Однако работающая система будет работать немного медленнее, чем установлена. Тем не менее, это очень полезная функция, которую следует использовать перед принятием решения об установке. Установленная система имеет практически все, что вы можете ожидать. Существует веб-браузер (Mozilla Firefox), офисный пакет и мультимедийные программы для воспроизведения музыки, фильмов, просмотра фотографий и т. Д. Некоторые из программ также известны пользователям Windows и OS X, некоторые из них будут
Я согласился, что мы никогда не будем снова вместе, так почему я не могу забыть?
... для меня это серьезный вопрос, который постепенно сводит меня с ума. Три года назад я рассталась со своим парнем (первая настоящая любовь М). После расставания у меня появился другой партнер ... к сожалению, М не позволил мне забыть, он все время был у меня в памяти, что приводило к расставанию с Кшиштофом (я не испытывал это как-то, потому что не любил его, это была просто ошибка). После второго расставания в итоге мне удалось как-то собрать, как будто я забыл о М и снова собрал свою жизнь.
? Зеленая карта - что это? Где это нужно? Сколько это стоит?
... ступления Польши в Европейский Союз и Шенгенскую зону, помнят грин-карты, необходимые во время зарубежных поездок, но многие молодые читатели понятия не имеют о них. Из-за частого количества вопросов, что такое «зеленая карта», где ее взять и где она нужна, мы приводим тему ближе в отдельной записи. В каких странах вам нужна зеленая карта? Сколько это стоит? Что такое зеленая карта? Ответ на поставленный вопрос очень прост и практически
Коротко о API и его тестирование - узнайте на базовом уровне
... JSON - несложный, легкий, а значит и более быстрый формат, который выглядит следующим образом: по ссылкам MediaWiki предлагаем, по желанию, ознакомиться с другими API форматами. Методы HTTP запросов Обычно при обращении к веб API используются запросы HTTP. Поэтому нужно
Бесплатное интернет-телевидение - это законно?
В последнее время в Интернете появилось много сайтов, транслирующих телевизионный сигнал и позволяющих смотреть наши любимые программы с вашего компьютера. Стоит задуматься над тем, что же называется «Бесплатное» интернет-телевидение и является ли оно полностью легальным. Что такое интернет-телевидение? Телевизионная станция широко рассматривается как интернет-телевидение, которое делает свои программы доступными на веб-сайтах (например, Ipla или Player), или людьми,
Аккумулятор ноутбука работает недолго? Проверьте, что делать.
В нашем магазине мы часто слышим от покупателей вопрос: как долго ноутбук будет работать на новом аккумуляторе? Трудно ответить на этот вопрос однозначно, потому что многие факторы будут решать его. Начиная с емкости аккумулятора и качества его элементов, технических характеристик ноутбука и его «заводского» аппетита на электроэнергию через операционную систему, подключенные периферийные
Какой сценарий CMS выбрать для рекламного портала?
... для сайта объявлений не вызывал больше проблем. Мы проанализируем индивидуальные решения на основе нескольких наиболее важных аспектов, чтобы каждый мог адаптировать их к своей ситуации. CMS Wordpress - идеально подходит для рекламы? За эти годы Wordpress стал почти легендарной CMS. На основе этого сценария вы можете найти миллионы веб-сайтов, которые не только хорошо выглядят, но и хорошо функционируют или позиционируют себя. Феномен этой системы - множество
Что нового в Windows 10: виртуальные рабочие столы
... столы являются огромным сюрпризом среди многих специалистов"> Виртуальные рабочие столы являются огромным сюрпризом среди многих специалистов. Никто не ожидал такого шага со стороны Microsoft, больше всего задавался вопросом, действительно ли это операционная система Windows, или была какая-то ошибка. Windows 10 Ремонт положительно удивляет, представляя эти виртуальные рабочие столы. Однако
Альтернатива NAS FritzBox: Что может сетевое хранилище?
дисплей Пользователи AVM интегрировали с FritzNAS бесплатное сетевое хранилище в Fritzbox. Мы проверяем, может ли бесплатное решение конкурировать с реальными системами NAS. Рядом с нашими Тесты на NAS-системах с 2 отсеками Предназначен для тех, у
Как не дарить нежелательные подарки - научное руководство
Рис. blickpixel / Pixabay Разве вы не хотите, чтобы подарок от вас пошел в ящик? Прочитайте это научное руководство. Как насчет подарка? Crazy Science

Комментарии

Хотя я с мальчиком, но чувствую, что ничего не так, как раньше?
Хотя я с мальчиком, но чувствую, что ничего не так, как раньше? Я начинаю задаваться вопросом, что я действительно чувствую к нему (до того, как что-то не случилось), я все еще хочу быть с ним и т.д ... .. Так должно быть, в отличие от поначалу, такие вопросы должны появляться, отражая то, что я могу принять, а что нет. В какой степени мы встречаемся в вопросах, которые важны для нас, и насколько мы различаемся. В отношениях больше не доминируют восторженные эмоции, это момент размышлений
Захватывающе, потому что вы получаете представление о том, что произойдет через пару месяцев, и пытаетесь, потому что, кто не хочет новую видеокарту прямо сейчас?
Захватывающе, потому что вы получаете представление о том, что произойдет через пару месяцев, и пытаетесь, потому что, кто не хочет новую видеокарту прямо сейчас? В конечном счете, для крупнейшего по объему рынка NVIDIA это означает, что нужно немного подождать. Но после этого ожидания вот мы: GP106, сердце GeForce GTX 1060. Объявлено в начале июля Основной графический процессор NVIDIA для энтузиастов
В: Почему я не слышу / не могу записать звук с Android при подключении к компьютеру с помощью приложения ApowerMirror?
В: Почему я не слышу / не могу записать звук с Android при подключении к компьютеру с помощью приложения ApowerMirror? A: К сожалению, ApowerMirror не позволяет вам передавать аудио с Android. Для этого вы должны использовать службы Chromecast или Google Home для выполнения проекции Android в ApowerMirror через WiFi. В: Есть ли какие-либо сочетания клавиш в приложении ApowerMirror? A: Да. Вы можете нажать Ctrl + Q, чтобы сделать
2. Что такое служебный тег и как его найти в моей системе?
2. Что такое служебный тег и как его найти в моей системе? Dell Service Tag - это семизначный уникальный идентификатор для каждого продукта Dell. В дополнение к метке обслуживания есть код экспресс-обслуживания , 10-значный числовой вариант метки службы. Чтобы идентифицировать свою систему для Dell, вы должны предоставить хотя бы один из этих номеров тегов, чтобы отправить запрос на обслуживание в службу технической поддержки
Даже если вы не поделились своими результатами в Интернете, в глубине души вы все еще чувствуете себя самодовольным, потому что Что вы должны есть на обед?
2. Что такое служебный тег и как его найти в моей системе? Dell Service Tag - это семизначный уникальный идентификатор для каждого продукта Dell. В дополнение к метке обслуживания есть код экспресс-обслуживания , 10-значный числовой вариант метки службы. Чтобы идентифицировать свою систему для Dell, вы должны предоставить хотя бы один из этих номеров тегов, чтобы отправить запрос на обслуживание в службу технической поддержки
См: Что такое приватизационный фильтр?
Что такое плекс? По своей сути, Plex является приложением сервера потокового мультимедиа. Он состоит из двух основных частей: самого медиасервера и приложения воспроизведения. Пользователи настраивают сервер, добавляют библиотеки мультимедиа, а затем используют и делятся этим контентом на других устройствах и с другими людьми. Для пояснения, Plex Media Server предоставляет доступ к вашим библиотекам, хотя файлы хранятся локально на вашем серверном устройстве. Plex лучше
Так почему бы не создать аккаунт и не тестировать Mi Cloud?
Так почему бы не создать аккаунт и не тестировать Mi Cloud? Какой у вас опыт работы с виртуальными облаками? Может быть, у вас есть любимый и хотели бы поделиться своими идеями? Я приглашаю вас комментировать. Автор: Зибски
Что такое Android TV и почему был убит Google TV?
Что такое Android TV и почему был убит Google TV? Что такое Android TV и почему был убит Google TV? Android TV заменяет пятилетнюю Google TV. И это не просто обновление - это полный римейк. Прочитайте больше , Думаете ли вы, что это хорошо или плохо, зависит от того, где вы стоите в лучших дебатах об операционной системе Smart TV. Мудрость
Значит, вы уверены, что вырастете, вы просто обеспокоены тем, что это произойдет где-то еще, потому что Уэнатчи моргнул в критический момент?
Значит, вы уверены, что вырастете, вы просто обеспокоены тем, что это произойдет где-то еще, потому что Уэнатчи моргнул в критический момент? Барнетт спросил. Карлсон согласился. «Это совершенно верно».
В этой заметке я постараюсь сосредоточить информацию, которая может пригодиться тестировщикам, желающим узнать, на базовом уровне, что такое API?
В этой заметке я постараюсь сосредоточить информацию, которая может пригодиться тестировщикам, желающим узнать, на базовом уровне, что такое API? API (Application Programming Interface) - это набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах
Почему не ключ F?
Почему не ключ F? Ну, некоторые ноты, которые вы играете на открытых струнах, а не на ладу, то есть, по сути, вы играете по другому шаблону, верно? Секрет в том, чтобы не играть неправильные ноты для какой-либо клавиши, заключается не столько в обучении весам, сколько в ноте, а в том, чтобы выучить шаблоны ладов. Когда вы играете соло или просто простые мелодии из одной ноты, эта концепция шаблонов обучения учит вас, какие позиции раздражения в отношении

Что такое Leaflet JS?
Что такое Leaflet JS?
Png?
Png?
Зеленая карта - что это?
Где это нужно?
Сколько это стоит?
В каких странах вам нужна зеленая карта?
Сколько это стоит?
Что такое зеленая карта?

Новости