yandex地图js学习

news/2024/11/23 0:03:42/

由于百度地图在国外的某些寻路的场景不太完善,所以试用了一下俄罗斯的开源地图。同google地图一样,规划路线需要申请apikey,但无需绑定信用卡,每天的免费调用次数也非常够用。

yandex maps开发文档

申请apikey

只需要创建账号,按指引申请就好了。
申请页面是俄文的,没关系,勾选下面这个选项然后点击下一步就好

JavaScript API и HTTP Геокодер

查看使用次数

https://developer.tech.yandex.ru/services/3
在这里插入图片描述

引入

由于yandex默认是[ 纬度,经度 ],所以在引入时修改了默认方式,设置成我们熟悉的经纬度

<scriptsrc="https://api-maps.yandex.ru/2.1/?apikey=Your API key&lang=en_US&coordorder=longlat"type="text/javascript"></script>

初始化

ymaps.ready(function () {const yandexMap = new ymaps.Map(id, {center: [24.9042208, 14.3782747], // 苏丹zoom: 7,controls: ['zoomControl', 'fullscreenControl'],});});

如果仅仅是想更改地图中心点

yandexMap.setCenter([ 3.610998, 51.4987962 ], 7) // 南非

声明GeoObjectCollection

GeoObjectCollection可增加多个,用来操作不同类型的元素

const pCollection = new ymaps.GeoObjectCollection();
yandexMap.geoObjects.add(pCollection); // 将集合添加到map
// pCollection.removeAll(); // 移除集合中所有的元素

根据经纬度获取城市名称

假定经纬度为coords

const myReverseGeocoder = ymaps.geocode(coords, { kind: 'locality' });myReverseGeocoder.then(function (res) {console.log(res);const obj = res.geoObjects.get(0);const name = obj.properties.get('name'); // 地点名称const address = obj.properties.get('text'); // 详细地址},function (err) {// todo 提示获取失败console.log('地点获取失败 === ', err);});

显示气泡

pCollection.add(new ymaps.Placemark([ 3.610998, 51.4987962 ], {iconCaption: '这里是南非',}));

规划显示路线

如果自己添加路线,可显示多条不同出发地目的地的路线

const multiRoute = new ymaps.multiRouter.MultiRoute({referencePoints: [start, end], // 出发地和目的地经纬度或地址名称params: {routingMode: 'auto',},});pCollection.add(multiRoute);

在路线中获取后增加某些处理(不要擅自存储这些信息,这在免费的yandex中是不被允许的)

const multiRoute = new ymaps.multiRouter.MultiRoute({referencePoints: [startAddress, endAddress],params: {routingMode: 'auto',},});multiRoute.model.events.add('requestsuccess', function () {try {const activeRoute = multiRoute.getActiveRoute();const distance = activeRoute.properties.get('distance').text; // 距离const duration = activeRoute.properties.get('duration').text; // 时间const boundedBy = activeRoute.properties.get('boundedBy');// const activeRoutePaths = activeRoute.getPaths()// console.log(//   'activeRoutePaths: ',//   activeRoutePaths.properties.getAll()// )// activeRoutePaths.each(function (path) {//   console.log('path: ', path.properties)// })}} catch (e) {console.log(`${startAddress} To ${endAddress}的路线绘制失败 === `, e);}});

http://www.ppmy.cn/news/547098.html

相关文章

usage.txt-2

局域网共享喇叭 ---------------- $>paprefs #PulseAudio Preferences. $>pavucontrol #Volume Control.终端快捷键 ---------------- SHIFT+CTRL+v #终端复制. SHIFT+CTRL+c #终端粘贴. SHIFT+CTRL+t …

局域网服务器共享文件怎么设置,【局域网共享文件】局域网如何文件共享_局域网共享设置文件夹_佰佰安全网...

通过Windows操作系统提供的“共享文件”管理功能进行设置。打开“文件夹属性”窗口&#xff0c;切换到“共享”选项卡&#xff0c;点击“高级共享“按钮进入。 从弹出的“高级共享”窗口中&#xff0c;勾选“共享此文件夹”项&#xff0c;同时点击“权限”按钮进入设置界面。 最…

android防拷贝防复制,局域网如何防止文件被复制拷贝

操作也非常简单&#xff0c;点击顶部的“请选择要保护或取消保护的文件或文件夹”&#xff0c;然后选择要赋予的共享文件访问权限&#xff0c;只需要打勾就可以赋予用户访问共享文件的权限&#xff0c;不打勾则就不赋予&#xff0c;并在右侧选择访问共享文件的账号(意味着是针对…

如何禁止计算机的打印功能,pdf设置禁止打印 pdf如何防止修改的方法

现在很多单位&#xff0c;为了保护电脑文件安全&#xff0c;会经常将电脑的一些文件进行格式转换&#xff0c;比如将Word转换成PDF格式&#xff0c;以此来保护文件的安全。同时&#xff0c;很多单位都有自己的内部文件服务器&#xff0c;经常会共享一些文件供局域网用户访问&am…

局域网服务器共享文件夹设置,局域网服务器共享文件访问权限管理方法

如何针对局域网服务器共享文件访问权限管理呢&#xff1f;怎么给共享文件服务器中的共享文件进行访问权限控制呢&#xff1f;对于单位局域网而言&#xff0c;我们更多的时候是通过以共享文件的方式&#xff0c;实现局域网员工之间信息的交流和协作办公&#xff0c;针对局域网共…

西安电大计算机文化基础中考,计算机文化基础试题3.pdf

计算机文化基础试题3.pdf 计算机文化基础试题 三一、单项选择题(本大题共50 小题&#xff0c;每小题1 分&#xff0c;共 50 分。在每小题列出的四个备选项中只有一个是符合题目要求的&#xff0c;请将其代码填涂在答题卡上。错选、多选或未选均无分)1 、电子计算机的发展过程经…

2018计算机考研大纲408,2018考研计算机408考试大纲.pdf

2018考研计算机408考试大纲.pdf 2018 考研计算机学科专业基础综合考试大纲考研计算机学科专业基础综合考试大纲 统考专业课大纲 来源 教育部考试中心 2017 08 17 I 考试性质 计算机学科专业基础综合考试是为高等院校和科研院所招收计算机科学与技术学科的硕士 研究生而设置的具…

windows 服务器 系统属性 高级 处理器计划 内存使用,WindowsXP系统优化.pdf

只年 月爆轰 波与冲击波第期 系统优化 陆向阳 谢彬 郑宏鸣 杨晓青 中国工程物理研究 院流体物理研究所室 四川绵阳 摘要操作系统是目前比较流行的操作系统 通过 安装 系统补丁 关 闭一些 不必要 的服务 系统备份 安 装杀病毒软件等一系列优化系统的方法 可以提升操作系统的性能…