линия
Пост в архиве.
2 ноября 2015, 12:32
подскажите пожалуйста, что не правельно делаю.
Есть функция которая выводит метки на карту, и должна между 2мя метками провести прямую.
ей передается 2 параметра - 2 адреса, между которыми нужно провести прямую.
function setmark (value, value2){
// выводим первую точку
ress = ymaps.geocode(value);
ress.then(
function (res) {
coor = res.geoObjects.get(0).geometry.getCoordinates();
point = new ymaps.Placemark([coor[0], coor[1]],{iconContent: value});
myMap.geoObjects.add(point); } )
// выводим вторую точку
ress2 = ymaps.geocode(value2);
ress2.then(
function (res2) {
coor2 = res2.geoObjects.get(0).geometry.getCoordinates();
point2 = new ymaps.Placemark([coor2[0], coor2[1]],{iconContent: value2});
myMap.geoObjects.add(point2); } )
// Создаем ломаную, используя класс GeoObject.
var line = new ymaps.GeoObject({
// Описываем геометрию геообъекта.
geometry: {
// Тип геометрии - "Ломаная линия".
type: "LineString",
// Указываем координаты вершин ломаной.
coordinates: [
[coor[0], coor[1]],[coor2[0], coor2[1]]
]
} });
// и выводим линию
myMap.geoObjects.add(line);
};
при этом выдается ошибка - coor[0], coor[1]],[coor2[0], coor2[1] - не инициализированы и линия не появляется.
если координаты задавать руками то все работает.
coor указана в начале скрипта, как глобальная, но за пределами функций function (res) и function (res2)
не видны. Как все таки вывести прямую между двумя точками ?