Регион определяется автоматически, и нужно, что бы в списке выводились метки из определенной коллекции, которые в этом регионе размещены. То есть задача, получить примерно следующее http://prntscr.com/c549vs Каталог организаций, только отсортированый по определившемуся региону автоматически. такое возможно сделать впринципе?
Добрый день.
Храню точки в xml формате, загружаю на сайт след. образом:
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script type="text/javascript">
ymaps.ready(init);
function init ()
{
var allMap = new ymaps.Map("map_office_adr",{center: [45.18501644, 41.71664333], zoom: 7, controls: ["smallMapDefaultSet"]});
var clusterer = ymaps.geoQuery(ymaps.geoXml.load("path_to_xml")).clusterize({preset: "islands#orangeClusterIcons", zoomMargin: 70});
allMap.geoObjects.add(clusterer)
}
</script>
в итоге данные отображаются, то не подтягивается шаблон из xml <iconStyle> для не кластеризованных точек и также дополнительный вопрос:
если точки имеют одинаковые координаты, то баллун имеет другой, не кастомный вид и название точек (clusterCaption) не отображается.
Подскажите пожалуйста как нужно скорректировать xml документ?
шаблон ниже:
<?xml version="1.0" encoding="utf-8"?> <ym:ymaps xmlns:ym="http://maps.yandex.ru/ymaps/1.x"> <Representation xmlns="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x"> <Style gml:id="userobject"> <iconStyle> <href>http://info.maps.yandex.net/api/i/steelblue/dot.png</href> <size x="26" y="46"/> <offset x="-22" y="-46"/> </iconStyle> <iconContentStyle> <template>#placemark</template> </iconContentStyle> <hintContentStyle> <template>#hintTemplate</template> </hintContentStyle> <balloonContentStyle> <template>#balloon</template> </balloonContentStyle> </Style> <Template gml:id="placemark"> <text>$[metaDataProperty.AnyMetaData.number]</text> </Template> <Template gml:id="hintTemplate"> <repr:text><![CDATA[<div>$[name]</div>]]></repr:text> </Template> <Template gml:id="balloon"> <text><![CDATA[<div style="max-width:400px;*width:400px;"> <b>$[name]</b> <div><i>$[description]</i></div> <br/> <div><b>Адрес: </b>$[metaDataProperty.AnyMetaData.adr]</div> </div>]]></text> </Template> </Representation> <ym:GeoObjectCollection xmlns="http://www.opengis.net/gml"> <gml:name xmlns:gml="http://www.opengis.net/gml">Точки на карте</gml:name> <featureMembers> <ym:GeoObject> <ym:style>#userobject</ym:style> <metaDataProperty xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x"> <ym:AnyMetaData> <ym:number>1</ym:number> <ym:adr>строка адрес</ym:adr> </ym:AnyMetaData> </metaDataProperty> <name>название</name> <description>описание</description> <Point> <pos>53.280784, 158.209817</pos> </Point> </ym:GeoObject> </featureMembers> </ym:GeoObjectCollection> </ym:ymaps>
Добрый день !!!
Скажите пожалуйста как можно отметить много адресов на карте (не ручным методом), есть файл в exel с адресами, колонки ( улица, дом) , хотелось бы это разместить на карте ?
Заранее спасибо!!!
Добрго времени суток. Как сделать так, чтобы карта отображалась? Воможно, что здесь есть ошибка.
<script src="http://api-maps.yandex.ru
<script type="text/javascript">
YMaps.jQuery(function () {
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(30.332977,59.955278), 10);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.TypeControl());
var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "s.png";
s.iconStyle.size = new YMaps.Point(15, 19);
s.iconStyle.offset = new YMaps.Point(-5, -20);
var mc = new YMaps.Style();
mc.iconStyle = new YMaps.IconStyle();
mc.iconStyle.href = "mc.png";
mc.iconStyle.size = new YMaps.Point(19, 26);
mc.iconStyle.offset = new YMaps.Point(-12, -29);
[[getResources?
&parents=`16`
&limit=`all`
&depth=`0`
&includeTVs=`1`
&includeTVList=`adress,coordinats,telephone`
&tpl=`points`
&processTVs=`1`
processTVList=`adress,coordinats,telephone`
]]
});
</script>
Подскажите, при смене версии
<script src="http://api-maps.yandex.ru
на
<script src="http://api-maps.yandex.ru
и загрузке в кластер
ymaps.geoXml.load(_xmlPath)
.then(function (res) {
res.geoObjects.each(function (geoObject) {
clusterer.add(geoObject);
}
получаю практически в 2 раза меньше объектов чем в 2.0 с чем может быть связано?
Здравствуйте!
Возможно ли с помощью АПИ определить этот параметр?
Единственное что-то похожее, что нашла - http://mosopen.ru/map
тут сайт яндекс карте см отдает границы округа.
Доброе время суток. Есть необходимость динамически менять xml с объектами.
Подгружаю из xml на локальном сервере несколько объектов Polygon
ymaps.geoXml.load("polygon5.xml")
.then(function (res) {
myMap.geoObjects.add(res.geoObjects); // Добавление геообъектов на карту
}, function (error){ // Вызывается в случае неудачной загрузки YMapsML-файла
alert('Ошибка: ' + error);
});,
и когда вношу изменения в xml файл, на карте они не отображаются после перезагрузки страницы. Для того чтобы изменилась карта приходится менять название файла. Что я делаю не так? Подскажите в какой стороне копать :)
разместил стили в объекты в один файл https://jsfiddle.net/cbkh3L1e/13/ . в iconstyle разместил шаблон, (https://yadi.sk/i/7TbMcAb0hqWbC) , но метка все равно отображается стандартная. В чем может быть проблема?
Здравствйуте. Возник такой вопрос. Как можно добавить стили ко всему балуну например надо чтобы окно балуна имело свойство border-radius.. то есть скругления? как кастомизировать кнопку закрыть?
Добрый день!
Подскажите, пожалуйста! Загружаю на карту регионы из сервиса Мои карты:
center: [55, 38],
zoom: 6
});
ymaps.geoXml.load('https://maps.yandex.ru/ex
res.geoObjects.options.set('fillColor', 'ff000099');
myMap.geoObjects.add(res.geoObjects);
});
Как видно из кода, пытаюсь заменить цвет заливки полигона, но ничего не получается. Что я делаю не так?
Не получается отобразить метки на карте, вот пример https://jsfiddle.net/cbkh3L1e/10/
в геобъекте в "<ym:style>" указана полная ссылка на файл стилей как тут https://tech.yandex.ru/ma
код:
var myMap = new ymaps.Map("show-base", {
center: [53.346930035079104,83.77647585253904],
zoom: 8,
controls: ['smallMapDefaultSet']
});
ymaps.geoXml.load('http://tur.flyleaf.su/hos
tels/default/ymapsml/1/?d )=556c5116c5880' .then(onGeoXmlLoad);
function onGeoXmlLoad (res) {
myMap.geoObjects.add(res.geoObjects);
if (res.mapState) {
res.mapState.applyToMap(myMap);
}
}
http://tur.flyleaf.su/hostels/default/ymapsml/1/ метки отсюда.
В шаблоне баллуна загружаемых меток я подставляю <img src="$[metaDataProperty.AnyMetaData.link]" /> (http://tur.flyleaf.su/hostels/default/ymapsml/1/) но в результате, при выводе меток на карте, картинка не отображается, в коде: <img > , при этом ссылка на картинку точно существует, если в шаблоне указать: $[metaDataProperty.AnyMetaData.link], то выведется текст ссылки на картинку.
https://yadi.sk/i/glNbIREDgzjyr
что я делаю не так?(
ps: к примеру если поменять здесь <img src="$[metaDataProperty.AnyMetaData.link]" /> src на alt , то ссылка выведется нормально, картинки естественно не будет, но: https://yadi.sk/i/cAKovBeAgzkyN
Можно ли ли добавить изображение по верх карты, , чтобы показывалось всегда, то есть с привязкой к окну, как панель управления. Например лого поставить или еще что. Как это сделать, если можно код функции)
Не кластеризуется.
clusterer = new ymaps.Clusterer();
var result = [];
ymaps.geoXml.load('https://----')
.then(function (res) {
res.geoObjects.each(function (geoObject) {
result.push(geoObject);
});
clusterer.add(result);
});
myMap.geoObjects.add(clusterer);
В чем ошибка?
1) Как поменять вид метки
Вот часть кода:
ymaps.geoXml.load('url').then(function (res) {
res.geoObjects.each(function (geoObject) {
geoObjects.options.set({preset : 'twirl#trainIcon'});
myMap.geoObjects.add(res.geoObjects);
}
Метка не меняется?!
2) Возможно ли настроить произвольную ширину кнопки?
var but1 = new ymaps.control.Button({
data: {
content: "Привет",
image: "1.png",
title: 'Привет'
},
options: {float: 'none', position: {top: 5, left: 5},
maxWidth: 300
}
});
myMap.controls.add(but1);
var but2 = new ymaps.control.Button({
data: {
content: "УРАААААААААААААА-ААААА-А",
image: "2.png",
title: 'УРА'
},
options: {float: 'none', position: {top: 35, left: 5},
maxWidth: 300
}
});
myMap.controls.add(but2);
Кнопка "Привет" - короткая, а "УРАААААААААААААА-ААААА-А" - длинная, а надо чтобы "Привет" была такой же длины как УРА?
Так сложилось, что мне нужно подгружать на карту несколько разных файлов.
Очень хочется этот процесс запихать в цикл:
var types = ['added','sended','planne
var index;
for (index = 0; index < types.length; ++index) {
var type = types[index];
ymaps.geoXml.load('http://domain.org/create_' + type + '_map.php?date_befor=2014
res.geoObjects.each(function (geoObject) {
type.push(geoObject);
});
spb_cluster.add(type);
});
}
Но таким образом не получается... Подскажите, это вообще возможно?
Спасибо!
Как добавить этот KML файл на Яндекс.Карты версия 2.1?
http://weather.wdtinc.com
Раньше на сайте происходил импорт с помощью данного яваскрипта:
var map;
var s;
var first=true;
var lr=0;
var ll=0;
var lt=0;
var lb=0;
var d=0.01;
window.onload = function () {
map = new YMaps.Map(document.getElementById("YMapsID"));
map.addControl(new YMaps.TypeControl([YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID],[0,1,2]), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RI GHT,new YMaps.Size(37,3)));
map.addControl(new YMaps.SmallZoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RI GHT,new YMaps.Size(3,3)));
map.setCenter(new YMaps.GeoPoint(37.617, 55.756), 8);
YMaps.Events.observe(map, map.Events.Update, ReloadPoints);
YMaps.Events.observe(map, map.Events.MoveEnd, ReloadPoints);
ReloadPoints();
}
function ReloadPoints(){
var bounds=map.getBounds();
var r=bounds.getRight();
var l=bounds.getLeft();
var t=bounds.getTop();
var b=bounds.getBottom();
if((r>=lr) || (l<=ll) || (t<=lt) || (b >=lb)){
ll=bounds.getLeft()-d;
lr=bounds.getRight()+d;
lt=bounds.getTop()+d;
lb=bounds.getBottom()-d;
var url='http://gsm-msk.m-pro.ru/weather/l.php?l='+ll+ '&r='+lr+'&t='+lt+'&b='+l b;
var yml = new YMaps.YMapsML(url);
YMaps.Events.observe(yml, yml.Events.Fault, function (m2, error) {
alert(error);
});
YMaps.Events.observe(yml, yml.Events.Load, function (error) {
map.removeAllOverlays();
map.addOverlay(yml);
if(first){ first=false; }
});
}
}
Здравствуйте.
Используя пример из песочницы (https://tech.yandex.ru/ma
Если подгружаемый файл находится на хосте доступном из интернет, то данные подгружаются нормально. Если тот же файл на локальном хосте (url верный, начинающийся на http), то данные не подгружаются.
Как решить проблему?
Только начинаю работать с картами. Возникла загвоздка. Делаю считывание адресов точек для поиска их координат из текстового файла, ищу координаты через geocode, записываю результаты в результирующий текстовый файл. Пишу на javascript'е. Необходимо, что бы в результирующий файл попадал и сам запрос. Формирую следующую переменную, которую кладу в результирующий файл:var txt=firstGeoObject.properties.get('description')+';'+firstGeoObject.properties.get('name')+';'+cords[0]+';'+cords[1]+';'+firstGeoObject.properties.get('metaDataProperty').GeocoderMetaData.kind; Не выходит вызвать request. Возможно ли его вообще как-то вызвать? Пыталась через GeocoderResponseMetaData, но не выходит, выдает [object Object] на результат.И что необходимо прописать в html, что бы можно было просмотреть xml с результатами выполнения запросов? Сейчас html выглядит следующим обрахом:<!DOCTYPE html> <html> <head> <title> Гео </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="script.js" type="text/javascript"></script> <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script> </head> <body onLoad="my()"> </body> </html> Функция чтения выглядит так: function readFile(filePath) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.OpenTextFile(filePath+'test.csv', 1); var str1; while(!file.AtEndOfStream) { str1=file.ReadLine(); //alert(str); //writeFile(filePath+'geo.csv',str1); ymaps.geocode(str1).then(function (res) { // Выбираем первый результат геокодирования //var str1=file.ReadLine(); var firstGeoObject = res.geoObjects.get(0); var cords = firstGeoObject.geometry.getCoordinates(); var txt=firstGeoObject.properties.get('description')+' ;'+firstGeoObject.propert ies.get('name')+';'+cords [0]+';'+cords[1]+';'+firs tGeoObject.properties.get ('metaDataProperty').Geoc oderMetaData.kind; var full_txt=txt.replace(',',';'); writeFile(filePath+'geo.csv',full_txt); }, function (err) { // Если геокодирование не удалось, // сообщаем об ошибке alert(err.message); } ) } file.Close(); }
Здравствуйте!
Внезапно возникла следующая проблема - на сайте отображаются несколько карт с разным перечнем объектов (розничные магазины). Скрипт Яндекс.карт подключается в заголовке, сама карта выводится в коде, список объектов сделан через .xml файл - сегодня эта конструкция стала выдавать ошибку.
Карта загружается, но вместо объектов Яндекс возвращает ошибку "object Object".
Вся конструкция исправно работала свыше двух лет, никаких изменений не делали, но сегодня увидели проблему.
Подключение идёт к версии api карт 2.0
Пример ошибки: http://www.kuhni-driada.ru/salons/astrakhan/
Как быстрее всего и проще можно исправить ошибку?