Форум программистов, компьютерный форум CyberForum.ru

YandexMapKit vs Yandex - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Вылеты игр у пользователей http://www.cyberforum.ru/android-dev/thread1704414.html
Сужу и по играм, с которыми работаю и по просто играм в маркете. Даже у топовых компаний-разрабов есть вылеты у юзеров, и это происходит стабильно от релиза к релизу. Залили новый релиз. У одно юзера все окей. У другого прил больше не загружается. Залили следующий релиз, у второго теперь всё окей грузится, у первого нет. Это вообще лечится для всех? Или подобные незагрузки прилов, связаны в...
Android Как получить GeoCode в yandex mapkit? Как получить GeoCode зная координаты? http://www.cyberforum.ru/android-dev/thread1704375.html
Android Как запустить метод в сервисе, в определённое время?
Как запускать метод в сервисе, с понедельника по пятницу в определённое время? Подскажите пожалуйста кто знает куда смотреть?
Библиотека View Injector Android
Господа android разработчики. Хотел бы представить Вашему вниманию свою маленькую библиотеку для view injection. Честно говоря, надоело постоянно инфлейтить и искать (findViewById) вьюхи, так родилась эта либа. https://github.com/YuraAAA/ViewInjector Доступна в jcenter, подключается 1 строчкой в build.gradle На гитхабе есть примеры использования. Ещё прикладываю пример реального...
Android Работа с сервером напрямую с приложения http://www.cyberforum.ru/android-dev/thread1704065.html
Добрый вечер. Посоветуйте да библиотеку для работы между базой (MYSQL) и приложением Чтобы не получать запросы из JSON а работать напрямую.
Android Мини чат, тонкости разработки Например приложение Viber и его аналоги.. Как в них реализован чат? А именно "ListView" с сообщениями. Допустим БД SQLlite с сообщениями (текст, ссылки на картинки и звук и т.п.), звук и картинки как файл в SD как там реализована загрузка сообщений в "ListView"? так чтобы не вылетал OutOfMemory и всякая такая бяка.. подробнее

Показать сообщение отдельно
CoolMind
417 / 400 / 65
Регистрация: 06.10.2012
Сообщений: 1,713

YandexMapKit vs Yandex - Android

06.04.2016, 14:32. Просмотров 500. Ответов 8
Метки (Все метки)

Сорри, в тему забыл добавить Yandex Maps JS API WebView.
Итак, парни, решил я залезть в одну и ту же реку дважды.
Потребовалось выбрать движок для карт. Google maps не подошли по причине не очень высокого покрытия. Решили взять карты от "Яндекс". Потратив некоторое время, нашёл пару рабочих примеров:
https://github.com/yandexmobile/yand...oid/issues/196
http://www.slideshare.net/elenavoynova3/ss-41460782 (ссылка на 83 слайде).
Запустил, первый визуально помедленнее. На эмуляторе x86 запустить не смог, требовался ARM, наверное. Функционал победнее. Поддержка YMK, как вы понимаете, была заморожена 3 года назад, сейчас что-то возобновили (см. https://github.com/yandexmobile/yandexmapkit-android).
Второй побыстрее, больше функций (есть слои, светофор, поиск), запускается и на эмуляторе (правда, со второго раза). Думаю, что можно прямо по карте строить пути.
По картам есть такие неплохие ссылки:
http://vk.com/ymapsapi
https://yandex.ru/blog/mapsapi/
Выбор за вами.

Добавлено через 4 часа 7 минут
Оба варианта не допускают использование оффлайн-карт (лицензионное соглашение). Соответственно, доступ к Интернету обязан быть. В случае с YMK требуется прописать ещё несколько разрешений, поэтому, опять же, способ с WebView предпочтительнее.
После нескольких часов мучений написал более-менее вменяемый интерфейс для карты. Этот HTML-файл надо положить в папку assets и получать доступ через WebView. Как это сделано, указано в примере на 83 слайде.
А вот и сама разметка:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Размещение интерактивной карты на странице</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport"
          content="initial-scale=1.0, user-scalable=no, maximum-scale=1"/>
    <script src="//api-maps.yandex.ru/2.1.38/?lang=ru_RU"
            type="text/javascript"></script>
    <script type="text/javascript">
        ymaps.ready(init);
 
        function init(){
            var myMap = new ymaps.Map("map", {
                center: [55.76, 37.64],
                zoom: 14,
                controls: ["default","routeEditor"]
            });
            //myMap.setType('yandex#satellite');
 
            var myPlacemark = new ymaps.Placemark([55.76, 37.64], {
                hintContent: 'Москва!',
                balloonContent: 'Столица России'
            });
 
            myMap.geoObjects.add(myPlacemark);
        }
    </script>
    <style>
        html, body, #map {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #map {
            background-color: #888;
        }
    </style>
</head>
<body>
    <div id="map"></div>
</body>
</html>

Для работы с кнопками на карте рекомендую почитать https://tech.yandex.ru/maps/doc/jsap...trols-docpage/.

Добавлено через 37 минут
Если требуется отобразить несколько объектов на карте, подойдёт следующий способ. В теге <script> пропишите код (http://codd-wd.ru/shpargalka-yandeks...ex-maps-api/):
Кликните здесь для просмотра всего текста

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
        ymaps.ready(init);
 
        function init(){
            var myMap = new ymaps.Map("map", {
                center: [55.76, 37.64],
                zoom: 14,
                controls: ["default","routeEditor"]
            });
            //myMap.setType('yandex#satellite');
 
            var myPlacemark = new ymaps.Placemark([55.76, 37.64], {
                hintContent: 'Москва!',
                balloonContent: 'Столица России'
            });
 
            myMap.geoObjects.add(myPlacemark);
 
            // Добавляем в геокодер список адресов
            var objects = ymaps.geoQuery(
                    ymaps.geocode('Москва, Слесарный переулок, д.3'))
                    .add(ymaps.geocode('Люберцы, Октябрьский проспект д.143'))
                    .add(ymaps.geocode('Москва, ул. Льва Толстого, 16'))
                    .addToMap(myMap);
            // Создаем коллекцию геообъектов, в котором будут находиться эти адреса
            var geoObjectsCollection = new ymaps.GeoObjectCollection();
            // После того, как поиск вернул результат, вызывается callback-функция
            objects.then(function () {
                // добавляем координаты адресов в коллекцию geoObjectsCollection
                objects.each(function (object) {
                    var coordinates = object.geometry.getCoordinates();
                    geoObjectsCollection.add( new ymaps.Placemark(coordinates) );
                });
                // Добавляем коллекцию геообъектов на карту
                myMap.geoObjects.add(geoObjectsCollection);
                // Спозиционируем карту так, чтобы на ней были видны все объекты.
                //myMap.setBounds(geoObjectsCollection.getBounds());
                myMap.setBounds(myMap.geoObjects.getBounds(), {checkZoomRange:true}).then(function(){
                    if(myMap.getZoom() > 15) myMap.setZoom(15); // Если значение zoom превышает 15, то устанавливаем 15.
                });
            });
       }

Видно, что находятся дома с такими же адресами и в городах Подмосковья.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru