3.1版之后,栅格地图无法正常工作

时间:2019-09-06 22:53:41

标签: here-api

我将JavaScript的Maps API更新为3.1v。之后,光栅图将无法正确显示。进行一些缩放后,无法获得清晰的图像和字体问题。实际:

我尝试设置一些不同的像素比例和其他地图类型,但这没有帮助。有错误吗?

这是我初始化地图的方式:

var platform = new H.service.Platform({
            'apikey': apiKey,
        });

 $scope.defaultLayers = platform.createDefaultLayers({
            tileSize: pixelRatio === 1 ? 256 : 512,
            ppi: pixelRatio === 1 ? undefined : 320,
            pois: true
        });
        $scope.geocoder = platform.getGeocodingService();

        $scope.map = new H.Map(
            document.getElementById("here-map-canvas"),
            $scope.defaultLayers.raster.normal.map,
            {
                zoom: 12,
                center: { lat: officeLat, lng: officeLng }
            });

        $scope.markerGroup = new H.map.Group();

        $scope.map.addObject($scope.markerGroup);



        var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents($scope.map));                                                    //Step 3: make the map interactive

        $scope.ui = H.ui.UI.createDefault($scope.map, $scope.defaultLayers);    ```

**Please check imgs:**

Actual: https://i.stack.imgur.com/Vu17g.jpg
Expected: https://i.stack.imgur.com/Tcid8.jpg



<meta name="viewport" content="width=device-width, initial-scale=1.0">
Refs:
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css?dp-version=1549984893" />
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-core.js"></script>
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-core-legacy.js"></script>
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-service.js"></script>
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-service-legacy.js"></script>
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-ui.js"></script>
        <script type="text/javascript" src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js"></script>

2 个答案:

答案 0 :(得分:0)

请添加以下库并尝试运行它,并共享代码中已使用的库。

<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.1/mapsjs-ui.css" />
<script src="https://js.api.here.com/v3/3.1/mapsjs-core.js"
type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs-core-legacy.js"
type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs-service.js"
type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs-service-legacy.js"
type="text/javascript" charset="utf-8"></script>

答案 1 :(得分:0)

缩放中心旁边添加 pixelRatio 参数:

$scope.map = new H.Map(
    document.getElementById("here-map-canvas"),
    $scope.defaultLayers.raster.normal.map,
    {
        zoom: 12,
        center: { lat: officeLat, lng: officeLng },
        pixelRatio: window.devicePixelRatio || 1
    }
);

并禁用行为 ZoomControl UI(在v3.1中默认启用)的分数缩放:

behavior.disable(H.mapevents.Behavior.Feature.FRACTIONAL_ZOOM);

$scope.ui.removeControl('zoom');
$scope.ui.addControl('zoom', new H.ui.ZoomControl({
  fractionalZoom: false,
  alignment: H.ui.LayoutAlignment.RIGHT_BOTTOM
}));

有关更多详细信息,请参见地图选项的文档:https://developer.here.com/documentation/maps/topics_api/h-map-options.html#h-map-options

ZoomControl选项: https://developer.here.com/documentation/maps/topics_api/h-ui-zoomcontrol-options.html

以及要在行为上禁用的功能:https://developer.here.com/documentation/maps/topics_api/h-mapevents-behavior-feature.html