Геодезические полилинии здесь - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь переключиться с Google Maps на Here во многих моих кодах.Одна вещь, которая меня вешает, это необходимость геодезических линий вместо «прямых»

Пример этого можно найти здесь: http://www.2timothy42.org/Travel/?Mode=

Есть еще один вопрос StackOverflowс ответом здесь но ссылка больше не работает.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Пример, размещенный HERE Developer Support, приводит вас туда, но в коде есть дополнительные вещи, в которых нет необходимости, а также есть несколько JS-ссылок, которые являются относительными и не работают после ввода в мой код.

Это связано с одним из ключевых различий, которое я заметил между API Карт Google и HERE API, в том, что Карты Google используют один вызов JS, где HERE имеет несколько вызовов, и если они не включены правильно, возникают некоторые проблемы.

ГОЛОВА

<meta name="viewport" content="initial-scale=1.0, width=device-width" />
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.0/mapsjs-ui.css?dp-version=1533195059" />
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-core.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-service.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-ui.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-mapevents.js"></script>       
<script src="https://tcs.ext.here.com/assets/geodesic-polyline-955f4bde9d216d0e89b88f4ba29c75fd1407f30f905380039e312976f3e30c88.js"></script>

ТЕЛО

<div id="map" style='width: 600px; height: 300px; border: 1px solid #000000;'></div>
<script  type="text/javascript" charset="UTF-8" >

    // Check whether the environment should use hi-res maps
    var hidpi = ('devicePixelRatio' in window && devicePixelRatio > 1);

    // check if the site was loaded via secure connection
    var secure = (location.protocol === 'https:') ? true : false;

    // Create a platform object to communicate with the HERE REST APIs
    var platform = new H.service.Platform({
        useCIT: true,
        useHTTPS: secure,
        app_id: 'API_APP_ID',
        app_code: 'API_APP_CODE'
    }),
    maptypes = platform.createDefaultLayers(hidpi ? 512 : 256, hidpi ? 320 : null);

    // Instantiate a map in the 'map' div, set the base map to normal
    var map = new H.Map(document.getElementById('map'), maptypes.normal.map, {
        center: {lat:32.00, lng:-110.00}, 
        zoom: 1,                
        pixelRatio: hidpi ? 2 : 1
    });

    // Enable the map event system
    var mapevents = new H.mapevents.MapEvents(map);

    // Enable map interaction (pan, zoom, pinch-to-zoom)
    var behavior = new H.mapevents.Behavior(mapevents);

    // Enable the default UI
    var ui = H.ui.UI.createDefault(map, maptypes);

    window.addEventListener('resize', function() { map.getViewPort().resize(); });
    var npoints = 100, 
        offset = 20;

    // Tokyo -> san Francisco
    add([35.68019,139.81194],[37.77712,-122.41964], {style: { strokeColor: "rgba(0,0,255,0.7)", lineWidth: 4}});

    function add(s,e,options) {
        var start_ll = new H.geo.Point(s[0],s[1]),
            end_ll = new H.geo.Point(e[0],e[1]),
            start_coord = {x: start_ll.lng, y:start_ll.lat},
            end_coord = {x:end_ll.lng, y:end_ll.lat};
            description = ''+s[0]+','+s[1]+'=>'+e[0]+','+e[1]+'',
            gc0 = new arc.GreatCircle(start_coord,end_coord, {'name': 'line', 'color':'#ff7200','description':description}),
            line0 = gc0.Arc(npoints,{offset:offset}),
            strip = line0.strip();

        map.addObject(new H.map.Polyline(strip, options));
    }
</script>
0 голосов
/ 28 августа 2018

Домен примера изменился, но доступен здесь: https://tcs.ext.here.com/examples/v3/geodesic_polyline

...