前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在地图上绘制路线图

在地图上绘制路线图

作者头像
zstar
发布于 2022-06-14 01:18:52
发布于 2022-06-14 01:18:52
95500
代码可运行
举报
文章被收录于专栏:往期博文往期博文
运行总次数:0
代码可运行

最近做个项目,官方给了车的一些经纬度数据,为了看的更清楚,需要把数据标注在地图上 想到了两套方案,第一种采用python的folium库 结果遇到问题,数据一多,绘画出来的速度很慢,而且它的某JS插件还有问题,可能要访问国外网站 最后采用百度地图API+前端实现

实现代码

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE html>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>运输轨迹图</title>  
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>  
</head>  
<body>  
<div  style="width:1000px;height:800px;border:1px solid gray" id="container"></div>
  
<script type="text/javascript">  
    window.onload = function(){
    	var map = new BMap.Map("container");  
        map.centerAndZoom(new BMap.Point(108.847098,34.553311), 19);  
        map.addControl(new BMap.NavigationControl());               // 添加平移缩放控件  
        map.addControl(new BMap.ScaleControl());                    // 添加比例尺控件  
        map.addControl(new BMap.OverviewMapControl());              //添加缩略地图控件  

        map.clearOverlays();                        //清除地图上所有的覆盖物  
        var driving = new BMap.DrivingRoute(map);    //创建驾车实例  
    	// 坐标点数据
    	var pointArr = [
		{lng:108.846778,lat:34.553381},
            {lng:108.913278,lat:34.56822},
            {lng:108.965431,lat:35.067111},
            {lng:108.970378,lat:35.28905},
            {lng:109.062676,lat:35.459776},
            {lng:109.150031,lat:35.753583},
            {lng:109.162038,lat:36.13323},
            {lng:109.210436,lat:36.275681},
            {lng:109.530575,lat:36.374983},
            {lng:109.524826,lat:36.311185},
            {lng:109.48606,lat:36.065591},
            {lng:109.472351,lat:35.97982},
            {lng:109.416193,lat:35.785386},
            {lng:109.218855,lat:35.591348},
            {lng:109.00506,lat:35.229895},
            {lng:109.000183,lat:35.096543},
            {lng:108.948958,lat:35.043541},
            {lng:108.87274,lat:34.955763},
            {lng:108.918626,lat:34.829366},
            {lng:108.917861,lat:34.710648},
            {lng:108.906966,lat:34.557451},
            {lng:108.675451,lat:34.441986},
            {lng:109.111373,lat:35.530833},
            {lng:109.150411,lat:35.754528},
            {lng:109.42088,lat:35.831146},
            {lng:109.416193,lat:35.785386},
            {lng:109.23994,lat:35.651303},
            {lng:108.794355,lat:34.442668},
            {lng:108.804498,lat:34.492978},
            {lng:109.314386,lat:36.316936}];
		// 生成坐标点
		var trackPoint = [];
		for (var i = 0, j = pointArr.length; i < j; i++) {
			trackPoint.push(new BMap.Point(pointArr[i].lng, pointArr[i].lat));
		}


    	for (var i = 0; i < trackPoint.length; i++) {
        	if(i != trackPoint.length -1 ){
        		driving.search(trackPoint[i], trackPoint[i+1]);
           	}
    	}
        driving.setSearchCompleteCallback(function(){  
            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组  
      
            var polyline = new BMap.Polyline(pts);       
            map.addOverlay(polyline);  

        	// 画图标、想要展示的起点终点途经点
        	for (var i = 0; i < trackPoint.length; i++) {
        		var lab;
            	if(i == 0){
            		lab = new BMap.Label("起点",{position:trackPoint[i]});
                }else if(i == trackPoint.length - 1){
                	lab = new BMap.Label("终点",{position:trackPoint[i]});
                }else{
                	/* lab = new BMap.Label("途径点",{position:trackPoint[i]}) */
                }
        	    var marker = new BMap.Marker(trackPoint[i])
        	    map.addOverlay(marker);
        	    map.addOverlay(lab);
        	}
        	map.setViewport(trackPoint);  
        });  
    }
</script>  

</body>  
</html>  
</body>
</html>

效果如图 注意离线画图不需要在百度控制台创建应用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
百度地图AP1「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116471.html原文链接:https://javaforall.cn
全栈程序员站长
2022/01/21
6740
地图的折腾
一个纯后台人员折腾前端,最近有个地图的小需求。然后去折腾了一把百度地图。其中一个要求就是在地图按数字标注目标位置。
BUG弄潮儿
2021/09/10
7700
地图的折腾
百度地图api根据坐标搜索附近信息_最简单app制作
  这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的。只要简单几步注册下,就可以获得一个Key,就能直接调用(PS:好像1.3版本前的无需注册获取key,就能直接调用api)。   想着能结合到自己的项目中去,那也挺不错的。看了园子中的几篇文章,感觉甚好,想自己也动手试试。 在调用百度地图API的时候,经纬度的获取必然是关键,那么怎么样获取到经纬度的值呢?这是一个最首要解决的问题。 通过查询资料,看了几个例子,得知了调用的方法(感谢与时俱进的实例,给予很大的帮助)。站着巨人的肩膀上,就能比较快的实现功能。   闲话不多,下面就直接给大家介绍下,具体要怎么调用百度地图API。   首先新建一张html页面。然后引用上API:
