c 计算html标签坐标,trajectory.html

本文介绍如何使用百度地图API绘制运动轨迹。通过创建地图实例并设置缩放级别,利用假数据点绘制出一条绿色虚线轨迹,并在起点和终点放置特定图标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运动轨迹-百度地图API

html,

body,

#baiduMap {

width: 100%;

height: 100%;

margin: 0px;

padding: 0px;

overflow: hidden;

}

// 创建假数据

var pointArr = [{

"lng": 121.324695,

"lat": 31.218586

}, {

"lng": 121.325162,

"lat": 31.216309

}, {

"lng": 121.328432,

"lat": 31.216649

}, {

"lng": 121.341341,

"lat": 31.218332

}, {

"lng": 121.349758,

"lat": 31.218131

}, {

"lng": 121.35451,

"lat": 31.216131

}, {

"lng": 121.355916,

"lat": 31.215767

}, {

"lng": 121.359815,

"lat": 31.215419

}, {

"lng": 121.363381,

"lat": 31.215079

}, {

"lng": 121.363336,

"lat": 31.21511

}, {

"lng": 121.36277,

"lat": 31.220283

}, {

"lng": 121.362222,

"lat": 31.224413

}, {

"lng": 121.361692,

"lat": 31.226583

}, {

"lng": 121.365115,

"lat": 31.226397

}, {

"lng": 121.367778,

"lat": 31.226145

}, {

"lng": 121.371236,

"lat": 31.225774

}, {

"lng": 121.371174,

"lat": 31.22362

}];

//在指定容器创建地图实例并设置最大最小缩放级别

var map = new BMap.Map("baiduMap", {

minZoom: 5,

maxZoom: 19

});

// 初始化地图,设置中心点和显示级别

map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);

// 开启鼠标滚轮缩放功能,仅对PC上有效

map.enableScrollWheelZoom();

// 将控件(平移缩放控件)添加到地图上

map.addControl(new BMap.NavigationControl());

// 地图定位到第一个点,显示级别为15

map.centerAndZoom(pointArr[0], 15);

// 使用浏览器的矢量图制图工具,在地图上绘制折线的地图叠加层

var polyline = new BMap.Polyline(pointArr, {

strokeColor: "#0C8816",

strokeWeight: 3,

setStrokeStyle: "dashed",

strokeOpacity: 1

});

// 将覆盖物(线)添加到地图上

map.addOverlay(polyline);

//

for (var i = 0, j = pointArr.length; i < j; i++) {

var myIcon;

if (i == 0) {

myIcon = new BMap.Icon("images/start.png", new BMap.Size(32, 32), {

// 指定定位位置

offset: new BMap.Size(10, 32),

});

} else if (i == pointArr.length - 1) {

myIcon = new BMap.Icon("images/end.png", new BMap.Size(32, 32), {

// 指定定位位置

offset: new BMap.Size(32, 32),

});

} else {

myIcon = new BMap.Icon("images/transparent.png", new BMap.Size(32, 32), {

// 指定定位位置

offset: new BMap.Size(32, 32),

});

};

var marker = new BMap.Marker(pointArr[i], {

icon: myIcon

});

map.addOverlay(marker);

};

//根据经纬极值计算绽放级别。

function getZoom(maxLng, minLng, maxLat, minLat) {

// 级别18到3。

var zoom = ["50", "100", "200", "500", "1000", "2000", "5000", "10000", "20000", "25000", "50000", "100000", "200000", "500000", "1000000", "2000000"];

// 创建点坐标A

var pointA = new BMap.Point(maxLng, maxLat);

// 创建点坐标B

var pointB = new BMap.Point(minLng, minLat);

//获取两点距离,保留小数点后两位

var distance = map.getDistance(pointA, pointB).toFixed(1);

for (var i = 0, zoomLen = zoom.length; i < zoomLen; i++) {

if (zoom[i] - distance > 0) {

//之所以会多3,是因为地图范围常常是比例尺距离的10倍以上。所以级别会增加3。

return 18 - i + 3;

}

}

};

// 判断最大和最小经纬度

function setZoom(points) {

if (points.length > 0) {

var maxLng = points[0].lng;

var minLng = points[0].lng;

var maxLat = points[0].lat;

var minLat = points[0].lat;

var res;

for (var i = points.length - 1; i >= 0; i--) {

res = points[i];

if (res.lng > maxLng) maxLng = res.lng;

if (res.lng < minLng) minLng = res.lng;

if (res.lat > maxLat) maxLat = res.lat;

if (res.lat < minLat) minLat = res.lat;

}

var cenLng = (parseFloat(maxLng) + parseFloat(minLng)) / 2;

var cenLat = (parseFloat(maxLat) + parseFloat(minLat)) / 2;

var zoom = getZoom(maxLng, minLng, maxLat, minLat);

map.centerAndZoom(new BMap.Point(cenLng, cenLat), zoom);

} else {

//没有坐标,显示全中国

map.centerAndZoom(new BMap.Point(103.388611, 35.563611), 5);

}

};

setZoom(pointArr);

一键复制

编辑

Web IDE

原始数据

按行查看

历史

### 寻找丢失的轨迹文件 `trajectory.txt` 的解决方案 如果发现缺失了名为 `trajectory.txt` 的文件,可以按照以下方法尝试解决: #### 1. 文件路径确认 首先需要确认该文件是否确实不存在于指定路径下。可以通过命令行工具检查是否存在此文件: ```bash find /path/to/examples -name "trajectory.txt" ``` 上述命令会搜索 `/path/to/examples` 及其子目录下的所有文件名匹配 `trajectory.txt` 的文件[^1]。 #### 2. 使用版本控制系统恢复 如果项目使用了 Git 或其他版本控制工具管理,则可能通过历史记录找回丢失的文件。执行以下命令来查看是否有删除操作并恢复它: ```bash git log --diff-filter=D --summary | grep trajectory.txt ``` 这一步可以帮助定位到具体哪次提交删除了这个文件。找到对应的 commit ID 后可运行如下指令还原: ```bash git checkout <commit-id>^ -- examples/trajectory.txt ``` #### 3. 自动化脚本重新生成 某些情况下,这类数据可能是由程序自动生成而非手动创建。如果是这样一种情况的话,应该查阅项目的文档或者源码了解如何再次触发生成过程。比如,在 YAML 配置文件中有提到类似训练参数设置的内容,或许存在某种机制能够重建所需的轨迹文件。 #### 4. 数学建模关联分析 (假设适用场景) 对于涉及物理仿真或其他科学计算领域中的轨迹问题,有时可以从基础方程出发推导出新的结果集作为替代方案之一。例如给定摆锤运动微分方程式形式如下面所示表达式所描述那样简单近似处理得到数值解从而构建相应的新轨迹信息集合[^2]: \[ ml^{2}\ddot{\theta} + b\dot{\theta} \approx u_{0}-mgl sin(\theta). \] --- ### 提供代码片段辅助理解 以下是基于 Python 编写的简易示例演示如何模拟一条基本抛物线型轨迹保存至文本文件当中: ```python import numpy as np def generate_trajectory(output_file="examples/trajectory.txt"): t = np.linspace(0, 10, num=100) # 时间范围 x = 5 * t # 假设水平位移随时间呈线性关系 y = -9.81 * t ** 2 # 竖直方向受重力加速度影响 with open(output_file, 'w') as f: for i in range(len(t)): line = "{:.2f}, {:.2f}, {:.2f}\n".format(t[i], x[i], y[i]) f.write(line) generate_trajectory() print(f"Trajectory saved to {output_file}.") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值