Нарисуйте полилинию вдоль пути карты в openlayer3

Я следую коду, как нарисовать полилинию вдоль пути карты, зная, что точка, присутствующая на карте, просто даст прямую линию, как пройти по пути переулков.

 <!DOCTYPE html>
    <html>
    <head>
        <title>Rotation example</title>
    </head>
    <body>
    <div style="width:80%; height:80%; position:fixed; border: 1px solid;" id="map"></div>
    <script src="http://openlayers.org/en/v3.11.2/build/ol.js"></script>
    <script>

        var lineString = new ol.geom.LineString([
            [103.986083,  1.350349],
            [103.985097, 1.349067]
        ]);
        lineString.transform('EPSG:4326', 'EPSG:3857');

        var lineLayer = new ol.layer.Vector({
            source: new ol.source.Vector({
                features: [new ol.Feature({
                    geometry: lineString,
                    name: 'Line'
                })]
            }),
            style: new ol.style.Style({
                stroke: new ol.style.Stroke({
                    color: [255, 255, 0, 0.5],
                    width: 10
                })
            })
        });

        var view = new ol.View({
            center: ol.proj.transform([103.986908, 1.353199], 'EPSG:4326','EPSG:3857'),
            zoom: 18,
            rotation: 68*Math.PI/180
        });

        var map = new ol.Map({
            layers: [
                new ol.layer.Tile({
                    source: new ol.source.OSM()
                }),
                lineLayer
            ],
            target: 'map',
            controls: ol.control.defaults({
                attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
                    collapsible: false
                })
            }),
            view: view
        });



    </script>

    </body>
    </html>

Есть ли какая-либо служба направления, предоставляемая openlayer3, пожалуйста, укажите образец, чтобы выполнить это


person DhanaLaxshmi    schedule 22.12.2015    source источник


Ответы (2)


Если у вас есть координаты вдоль дорожек, вы можете использовать MultiLineString. вместо LineString.

person itsyahani    schedule 22.12.2015
comment
не могли бы вы указать демо или пример кода, который поможет это сделать - person DhanaLaxshmi; 22.12.2015
comment
я пытаюсь вот так "как рисовать координаты вдоль дорожек, используя multilinestring вместо linestr">gis.stackexchange.com/questions/174876/, но полилинии не отображаются, не могли бы вы сказать, что не так - person DhanaLaxshmi; 26.12.2015

Вам нужно использовать службу маршрутизации для такого действия. Вы можете настроить свой собственный сервис или использовать любой доступный онлайн. здесь вы можете найти список бесплатных онлайн-маршрутизаторов и решить, какой из них лучше всего соответствует вашим потребностям. . Как только вы получите свою корневую полилинию из выбранного сервиса, вы можете декодировать (если она закодирована) и нарисовать свою линию на вашей карте ol3. Кроме того, в зависимости от службы, которую вы собираетесь использовать, ol3 предлагает класс для чтения и записи данных в формате алгоритма кодированной полилинии, который описан здесь

person pavlos    schedule 22.12.2015
comment
я пытаюсь вот так "как рисовать координаты вдоль дорожек, используя multilinestring вместо linestr">gis.stackexchange.com/questions/174876/, но полилинии не отображаются, не могли бы вы сказать, что не так - person DhanaLaxshmi; 26.12.2015
comment
Я ответил на поставленный вами вопрос. может поможет в вашем случае - person pavlos; 28.12.2015
comment
Пожалуйста, предоставьте конкретный пример, где я могу рисовать полилинии, используя, например, любой из сервисов направления (OSRM). Я действительно запутался, как интегрироваться с существующим приложением. Пожалуйста, предоставьте один метод или функцию, которая может помочь мне это сделать. - person DhanaLaxshmi; 31.12.2015