HERE API-地图在野生动物园浏览器中不起作用

问题描述 投票:0回答:1

正在PWA上工作,该PWA通过geolocation-API检索用户的位置,将图钉放置到用户的当前位置,并允许他将图钉拖动到特定位置。

这在Chrome浏览器中效果很好,但在野生动物园中进行测试时,地图仅在地图,并且不允许缩放超过几秒钟+它没有放置标记。

// configure pin
function addDraggableMarker(map, behavior) {
    // create icon
    var svgMarkup = /* some random svg here */;
    var icon = new H.map.Icon(svgMarkup);

    // position the pin
    var coords = {
        lat: lat,
        lng: lng
    };

    // initialize pin
    window.marker = new H.map.Marker(
        coords, {
            icon: icon
        }, {
            volatility: true
        }
    );

    // make pin draggable
    marker.draggable = true;
    map.addObject(marker);

    // disable the default draggability of the underlying map 
    map.addEventListener('dragstart', function(ev) {
        var target = ev.target,
            pointer = ev.currentPointer;
        if (target instanceof H.map.Marker) {
            var targetPosition = map.geoToScreen(target.getGeometry());
            target.offset = new H.math.Point(pointer.viewportX - targetPosition.x, pointer.viewportY - targetPosition.y);
            behavior.disable();
        }
    }, false);

    // re-enable the default draggability of the underlying map when dragging has completed
    map.addEventListener('dragend', function(ev) {
        var target = ev.target;
        if (target instanceof H.map.Marker) {
            behavior.enable();

            window.markerMoved = target.getGeometry();
        }
    }, false);

    // Listen to the drag event and move the position of the marker as necessary
    map.addEventListener('drag', function(ev) {
        var target = ev.target,
            pointer = ev.currentPointer;
        if (target instanceof H.map.Marker) {
            target.setGeometry(map.screenToGeo(pointer.viewportX - target.offset.x, pointer.viewportY - target.offset.y));
        }
    }, false);
}

// click on the button which displays the map 
$("#addLocation").on('click', function() {                                   

    // 1. connect to API
    window.platform = new H.service.Platform({
        'apikey': 'MY_API_KEY'
    });

    window.defaultLayers = platform.createDefaultLayers();

    // 2. initialize map
    window.map = new H.Map(document.getElementById('map'),
        defaultLayers.vector.normal.map, {
            center: {
                lat: lat,
                lng: lng
            },
            zoom: 16,
            pixelRatio: window.devicePixelRatio || 1
        });

    // stretch map to size of container
    window.addEventListener('resize', () => map.getViewPort().resize());

    // 3. make map interactive
    //Behavior implements default interactions for pan/zoom (also on mobile touch environments)
    window.behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));

    // 4. add map UI
    window.ui = H.ui.UI.createDefault(map, defaultLayers, "de-DE");

    // Add the click event listener.
    addDraggableMarker(map, behavior);               
});

javascript safari here-api
1个回答
0
投票

请尝试清除浏览器的缓存。如果没有帮助,请尝试使用php“ cache javascript”功能包装标签。如果控制台日志上还有任何错误消息,也要共享。

© www.soinside.com 2019 - 2024. All rights reserved.