标签: here-api

创建指向 here.com 的 URL 地图行车路线,地址/坐标已传递

有人知道如何here.com从我的网站创建一个正确的 URL 来链接到地图吗?我们使用大量 API 调用将地图嵌入到我们的网站中,但我想向人们发送电子邮件,其中包含'Click Here for directions'指向here.com行车路线的链接,其中包含 URL 中内置的地址或坐标。

例子:

使用谷歌地图,我们要做的就是创建一个简单的链接,如下所示:

https://www.google.com/maps?saddr=32.5589671,-97.2586011&daddr=32.7787855,-97.4495476
Run Code Online (Sandbox Code Playgroud)

只需传递变量saddrdaddrURL 内。我已经尝试了一切为here.com地图构建正确的 URL ,但它没有正确处理它。

我最好的尝试是:

https://www.here.com/directions/drive/32.2589671,-97.4486011/Weatherford,_Texas?x=ep&map=30.38114,-89.89326,6,normal
Run Code Online (Sandbox Code Playgroud)

但是它没有正确处理这个 URL,现在我几乎被卡住了,因为我已经尝试了所有我知道的尝试。

here-api

6
推荐指数
1
解决办法
2652
查看次数

NMACCoreRouter calculateRouteWithStops 没有回调(swift)

我正在尝试在 Swift 中使用 Here API 创建路由,但我遇到了一些问题,因为从未调用完成块,所以我无法确切知道问题出在哪里。这是我的代码:

let coreRoute = NMACoreRouter()

let startPoint = NMAGeoCoordinates(latitude: latitude1, longitude: longitude1)
let waypoint1 = NMAWaypoint(geoCoordinates: startPoint)
let middlePoint = NMAGeoCoordinates(latitude: latitude2, longitude: longitude2)
let waypoint2 = NMAWaypoint(geoCoordinates: middlePoint, waypointType: NMAWaypointType.ViaWaypoint)
let endPoint = NMAGeoCoordinates(latitude: latitude3, longitude: longitude3)
let waypoint3 = NMAWaypoint(geoCoordinates: endPoint, waypointType: NMAWaypointType.StopWaypoint)

let stopList = [waypoint1, waypoint2, waypoint3] // I have also tried adding the NMAGeoCoordinates to array but still no callback

let routingMode = NMARoutingMode(routingType: NMARoutingType.Fastest, transportMode: NMATransportMode.Car, routingOptions: 0)

