如何运用HERE JavaScript快速建立前端的网页显示地图

介绍

HERE Maps API for JavaScript提供一套完整的程序接口,帮助开发者快速开发显示地图或位置讯息的前端网页。
更多的细节与内容,请参考HERE Developer (https://developer.here.com/documentation/maps/3.1.17.0/dev_guide/index.html)

步骤

1. 取得HERE服务的凭证:
首先,开发者需在HERE Developer网页注册帐户,而后自己的需求选则计画,推荐您可以首先选择Freemium的计画(免费提供开发者一个月250K的传输量)。
注册完成后,于网页右上角点选使用者并进入Project后,即可立即产生一组JS的凭证,在后续调用HERE的服务会需要用到API KEY的资讯。
http://img2.58codes.com/2024/20129891IEN53QEbds.jpg

**2. 载入HERE JS library : **
于HTML框架的中,载入以下的HERE JS library,

<!DOCTYPE html>    <head>      ...      <meta name="viewport" content="initial-scale=1.0,        width=device-width" />      <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>    </head>

3. 开发基于HERE地图的网页显示 :

初始HERE Platform服务,先建立变数platform并指定为启始H.service.Platform,在此载入前叙步骤获得的APIKEY,下一个步骤,建立地图的Layer,HERE在JS 3.1版本中,提供了Vector(向量)与Raster(网格)的资料格式。 下方展示的程式片段码中,只需变更defaultLayers.vector.normal.map 为 defaultLayers.raster.normal.map,即可更改渲染的方式从HTML5 WebGL退回canvas 2D,以支援部分浏览器尚未支援WebGL。
// Create a Platform object:var platform = new H.service.Platform({  'apikey': '{YOUR_API_KEY}'});// Get an object containing the default map layers:var defaultLayers = platform.createDefaultLayers();// Instantiate the map using the vecor map with the// default style as the base layer:var map = new H.Map(    document.getElementById('mapContainer'),    defaultLayers.vector.normal.map,    {      zoom: 11,      center: { lat: 25.037975, lng: 121.5493 }    });

4. 动态地图显示 :
透过以上的方式,已经能使您的网页快速的加载HERE的静态地图显示。然而,网页的地图,动态的互动是必须的功能,HERE Maps JS 提供Event模组,快速的使网页地图产生动态互动。
首先,首先,您必须在步骤#2的地方,加载mapsjs-ui.js

<script src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js"    type="text/javascript" charset="utf-8"></script

然后,于步骤#3的程序码之后,创建Event模组。

    // Enable the event system on the map instance:    var mapEvents = new H.mapevents.MapEvents(map);    // Add event listener:    map.addEventListener('tap', function(evt) {        // Log 'tap' and 'mouse' events:        console.log(evt.type, evt.currentPointer.type);    });    // Instantiate the default behavior, providing the mapEvents object:     var behavior = new H.mapevents.Behavior(mapEvents);

5. UI 套件 :

此外,若希望在网页上,快速的加入地图控制功能,例如:图面缩放或地图样式的更改,可加入HERE的JS UI模组,
首先,您必须在步骤#2的地方,加载apsjs-events.js

<script src="https://js.api.here.com/v3/3.1/mapsjs-ui.js"            type="text/javascript" charset="utf-8"></script>

然后,于步骤#3的程序码之后,创建UI模组。

// Create the default UI:    var ui = H.ui.UI.createDefault(map, defaultLayers);

5. 地图显示 :
现在您,即可立即于网页浏览器体验HERE MAP。
http://img2.58codes.com/2024/20129891aPdzljpXJH.jpg

完整CODEBASE:

<html><head>    ...    <meta name="viewport" content="initial-scale=1.0,        width=device-width" />    <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>    <script src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.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>    <link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css" /></head><body>    <div style="width: 100%; height: 500px" id="mapContainer"></div>    <script>    // Create a Platform object:    var platform = new H.service.Platform({        'apikey': '[your apikey]'    });    // Get an object containing the default map layers:    var defaultLayers = platform.createDefaultLayers();    // Instantiate the map using the vecor map with the    // default style as the base layer:    var map = new H.Map(        document.getElementById('mapContainer'),        defaultLayers.vector.normal.map, {            zoom: 15,            center: { lat: 25.037975, lng: 121.5493 }        });    // Enable the event system on the map instance:    var mapEvents = new H.mapevents.MapEvents(map);    // Add event listener:    map.addEventListener('tap', function(evt) {        // Log 'tap' and 'mouse' events:        console.log(evt.type, evt.currentPointer.type);    });    // Instantiate the default behavior, providing the mapEvents object:     var behavior = new H.mapevents.Behavior(mapEvents);    // Create the default UI:     var ui = H.ui.UI.createDefault(map, defaultLayers, 'zh-CN')    </script></body></html>

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章