1.
dima_medvedev_12
12.01.21 16:33
Сейчас в теме
Привет! Есть самописная конфигурация, предназначенная для работы с картами яндекс. Реализовано все через яндекс апи. Сама карта выводится в поле хтмл документа.
Основной код, который отрабатывает действия по карте и получает из нее информацию написан на java script и размещен в общих макетах 1с.
Суть работы с картами сводится к следующему - алгоритм должен определить принадлежность точки, выставленной на карте к одной из областей, которые заданы по координатам в специальном справочнике
Весь функционал уже реализован до меня, но отвалилась способность алгоритма определять принадлежность точки заданным областям. Адрес точки на карте он находит, выводит, но сопоставить не может.
По итогу штудирования кода пришел к конкретной функции JS - searchContaining, в которой есть проблема. Код этой процедуры привожу ниже.
В коде ниже происходит следующее - в глобальную переменную Zones (в функции updateZones) пишется JSON, который поступает при вызове этой функции из 1с. JSON заполнен координатами по стандарту, проверял в отладчике. Далее в функции searchContaining создается массив, в который должны записаться названия областей(?!), которые должны содержаться в 'description'. Все это нужно, чтобы потом сказать - точка принадлежит области с таким-то названием из 'description'.
Так вот этот 'description' раньше все прекрасно возвращал и месяцев 6-7 назад функционал работал. А потом работать перестало, и параметр с названиями областей, возвращаемый в 1с стал равен "неопределено"
Подскажите, пожалуйста, что могло произойти, от чего 'description' перестал существовать? Или как возможно такое, что JSON и 'description' существуют, но JSON заполнен, а в 'description' он не передается?
var Zones,
returnParametr;
function updateZones(GeoJsonArr)
{
if (typeof(GeoJsonArr)=="string")
{
GeoJsonArr = JSON.parse(GeoJsonArr);
};
Zones = ymaps.geoQuery(GeoJsonArr);
}
function searchContaining(point)
{
// Находим полигон, в который входят переданные координаты.
arr = [];
Zones.addToMap(myMap);
Zones.searchContaining(point).each(function (obj)
{
arr.push(obj.properties.get('description'));
});
Zones.removeFromMap(myMap);
returnParametr= JSON.stringify(arr);
}