谷歌地图调用

直接上代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <iframe
  width="1400"
  height="800"
  style="border:0"
  loading="lazy"
  allowfullscreen
  referrerpolicy="no-referrer-when-downgrade"
  src="https://www.google.com/maps/embed/v1/directions?key=(你的谷歌地图API)
  &origin=30.532061728155647, 114.35913349402081
  &destination=30.52901144940713, 114.35757996556374">
</iframe>
  <title>Document</title>
</head>
<body>
  
</body>
</html>

我来详细解释一下参数:

参数 类型 说明 已接受的值
origin 必需 定义要显示路线的起点。 经过网址转义的地点名称、地址、Plus 代码、纬度/经度坐标或地点 ID。 在对空格进行转义时,Maps Embed API 支持 + 和 %20。例如,将“City Hall, New York, NY”转换为 City+Hall,New+York,NY,或将 Plus 代码“849VCWC8+R9”转换为 849VCWC8%2BR9
destination 必需 定义路线的终点。 经过网址转义的地点名称、地址、Plus 代码、纬度/经度坐标或地点 ID。 在对空格进行转义时,Maps Embed API 支持 + 和 %20。例如,将“City Hall, New York, NY”转换为 City+Hall,New+York,NY,或将 Plus 代码“849VCWC8+R9”转换为 849VCWC8%2BR9
waypoints 选填 指定一个或多个中转地点,以便在出发地和目的地之间规划路线。 地点名称、地址或地点 ID。 可以使用竖线字符 (|) 分隔地点(例如 Berlin,Germany|Paris,France),从而指定多个航点。您最多可以指定 20 个航点。
mode 选填 定义出行方式。如果未指定模式,Maps Embed API 会显示与指定路线最相关的一种或多种模式。 drivingwalking(首选步道和人行道,如有)、bicycling(采用自行车道和首选街道(如有)、transit 或 flying
avoid 选填 指定要在路线中避开的地图项。请注意,这不会排除包含受限地图项的路线,而是会对结果设置偏向,以获得更有利的路线。 tollsferries 和/或 highways。 请使用竖线字符分隔多个值(例如 avoid=tolls|highways)。
units 选填 指定结果中显示距离时的测量方法、公制或英制。如果未指定 units,则查询中的 origin 国家/地区决定要使用的单位。 metric 或 imperial
center 选填 定义地图视图的中心。 接受以英文逗号分隔的纬度和经度值;例如:37.4218,-122.0840
zoom 选填 设置地图的初始缩放级别。 值的范围为 0(全世界)到 21(个别建筑物)。上限可能因所选位置的可用地图数据而异。
maptype 选填 定义要加载的地图图块类型。 roadmap(默认)或 satellite
language 选填 定义界面元素以及在地图图块上显示标签时所用的语言。默认情况下,访问者看到的地图将以自己的语言显示。只有部分国家/地区图块支持此参数;如果图块集不支持请求的特定语言,则将使用该图块集的默认语言。
region 选填 根据地缘政治敏感性定义要显示的相应边界和标签。 接受以双字符(非数字)Unicode 区域子标记的形式指定的区域代码,映射到熟悉的 ccTLD(“顶级域名”)双字符值。如需了解支持的地区,请参阅 Google Maps Platform 覆盖范围详细信息

当然,在给定的代码中,我计算的是从武汉大学信息学部16舍到武汉大学39栋的路线。 

使用Alt+B打开网页,显示内容如下:

 

还有一个小细节,我们在我们手机应用指南针上可以看到我们当前的经纬度,但是谷歌要求的经纬度表示是小数点格式的,这时候就需要我们进行转化,转化的代码如下:

#include <iostream>

double convertToDecimal(int degrees, int minutes, int seconds) {
    double decimal = degrees + (minutes / 60.0) + (seconds / 3600.0);
    return decimal;
}

int main() {
    int latitudeDegrees, latitudeMinutes, latitudeSeconds;
    int longitudeDegrees, longitudeMinutes, longitudeSeconds;

    std::cout << "请输入纬度的度、分、秒:" << std::endl;
    std::cout << "度:";
    std::cin >> latitudeDegrees;
    std::cout << "分:";
    std::cin >> latitudeMinutes;
    std::cout << "秒:";
    std::cin >> latitudeSeconds;

    std::cout << "请输入经度的度、分、秒:" << std::endl;
    std::cout << "度:";
    std::cin >> longitudeDegrees;
    std::cout << "分:";
    std::cin >> longitudeMinutes;
    std::cout << "秒:";
    std::cin >> longitudeSeconds;

    double latitudeDecimal = convertToDecimal(latitudeDegrees, latitudeMinutes, latitudeSeconds);
    double longitudeDecimal = convertToDecimal(longitudeDegrees, longitudeMinutes, longitudeSeconds);

    std::cout << "纬度(十进制):" << latitudeDecimal << std::endl;
    std::cout << "经度(十进制):" << longitudeDecimal << std::endl;

    return 0;
}

由于谷歌地图有偏差,所以我们将转化之后的数据带入进去我们的模型,会不太准确,所谓是否准确,主要是看我们对精度的要求,运行结果可知,大概会偏移几个操场的距离。

不过对于我们来说,我们理论上可以通过添加偏置来使我们得到的坐标和谷歌地图要求的坐标相拟合。 

 

 

相关推荐

  1. 【js文件】地图 markerclusterer.js

    2024-03-22 22:04:03       58 阅读
  2. 地图搜索功能的bug

    2024-03-22 22:04:03       63 阅读
  3. uniapp的subnvue苹果适配(ios)地图问题

    2024-03-22 22:04:03       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 22:04:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 22:04:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 22:04:03       87 阅读
  4. Python语言-面向对象

    2024-03-22 22:04:03       96 阅读

热门阅读

  1. 数据科学详解与人工智能关系

    2024-03-22 22:04:03       44 阅读
  2. 前端逻辑错误或UI崩溃解决问题

    2024-03-22 22:04:03       38 阅读
  3. SQL Server创建存储过程

    2024-03-22 22:04:03       45 阅读
  4. 力扣-283. 移动零

    2024-03-22 22:04:03       47 阅读
  5. 基于STM32的寻迹小车设计详细论文

    2024-03-22 22:04:03       34 阅读
  6. Thingworx高可用集群部署(七)-Zookeeper集群部署

    2024-03-22 22:04:03       42 阅读
  7. Redis切换数据库的详细介绍

    2024-03-22 22:04:03       45 阅读
  8. 洛克王国卡小游戏2

    2024-03-22 22:04:03       39 阅读
  9. Yarn 管理的前端项目转换为使用 npm

    2024-03-22 22:04:03       41 阅读
  10. Redis 产生阻塞的原因,如何找到阻塞的原因

    2024-03-22 22:04:03       39 阅读
  11. 快速排序--C语言

    2024-03-22 22:04:03       44 阅读
  12. 【大数据技术】Hive基本原理以及使用教程

    2024-03-22 22:04:03       44 阅读
  13. docker 修改默认存储位置

    2024-03-22 22:04:03       38 阅读
  14. CSS color-mix() 函数

    2024-03-22 22:04:03       44 阅读
  15. less与sass哪个更好用

    2024-03-22 22:04:03       47 阅读
  16. NoSQL

    NoSQL

    2024-03-22 22:04:03      28 阅读