Клуб API Карт

Mapbox и Яндекс.карты

revyakinss
25 октября 2016, 16:47

Добрый день! 

Существует задача интегрировать на сайт карту mapbox, но для построения маршрута использовать апи Яндекс.карт ( а именно route)

Необходимо передать в метод mapbox массив координат, полученных с помощью метода route.

Собственно, код. 

<script src='https://api.mapbox.com/mapbox-gl-js/v0.26.0/mapbox-gl.js'></script>
<link href='https://api.mapbox.com/mapbox-gl-js/v0.26.0/mapbox-gl.css' rel='stylesheet' />

<div id='map' style='width: 700px; height: 400px;'></div>

<script>

ymaps.ready(function () {

mapboxgl.accessToken = 'pk.eyJ1Ijoic2VyZ2V5MTk5MiIsImEiOiJjaXVrNGY4MGIwMDBkMnl1bW44YnMxMnpxIn0.Tyh-oxTXc1sa8GggiWdKIA';
var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/light-v9',
    center: [30.523541, 50.450418],
    zoom: 7
});

//построение маршрута. 
ymaps.route([
            [50.450418, 30.523541],
            [49.992167, 36.231202]
        ], {
            multiRoute: false,
            routingMode: 'auto',
            mapStateAutoApply: true
        }).done(function (route) {

                var coords = [];
            var way, segments;

            for (var i = 0; i < route.getPaths().getLength(); i++) {
                way = route.getPaths().get(i);
                segments = way.getSegments();
                for (var j = 0; j < segments.length; j++) {
                     coords = segments[j].getCoordinates().reverse();
					//console.log('coords', coords);
                    console.log('rev', coords);
                }

            }



    map.on('load', function () {
//добавляем путь на карту
    map.addSource("route", {
        "type": "geojson",
        "data": {
            "type": "Feature",
            "properties": {},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                   // вот сюда нужно передать массив координат
                    ]
            }
        }
    });

    map.addLayer({
        "id": "route",
        "type": "line",
        "source": "route",
        "layout": {
            "line-join": "round",
            "line-cap": "round"
        },
        "paint": {
            "line-color": "#FF0000",
            "line-width": 3
        }
    });
}); //map.on
        }); 
				}); //ymaps.ready

Почему-то метод addSource не хочет "получить" массив координат. 

Буду рад хоть каким-то мыслям.

Спасибо

2 комментария
Подписаться на комментарии к посту
> интегрировать на сайт карту mapbox, но для построения маршрута использовать апи Яндекс.карт


Так делать нельзя.
Если вы используете функцию построения маршрута, то его нужно показывать на карте Яндекса
dimik,
понял, спасибо!
Но все-таки, мне нужны только координаты.  
Разве никак нельзя интегрировать их туда? 


и правильные ли я методы использую для получения массива координат, если бы интегрировал их на яндекс карту?