首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改ui控件上的贴图类型

如何更改ui控件上的贴图类型
EN

Stack Overflow用户
提问于 2019-04-15 07:29:53
回答 2查看 112关注 0票数 0

当我们初始化映射时,我们将基层设置为"reduced.day“。

我们目前正面临一个问题,当用户将地图类型从“地图视图”更改为“卫星”并返回到“地图视图”时,瓷砖更改为标准,而不是 "reduced.day“。

我已经查过那些文档,但是找不到任何关于如何防止这个问题的提示。

因此,我的问题是,如何设置与UI控制的地图视图瓷砖,以减少白天。

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-10 13:19:15

我终于能解决我的问题了。

解决方案是为每个映射类型传递具有请求的映射样式的自定义对象。

请参阅下面编辑地图控件的完整代码。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Here Custom Controlls</title>
    <script src="http://js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"
    ></script>
    <script src="http://js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"
    ></script>
    <script src="http://js.api.here.com/v3/3.0/mapsjs-ui.js" type="text/javascript" charset="utf-8"
    ></script>
    <link rel="stylesheet" type="text/css" href="http://js.api.here.com/v3/3.0/mapsjs-ui.css"
    />
  </head>
  <body>
    <div id="map" style="height: 800px; width: 800px;"></div>

    <script type="text/javascript" charset="utf-8">
      //Initialize the Platform object:
      const platform = new H.service.Platform({
        app_id: {YOUR_APP_ID},
        app_code: {YOUR_APP_CODE}
      });

      // Get the default map types from the Platform object:
      const defaultLayers = platform.createDefaultLayers();

      // Instantiate the map:
      const map = new H.Map(
        document.getElementById("map"),
        defaultLayers.normal.map,
        {
          zoom: 10,
          center: { lng: 13.4, lat: 52.51 }
        }
      );

      const mapTileService = platform.getMapTileService({ type: "base" });

      var reduce = mapTileService.createTileLayer(
        "maptile",
        "reduced.day",
        256,
        "png8"
      );

      map.setBaseLayer(reduce);

      // Create the custom UI:
      const ui = H.ui.UI.createDefault(
        map,
        {
          ...defaultLayers,
          normal: {
            map: reduce
          }
        },
        "de-DE"
      );
    </script>
  </body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2019-04-16 07:56:08

请参阅两个javascript函数代码。

SatelliteLayer将使用类型:“空中”

ReducedLayer将使用类型:“base”

代码语言:javascript
复制
/**
 *
 * @param  {H.Map}
 * @param   {H.service.Platform}
 */
function setAerialSatelliteLayer(map, platform){
  var mapTileService = platform.getMapTileService({
      type: 'aerial'
    });
  var parameters = {};
  var tileLayer = mapTileService.createTileLayer(
      'maptile',
      'satellite.day',
      256,
      'png8',
      parameters
    );
  map.setBaseLayer(tileLayer);
}

/**
 *
 * @param  {H.Map}
 * @param   {H.service.Platform}
 */
function setBaseReducedLayer(map, platform){
  var mapTileService = platform.getMapTileService({
      type: 'base'
    });
  var parameters = {};
  var tileLayer = mapTileService.createTileLayer(
      'maptile',
      'reduced.day',
      256,
      'png8',
      parameters
    );
  map.setBaseLayer(tileLayer);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55684365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档