coreRoute.calculateRouteWithStops(stopList, …
Run Code Online (Sandbox Code Playgroud)

here-api ios swift here-ios

6
推荐指数
1
解决办法
481
查看次数

Heremaps 交互式 javascript API : maptile 加载事件

我在一个角度应用程序中实现了 heremaps 并使用它来使用 wkhtmltopdf 打印 PDF,问题是我需要有一个可靠的事件来监听,以便通知 wkhtmltopdf 我的地图已完全加载并准备好打印。特别是在打印 PDF 时,某些图块要么未加载,要么仍处于模糊状态。

我试图收听该mapviewchangeend事件,但它不会在图块加载时引发。我也试过听render渲染引擎的事件,但是每次加载一个图块时都会抛出一个事件,我不知道我应该等待多少个图块

// add a listener on the map ready event
this.map.getEngine().addEventListener("render", (event: H.util.Event) => {
    if (this.map.getEngine() === event.target) {
        map.mapReadyAction();
    }
});
Run Code Online (Sandbox Code Playgroud)

有没有一种可靠的方法可以知道我的地图图块何时已完全加载并准备好打印?

编辑:使用评论中链接的帖子,我找到了一种可靠地计算已加载图块数量的方法。不幸的是,我找不到确定我的地图需要加载的图块总数的方法(getTileNumber()在代码中)

this.nbLoadedTiles = 0;
this.map
    .getBaseLayer()
    .getProvider()
    .addEventListener("update", () => {
        this.nbLoadedTiles++;
        console.log(`tile loaded : ${this.nbLoadedTiles}`);

        if (this.nbLoadedTiles === this.getTileNumber()) {
            console.log("All tiles loaded");
            map.mapReadyAction();
            this.nbLoadedTiles = 0;
        }
    });
Run Code Online (Sandbox Code Playgroud)

谢谢 !

javascript here-api

6
推荐指数
1
解决办法
331
查看次数

这里地图 Javascript API

刚刚开始使用示例 javascript 来简单地显示基于纬度和经度坐标的地图。我在第一行得到一个 javascript ReferenceError !

代码片段:

<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>    

    var platform = new H.service.Platform({
            'app_id': 'xxxxxxxxxxxxxxxxxxxx',
            'app_code': 'zzzzzzzzzzzzzzzzzzzzzzz'
        });
        // Obtain the default map types from the platform object
    var maptypes = platform.createDefaultLayers();
        // Instantiate (and display) a map object:
    var map = new H.Map(document.getElementById('bodydiv'), maptypes.normal.map, {
            zoom: 10, center: { lng: <%=longitude%>, lat: <%=latitude%>}
        });    
Run Code Online (Sandbox Code Playgroud)

浏览器控制台中的实际错误:ReferenceError: H 未定义 - 发生在 var platform=...

有任何想法吗?

javascript here-api

5
推荐指数
1
解决办法
6140
查看次数

HERE 使用自动完成功能映射 CORS 问题

我想在我的项目中使用 HERE 地图自动完成功能。但是当 ai 发送像文档中那样的请求时

this.axios.get('http://autocomplete.geocoder.api.here.com/6.2/suggest.json
  ?app_id={YOUR_APP_ID}
  &app_code={YOUR_APP_CODE}
  &query=Pariser+1+Berl
  &beginHighlight=<b>
  &endHighlight=</b>'
  )
  .then(response => {
    console.log(response)
  })
  .catch(error => {
    console.log(error)
  })
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

OPTIONS http://autocomplete.geocoder.api.here.com/6.2/suggest.json?{...} 405
Access to XMLHttpRequest at 'http://autocomplete.geocoder.api.here.com/6.2/suggest.json?{...}' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Run Code Online (Sandbox Code Playgroud)

在网络面板的 Chrome 开发者控制台中我检查了这个

Provisional headers are shown
Access-Control-Request-Headers: x-auth-token, content-type
Access-Control-Request-Method: GET
Run Code Online (Sandbox Code Playgroud)

我将请求标头中的内容类型设置为 application/json 并更改了临时标头

to Access-Control-Request-Headers: x-auth-token
Access-Control-Request-Method: GET
Run Code Online (Sandbox Code Playgroud)

所以如果我理解正确,我应该设置 x-auth-token 标头。但是我可以在哪里拿到这个令牌呢?或者这个问题可能有其他原因?

文档中没有任何关于此类问题的信息。

here-api

5
推荐指数
1
解决办法
2797
查看次数

如何在此处地图中拖动地图后获取边界

在拖尾事件之后,我面临着获取此处地图中的地图边界的问题。我需要新的经纬度来在新更改的视口中获取一些项目/点。 我只想在拖动结束时获得谷歌地图 map.getBounds().getNorthEast().lat() 的替代方案。

我已经尝试过这些方法,但没有一个返回东北和西南坐标的经纬度位置。


 Heremap.addEventListener('dragend', (ev) => {
                    const target = ev.target;


                   // console.log(map.getViewModel().getLookAtData().bounds);
                    // console.log(map.getBounds());
                    // console.log(target.getViewPort());
                    // console.log(target.getBoundingBox());

                }, false);
Run Code Online (Sandbox Code Playgroud)

maps here-api

5
推荐指数
1
解决办法
2072
查看次数

如何在 UI Controls HERE Maps v3.1 中获取地形图

升级到带有矢量/WebGL 渲染的 v3.1 Javascript SDK 后,默认 UI 控件中现在没有地形层。

我查看了 API 文档,但没有明确的示例可以显示如何指定 UI 控件中显示的内容。

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

    var layers = platform.createDefaultLayers();

    var hereMap = new H.Map(
        document.getElementById(mapCanvasDiv),
        defaultLayers.vector.normal.map,
        {
            zoom: mapOptions.zoom,
            center: mapOptions.center
    });

    var ui = H.ui.UI.createDefault(hereMap, defaultLayers);

    // Guessing I can change "ui" in some way to include the terrain layer which is a raster layer.

    hereMap.UIControls = ui;
Run Code Online (Sandbox Code Playgroud)

我想在 UI 控件中有 Normal、Terrain 和 Satellite 层,就像我们在 v3.0 上一样,因为我们的一些客户使用了这个层。

javascript here-api

5
推荐指数
1
解决办法
1271
查看次数

Openlayers 地图不使用全宽

我在Angular上使用openlayers来显示带有here-api作为地图图块提供程序的地图。Openlayers 6.1.1 Angular 8.0.0

但是,当页面加载时,地图不会填满整个宽度。
这发生在适用于 Windows (PC) 的 Edge 和 Chrome 以及 Android 的 Chrome 上。

在 Windows 中,只有在调整浏览器窗口大小时,地图才会使用整个宽度。
在 Android 中,当地图从视图中滚动出来并重新回到视图中时,宽度会被填充。

下面的屏幕截图演示了调整浏览器大小之前和之后地图的外观。

初始显示上的部分宽度图

在此处输入图片说明

调整窗口大小后地图使用全宽

在此处输入图片说明

我的 Angular 组件映射配置如下所示:

addCommonProjections();
this.source = new XYZ({
  url: 'https://{1-4}.base.maps.ls.hereapi.com' +
    '/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/512/png?apiKey=someApiKey',
  attributions: 'Map Tiles &copy; ' + new Date().getFullYear() + ' developer.here.com'
});

this.layer = new TileLayer({
  source: this.source
});

this.view = new View({
  center: fromLonLat([this.property.longitude, this.property.latitude ]),
  zoom: 16
});

this.map = new Map({
  target: …
Run Code Online (Sandbox Code Playgroud)

openlayers here-api flexbox angular openlayers-6

5
推荐指数
1
解决办法
2051
查看次数

Here Maps Routing API V8 - 多个路径点

我对 Here Maps Routing API v8 非常陌生。

我已经尝试过此处提供的示例: https: //developer.here.com/documentation/maps/3.1.15.1/dev_guide/topics/routing.html

我使用的路由参数如下所示:

var routingParameters = {
  'routingMode': 'fast',
  'transportMode': 'car',
  'origin': '50.1120,8.6834',
  'destination': '52.5309,13.3846',
  'return': 'polyline'
};
Run Code Online (Sandbox Code Playgroud)

现在我想在routingParameters中添加多个航路点,并且我尝试了以下格式:

'via' : ['50.1234,8.7654', '51.2234,9.1123']

但是当我在路由参数中使用上述行时,请求失败。

您能否建议具有多个航点的请求的正确格式?

here-api here-maps-rest

5
推荐指数
2
解决办法
4682
查看次数

以色列 5 位邮政编码而不是 7 位

类似于这里 地图地理编码错误的以色列邮政编码

准确性声明

https://developer.here.com/documentation/geocoder/dev_guide/topics/coverage-geocoder.html上声明了 7 位数字,但只返回了 5 位数字。

https://en.wikipedia.org/wiki/Postal_codes_in_Israel声称 5 位邮政编码已于 2013 年逐步淘汰。因此包裹承运商需要 7 位邮政编码。

我们能否期望 HERE.com 地理编码服务在不久的将来更新为 7 位数邮政编码?如果没有,开发指南的期望应该更新以符合现实。

here-api

5
推荐指数
1
解决办法
1088
查看次数