全栈程序员站长
2022/09/20
1K0
百度地图api根据坐标搜索附近信息_最简单app制作
页面中插入百度地图(使用百度地图API)
<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”插入地图.aspx.cs” Inherits=”插入地图” %>
全栈程序员站长
2022/07/06
8120
页面中插入百度地图(使用百度地图API)
百度地图API-创建多个坐标,连线,信息提示
这是一个多坐标创建,并连线,和信息显示的例子 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html, #allm
用户1149182
2020/06/19
1.9K0
百度地图API-创建多个坐标,连线,信息提示
【进阶系列】地理位置专题
        HTML5 Geolocation(地理定位)用于定位用户的位置。
江中散人_Jun
2023/10/16
1.2K0
【进阶系列】地理位置专题
百度地图API开发指南(二)
除了指定停靠位置外,还可以通过偏移量来指示控件距离地图边界有多少像素。如果两个控件的停靠位置相同,那么控件可能会重叠在一起,这时就可以通过偏移值使二者分开显示。
幽鸿
2020/04/01
1.9K0
百度地图API开发指南(二)
百度地图电子围栏功能
今年疫情以来,工作都比较紧凑,没能抽出时间来记录工作日常了。最近接触一个项目需要使用到百度地图的围栏功能,作为前期调研,先探探路。 经过一番搜搜,找到一篇不错的文章。专门介绍,百度地图围栏的。地址如下:https://www.cnblogs.com/CherishTheYouth/p/CherishTheYouth_20190416.html
用户5640963
2020/10/26
4.2K0
百度地图电子围栏功能
百度地图API开发指南(三)
首先您需要定义自定义覆盖物的构造函数,在下面的示例中我们定义一个名为SquareOverlay的构造函数,它包含中心点和边长两个参数,用来在地图上创建一个方形覆盖物。
幽鸿
2020/04/01
2K0
百度地图API开发指南(三)
Vue.js实现百度地图定位、搜索及获取经纬度
百度地图官方给出的SDK没有vue版本,我们可以引入百度地图的js,去实现百度地图定位,并实现搜索、以及获取经纬度,其实现方法和纯html+js是一样的,只不过是多了一层vue的方法(methods)。 当打开页面的时候,百度地图自动定位当前位置,给出一个搜索框,搜索我们所想要寻找的目标地址,百度地图会列出相关检索结果,点击检索结果,并在地图上定位,然后获取到经纬度。 1.在 public/index.html 中引入百度地图SDK的JS文件
子润先生
2021/06/23
3.1K0
js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
网上的一些百度地图例子,基本上没有连套的 定位 例子。下面我分享一套我自己弄的,废话不多说,看代码,里面有注释! 1 <!DOCTYPE html> 2 <html> 3 <head>
林冠宏-指尖下的幽灵
2018/01/02
4K1
百度API的经历,怎样为多个点添加带检索功能的信息窗口
不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!!
Yiiven
2022/12/15
1.4K0
JQuery实现坐标拾取和地址模糊查询
本文详细讲解了如何使用 JQuery+HTML+JavaScript 实现移动端页面中的地图位置选取功能。本文逐步展示了如何构建基本的地图页面,如何通过点击地图获取经纬度和地理信息,以及如何实现模糊查询地址并在地图上标注。最后,提供了完整的代码示例,并总结了基于地图API进行地图位置选点的开发过程,帮助开发者快速上手并应用到实际项目中。
Damon小智
2024/08/11
2250
JQuery实现坐标拾取和地址模糊查询
第151天:网页中插入百度地图方法(不需要密钥)
 以上就是网页中插入百度地图的方法,做企业站,总是要插入百度地图,以后再也不用愁了。
半指温柔乐
2018/09/11
5.2K0
第151天:网页中插入百度地图方法(不需要密钥)
百度地图电子围栏功能的实现
最近公司项目需求,要做一个百度地图电子围栏的功能,在网上查了一下资料,看了很多博客,大多数都写的不是很详细,我看的云里雾里的,最后终于集合所有的几篇资料,自己做出了一个简单的demo,下面将过程记录和分享一下,希望给予有需要同学一些帮助,我这个人说话比较啰嗦,所以写的一定会很详细的,哈哈!闲言少叙,开始了。
CherishTheYouth
2019/07/30
3.6K0
百度地图电子围栏功能的实现
百度地图----解析经纬度
解析经纬度 Geocoder 步骤 直接js代码 // 百度地图API功能 var point = null; var map = new BMap.Map("l-map"); map.centerAndZoom(new BMap.Point(116.395645,39.929986), 7); map.enableScrollWheelZoom(true); //解析经纬度 function analysis(pt){ var geoc
Rattenking
2021/01/29
7110
百度地图----浏览器定位获得详细地址
浏览器定位获得详细地址 // 百度地图API功能 var point = null; var map = new BMap.Map("l-map"); map.centerAndZoom(new BMap.Point(116.395645,39.929986), 7); map.enableScrollWheelZoom(true); //获取浏览器定位 var geolocation = new BMap.Geolocation(); geo
Rattenking
2021/01/29
6940
百度地图 路书动态加载规划
<html lang="en"> <head> <meta charset="utf-8"/> <title>路书</title> <style type="text/css"> body, html { width: 100%; height: 100%; margin: 0; font-family: "微软雅黑"; } #map_ca
拿我格子衫来
2022/01/24
4740
百度地图 路书动态加载规划
Django调用百度地图api在地图上批量增加标记点
在调用百度地图api进行web开发时遇到了一个需求,我们需要在网页中内嵌一个div 然后在div中调用百度地图的js显示我们所需要的地区。根据需求坐标在地图上添加若干个标记点,并批量的为各个标记点设置监听函数,使之显示我们所需要的信息
earthchen
2020/09/24
1.7K0
前端切图:调用百度地图API
原型图 图片发自简书App <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <s
王小婷
2018/06/01
1.3K0
推荐阅读
相关推荐
百度地图AP1「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档