【问题标题】:HERE API GET query for static map markerHERE API GET 查询静态地图标记
【发布时间】:2020-09-18 09:32:45
【问题描述】:

我有一个小型应用程序,在同一个目录中包含三个文件:

  • main.js
  • python_script.py
  • index.html

在 main.js 中:

var platform = new H.service.Platform({
   'apikey': {my API key}

});

var defaultLayers = platform.createDefaultLayers();


var map = new H.Map(
document.getElementById('mapContainer'),
defaultLayers.vector.normal.map,
{
    zoom: 10,
    center: { lng: 17.0, lat: 51.0 }
});

window.addEventListener('resize', () => map.getViewPort().resize());
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
var ui = H.ui.UI.createDefault(map, defaultLayers);
    ui.getControl('zoom').setDisabled(false)

function addWroclove() { 
        var markerWroclaw = new H.map.Marker({ lat: 51.0, lng: 17.0 }, { icon: icon });
        map.addObject(markerWroclaw);
    }
addWroclove();

在 python_script.py 中:

import requests
URL_wro = "https://places.ls.hereapi.com/places/v1/browse?at=17.0%2C51.0&q=Wroclaw&apiKey=MY_API_KEY" 
wro = requests.get(URL_wro)
print(wro.text)

index.html:

<!DOCTYPE html>
<html lang="pl">
<head>
    <title></title>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"/>
    <meta name="description" content=""/>
    <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-service.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://js.api.here.com/v3/3.1/mapsjs-ui.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript"  charset="utf-8" src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js"></script>
    <script type="text/javascript" >window.ENV_VARIABLE = 'https://developer.here.com'</script>
    <script src='https://developer.here.com/javascript/src/iframeheight.js'></script>
    <link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css"/>
</head>
<body>
      <div class="map" id="mapContainer"></div>
</body>
</html>

我的问题是: 当我尝试发送 GET 查询(在 python_script.py 中)时,我正在接收数据,但来自 HERE 服务器而不是来自我自己的远程服务器上的地图。 我的意思是 - 我想从我声明了自己的标记 (markerWroclaw) 的地图中获得 GET 的响应。 如何让它以正确的方式工作?

【问题讨论】:

    标签: javascript python html get here-api


    【解决方案1】:

    浏览端点将为您提供来自 HERE 服务器的位置。如果您想呼叫您在旅途中添加的位置,您将需要使用Custom Location API。当您将位置添加为标记时,您还必须将其添加到您的自定义图层中。从那里您将能够调用和解析自定义位置的图层。

    例如,下面是我上传到地图图层的自定义 POI 图层。

    NAME    WKT
    POINT1  POINT(13.402449957770752 52.505308544760155)
    POINT2  POINT(13.408663845393365 52.499911895880146)
    

    这可以使用下面的调用上传

    curl --request -i -X POST
        -H "Content-Type: multipart/form-data"
        -F "zipfile=@my_folder/my_layer_content.zip"
        "https://fleet.ls.hereapi.com/2/layers/upload.json
        ?layer_id=POIS
        &apiKey={YOUR_API_KEY}"
    

    或者这个web tool

    上传后,您可以使用此调用检索图层中的点:

    https://fleet.ls.hereapi.com/2/search/all.json?apikey={SameAPIKeyUsedToUpload}&layer_id=POIS
    

    你也可以用这个层执行一堆search functions

    【讨论】:

    • 谢谢!这真的很有帮助。我创建了一个 WKT 文件,并通过 curl 调用上传了它。一切似乎都正常工作。我只是不知道如何使点/标记出现在我自己托管的网站上的地图上。你能帮我完成最后一步吗?
    • 功能 search/all 还为您提供所有点的几何形状。您可以调用 main.js 中的图层并循环以在地图上添加标记,就像您在函数 addWroclove() 中的代码中所做的那样。
    • 非常感谢。这很复杂,但我想我已经解决了我遇到的所有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多