Добрый день!
Используем SDK YMK для Android
dependencies {
///.....
compile 'ru.yandex:yandexmapkit:2.5.4@aar'
}не могу найти функцию кластеризации(объединения в группы). Подкажите, для ее реализации нужно перейти с sdk на js ?
Добрый день!
Используем SDK YMK для Android
dependencies {
///.....
compile 'ru.yandex:yandexmapkit:2.5.4@aar'
}не могу найти функцию кластеризации(объединения в группы). Подкажите, для ее реализации нужно перейти с sdk на js ?
Предположим имееется маршрут из точки А в точку Б, требуется получить список городов попадающих в этот маршрут. Как это можно реализовать?
Добрый день. Не подскажете, на данный момент есть возможность получить через API список областей, районов, городов, улиц по указанной стране? Что-то типо:
Можно как-нибудь получить что-то типо КЛАДРа на любую страну (в пределах СНГ, без указания домов, индексов. Достаточно областей, районов, насел. пунктов и улиц в них).
Заранее спасибо за ответ
Добрый день, сделал карту с группой объектов, вроде бы все ок, кроме одного, не открывается baloon на мобильных устройствах, подскажите в чем может быть проблема.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<div id="map_json" style="display: none">[{"price":"0","tarifs_type":"2","srok_dostavki":"4-5","pickup_place":"\u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0433 (\u0410\u043c\u0443\u043d\u0434\u0441\u0435\u043d\u0430)","pickup_places_type_name":"\u0410","address":"\u0443\u043b. \u0410\u043c\u0443\u043d\u0434\u0441\u0435\u043d\u0430, \u0434. 65","proezd_info":"\u0422\u0426 \u041a\u0418\u0422 1 \u044d\u0442\u0430\u0436 - \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0433\u0438\u043f\u0435\u0440\u043c\u0430\u0440\u043a\u0435\u0442\u0430 \u0420\u0410\u0419\u0422","phone":"8-343-247-81-11","worktime":"\u043f\u043d - \u043f\u0442: 10.00 - 18.00","comission_percent":"1.5","is_terminal":"0","to_city_code":"497183","pickup_place_code":"474570","delivery_partner":{},"partner":{},"is_basic":"1","obl_km_pay":"0","latitude":"56.7868666","longitude":"60.5672618"},{"price":"0","tarifs_type":"2","srok_dostavki":"4-5","pickup_place":"\u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0433 (\u041c\u0430\u043b\u044b\u0448\u0435\u0432\u0430)","pickup_places_type_name":"\u0410","address":"\u0443\u043b. \u041c\u0430\u043b\u044b\u0448\u0435\u0432\u0430, \u0434.53","proezd_info":"\u0422\u0426 \u0410\u043d\u0442\u0435\u0439 1 \u044d\u0442\u0430\u0436 - \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u041f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043e\u043a ","phone":"8-343-247-81-11","worktime":"\u043f\u043d - \u043f\u0442: 9.00 - 18.00","comission_percent":"1.5","is_terminal":"0","to_city_code":"497183","pickup_place_code":"766233","delivery_partner":{},"partner":{},"is_basic":"1","obl_km_pay":"0","latitude":"56.8366997","longitude":"60.625145"},{"price":"0","tarifs_type":"2","srok_dostavki":"4-5","pickup_place":"\u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0433 \u041f\u0412\u0417 \u043d\u0430 \u041b\u0435\u043d\u0438\u043d\u0430","pickup_places_type_name":"\u0410","address":"\u043f\u0440-\u043a\u0442 \u041b\u0435\u043d\u0438\u043d\u0430, \u0434. 101","proezd_info":" \u041f\u0440\u043e\u0435\u0437\u0434 \u0434\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0423\u0440\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442 : - \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043d\u044b\u0435 \u0442\u0430\u043a\u0441\u0438: \u2116 034, 029, 050, 030, 054, 040, 022; - \u0430\u0432\u0442\u043e\u0431\u0443\u0441\u044b: \u2116 60, 28, 50, 54, 27, 28, 61, 10, 157, 5, 8; - \u0442\u0440\u0430\u043c\u0432\u0430\u0438: \u2116 23, 32, 18, 4, 22, 15, 13, 8, 26. \u0412\u043e\u0439\u0442\u0438 \u0432\u043e \u0434\u0432\u043e\u0440 \u043f\u0440-\u043a\u0442 \u041b\u0435\u043d\u0438\u043d\u0430 101 (\u0432 \u044d\u0442\u043e\u043c \u0434\u043e\u043c\u0435: \u0411\u0430\u043d\u043a \u0412\u0422\u041124,\u041b\u0435\u0442\u0443\u0430\u043b\u044c,\u041f\u043e\u043b\u044c \u0411\u0435\u0439\u043a\u0435\u0440\u0438), \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u0434 \u0432\u044b\u0432\u0435\u0441\u043a\u0443 \u043f\u0443\u043d\u043a\u0442 \u0432\u044b\u0434\u0430\u0447\u0438 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0441\u0442\u0435\u043a\u043b\u044f\u043d\u043d\u0430\u044f \u0434\u0432\u0435\u0440\u044c, \u0446\u043e\u043a\u043e\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u0436. ","phone":"+7(343)287-3-284","worktime":"\u041f\u043d-\u041f\u0442 10:00-21:00","comission_percent":"1.5","is_terminal":"0","to_city_code":"497183","pickup_place_code":"740531","delivery_partner":{},"partner":{},"is_basic":"1","obl_km_pay":"0","latitude":"56.8396463","longitude":"60.6134245"}]</div>
<div id="map" style="height:500px; widht: 700px; margin-bottom: 20px"></div>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"> </script>
<script>
function yMapsPickup() {
ymaps.ready(function () {
var arPickup = $.parseJSON($('#map_json').text());
var myGeocoder = ymaps.geocode('Екатеринбург');
myGeocoder.then(
function (res) {
var firstGeoObject = res.geoObjects.get(0);
var myMap = new ymaps.Map('map', {
center: firstGeoObject.geometry.getCoordinates(),
zoom: 10,
controls: ["zoomControl"]
});
myMap.behaviors.disable('scrollZoom');
var myGeoObjects = [];
$.each(arPickup, function(key ,row){
if(row.price == undefined){
row.price = 0;
}
myGeoObjects[key] = new ymaps.GeoObject({
geometry: {
type: "Point",
coordinates: [row.latitude, row.longitude]
},
properties: {
balloonContentHeader: 'инфа',
balloonContentBody: '<h4> '+row.pickup_place+'</h4>'+
'<b>Адрес:</b> '+row.address+'<br>'+
'<b>Проезд:</b> '+row.proezd_info+'<br>'+
'<b>Тел.:</b> '+row.phone+'<br>'+
'<b>Режим работы.:</b> '+row.worktime+'<br>'+
'<b>Срок доставки:</b> '+row.srok_dostavki+'<br>'+
'<b>Цена:</b> '+row.price+'<br>'
}
});
});
var myClusterer = new ymaps.Clusterer();
myClusterer.add(myGeoObjects);
myMap.geoObjects.add(myClusterer);
},
function (err) {
console.log('error');
}
);
})
}
$(function () {
yMapsPickup();
});
</script>
</body>
</html>Возможно ли использовать геокодирование без нанесения результатов на карту Яндекс (рассматривается вариент платного API в том числе) по примеру стороки поиска на Яндекс картах https://yandex.ru/maps/ - пользователь вводит в строку поиска адрес (город, улица), ему подтягиваются в контекст возможные отфильтрованные результаты для которых можно определить координаты долготы и широты.
Добрый день всем.
Есть задача: При ховере на элемент списка магазинов подкрашивать метку на карте и также выводить название магазина в балуне. При этом одновременно могут быть покрашены несколько магазинов и показаны их балуны соответствено.
Для отображения нескольких балунов на карте отдновременно использую кастомные балуны:
var balloon = new ymaps.Balloon(this.map);
balloon.options.setParent(this.map.options);
balloon.options.set({
shadow: false,
layout: MyBalloonLayout,
contentLayout: MyBalloonContentLayout,
panelMaxMapArea: 0
});
balloon.setData({
content: object.name
});
balloon.open(element.geometry.coordinates);Вопрос: как удалять созданные кастомные балуны с карты? В документации не нашел как это можно сделать.
Сейчас удаляю балуны так $('selector').remove(). При следующем ховере создается новый балун.
http://jsfiddle.net/HappyCougar/j2e2xtts/1/
Карта зависает если приблизить до уровня разбития кластера на метки. Почему так, и где ошибка?
Когда я передвигаюсь по карте а потом убираю палец карта смещаться на пол сантиметра. Как избавиться от этого?
MainActivity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
try {
InputStream is = getAssets().open("MyLication.html");
byte[] buffer = new byte[is.available()];
is.read(buffer);
is.close();
String htmlText = new String(buffer);
myWebView.loadDataWithBaseURL(
"http://com.d_code.webview.ymapapp",
htmlText,
"text/html",
"UTF-8",
null
);
} catch (IOException e) {
e.printStackTrace();
}
}MyLication.html:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MyLocation</title>
<script src="//api-maps.yandex.ru/2.0/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">
ymaps.ready(init);
function init () {
new ymaps.Map('map', {
center:[52.076015,23.723014],
zoom:18
},
{
suppressMapOpenBlock: true
});
}
</script>
<style type="text/css">
html, body, #map {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
</body>
</html>activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.d_code.webview.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:clickable="false"
android:contextClickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
Здравствуйте. Хочу чтобы хинт отрывался и закрывался подобно тому как работают функции в jquery fadeIn и faveOut . Как это сделать? при закрытие если указать вот так myMap.hint.close() то закрытие происходит очень медленно. А если указать вот так myMap.hint.close(true); - то слишком быстро. Заметила что в доках 2.0 версии есть данные опции https://tech.yandex.ru/maps/doc/jsapi/2.0/ref/reference/Hint-docpage/ , а вот на 2.1 нет
Здравствуйте. Не знаю как правильно сделать позиционирование hint у маркера. Хочу вот что сделать: При наведении на маркер нужно чтобы у него появлялся хинт, который не будет двигаться туда сюда пока мы водим мышкой по маркеру. Также хочу сделать чтобы если хинт не вмещается на карте чтобы он появлялся в свободном месте карты(т.е если маркер внизу карты, хинт поялвляется сверху). Пример как должно работать http://prntscr.com/ai54di - это по умолчанию. А если к примеру не влазит снизу то должно отобразить вот так http://prntscr.com/ai55k1 .
Вот какую только смогла сделать реализацию.
myMap = new ymaps.Map('map', {
center:[53.902257,27.561831], // Минск
zoom:13
});
var myCollection = new ymaps.GeoObjectCollection(),
HintLayout = ymaps.templateLayoutFactory.createClass( "<div class='item-mark' style='display: block'>" +
"<p class='it-name'>{{ properties.title }}</p>" +
"<p class='rec-addr'>{{ properties.address }}</p>" +
"</div>", {}
),
markers='<?= json_encode($markers) ?>';
markers = JSON.parse(markers);
markers.forEach(function(item, i, markers) {
var coords = item.coord.split(','),
myPlacemark = new ymaps.Placemark([coords[0],coords[1]],{
category_alias : item.category_alias,
account : item.account,
address: "Москва, ул. Зоологическая",
title: "Центр современного"
},{
hintLayout: HintLayout,
openHintOnHover: false,
});
myPlacemark.events.add('mouseleave',function(e) {
var object = e.get('target');
object.hint.close(true);
});
myPlacemark.events.add('mouseenter',function(e) {
var object = e.get('target');
object.hint.open(object.geometry.getCoordinates());
});
myCollection.add(myPlacemark);
});
По данной реализации появляется хинт, но если он не влазит на карте, то он просто не виден, а надо чтобы он в свободном месте появлялся