谷歌地图路线生成与航点

2024-05-26

我有一个现有的应用程序,可以跟踪车辆并在地图上渲染其折线,并且我希望能够使用路由服务将这些折线导入到另一个应用程序中(以便导入的折线捕捉到道路并可以拖动) ETC)。

我目前正在做的是编码:

var encoded_path = google.maps.geometry.encoding.encodePath(coordinate_array)

绘制线条的 lat lng 坐标数组(在折线应用程序内),并将其传递到方向服务路径中,如下所示(在另一个应用程序内):

var coordinates = google.maps.geometry.encoding.decodePath(encoded_path);

var request = {
   origin: coordinates[0],
   destination: coordinates[coordinates.length - 1],
   travelMode: google.maps.DirectionsTravelMode.DRIVING
};

MapService.directionsService.route(request, function(response, status) {
   if (status == google.maps.DirectionsStatus.OK) {
      MapService.directionsDisplay.setDirections(response);
   }
});

这种方法的问题在于,它仅使用折线的起点和终点来绘制路线,因此不会显示沿路线的所有改道。所以我尝试添加航路点(Google 限制为 8 个)来尝试获得稍微更准确的路线,如下所示:

var waypoints = [];

if (coordinates.length <= 8) {
   waypoints = coordinates;
}
else {
   for (var i = 0; i < 8; i++) {
      var index = Math.floor((coordinates.length/8) * i);

      // Break if there's no more waypoints to be added
      if (index > coordinates.length - 1)
         break;

      waypoints.push(new google.maps.LatLng(coordinates[index].lat(), coordinates[index].lng()));

      // Break if we've just added the last waypoint
      if (index == coordinates.length - 1)
         break;
   }
}

这样它就可以在坐标数组中均匀地获取路径点。然后我尝试在调用路由时像这样显示它们:

var request = {
   origin: coordinates[0],
   destination: coordinates[coordinates.length - 1],
   waypoints: waypoints
   travelMode: google.maps.DirectionsTravelMode.DRIVING
};

但我收到此错误:错误:在属性航点中:在索引 0 处:未知属性 lb

有谁知道会发生什么,或者如何做这个航点的事情?我可以通过控制台确认数组已正确生成,这是第一个数组元素的示例:

Array[8]
  0: N
    lb: -22.39019
    mb: 143.04560000000004
    __prot__: N
  1:...etc etc

谢谢。


waypoints.push(new google.maps.LatLng(坐标[index].lat(), 坐标[index].lng()));

DirectionsRequest 对象定义的 'waypoints' 属性应该是 google.maps.DirectionsWaypoint 对象定义的数组https://developers.google.com/maps/documentation/javascript/3.exp/reference#DirectionsWaypoint https://developers.google.com/maps/documentation/javascript/3.exp/reference#DirectionsWaypoint

So, try:

waypoints.push(
    {
        location: new google.maps.LatLng(coordinates[index].lat(), coordinates[index].lng())
    }
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌地图路线生成与航点 的相关文章

  • 禁用 Ctrl + 滚动以缩放谷歌地图

    Does anybody know how to disable the CTRL Scroll First when the mouse wheel was moved the Map would Zoom in out But now
  • 以编程方式创建 MapView 并添加标记会导致片段中出现空指针异常

    我正在尝试以编程方式创建 MapView 并添加 MarkerPosition 如下所示 MapView mapView new MapView getActivity ViewGroup rootView addView mapView
  • Google Maps API V3:捕捉到另一个多边形的节点

    我正在绘制相邻且共享边界的多边形 看下面的示例图片 如果我要为蒙大拿州绘制一个多边形 我希望能够单击爱达荷州多边形的节点以获得相同的边界部分 以确保边界不会重叠或有孔 但是 节点不允许直接单击它们 如果我使节点不可见 那么准确性会恶化 并且
  • Google 地图在某些浏览器上不被识别为矢量地图

    我已经构建并部署了一个 next js 应用程序 该应用程序在 react google maps api 的帮助下显示地图 此外 我使用 Google 地图 数据驱动 API 来创建显示邮政编码边界的要素图层 我已将其部署到 Vercel
  • 从 Google 地图导出 geoJSON 数据

    是否有内置支持或任何可导出的库geoJSON数据来自google maps Data层或google maps Data Feature or google maps Data Geometry甚至使用Marker Polyline and
  • android - 如何在android中打开kml文件

    我的 SD卡中存储了一个 KML 文件 我想通过我的应用程序中的谷歌地图打开它 所以我使用了下面的代码 但我收到错误消息 android非法状态异常无法执行活动的方法 我不想绘制地图 只是想打开一个已经存储在我的SD卡中的kml文件并显示它
  • 从 google 地图 api v3 获取英文地址

    我使用谷歌地图 API v3 来获取某个点的坐标和地址 但谷歌返回法语地址 这是我用来获取地址的脚本 如何强制谷歌地图以英语返回结果 var map var geocoder var mapOptions center new google
  • 如何在pyqt5中创建小部件来显示谷歌地图

    如何从用户那里获取纬度和经度并在 pyqt5 小部件的地图上显示该位置 我的操作系统是Windows 我找到了这个链接 https github com eyllanesc qMap https github com eyllanesc q
  • Google 地图 api V3 - 从查询结果动态添加多个标记

    我正在尝试在页面上设置一个地图 并在其下方设置几个链接 单击这些链接时 将动态查询我的数据库并在地图上输出结果集 我花了很多时间在谷歌上搜索这个 但找不到我想要的东西 我已经使用 AJAX 返回纬度和经度坐标了 但是当尝试在地图上创建标记时
  • Google Maps JavaScript API v3 方向功能

    我使用 Google Maps js API v3 我可以根据路径点显示方向this http code google com intl hu apis maps documentation directions Waypoints 我想要
  • 如何在react-google-maps中添加标记?

    在中使用 React JS流星1 5 https www meteor com Question 需要一种添加方式Marker using 反应谷歌地图 https github com tomchentw react google map
  • Google Maps API v3 在地图加载后不会禁用滚轮

    我正在网站上实现谷歌地图 一切都工作得很好 除了地图加载后我似乎无法禁用滚轮 如果我在地图加载之前将选项设置为scrollwheel false 则滚轮将被禁用 但如果我稍后尝试执行此操作 我有一个启用 禁用滚轮的复选框 以下是我在页面加载
  • MKAnnotationView 的不同字体

    在iPhone SDK地图上的标注气泡上 可以更改标题和副标题属性的字体吗 我对标注气泡中显示的默认字体不满意 并且希望使用不同的字体来匹配我的应用程序的其余部分 然而 我没有看到太多提及这一点 这让我担心这可能是不可能的 我见过构建自定义
  • 以编程方式设置谷歌地图片段可见性(API2)

    xml
  • 标记聚类在 Android 中不显示标记?

    我在 Android 的 PagerFragment 中设置了 MapView 我按照 Google 示例进行操作 但使用 V2 API 设置带有群集标记的地图 它向我显示了一张没有标记的黑色地图 我哪里做错了 import android
  • 使用 Selenium 放置嵌入的谷歌地图标记

    我有一个 asp net 网站 作为向导的一部分 它使用嵌入式谷歌地图通过单击地图放置标记来选择位置 我如何使用 Selenium 实现自动化 我特别尝试过 ClickAt 双击 鼠标按下 鼠标按下 在所有情况下 传递地图 div id 作
  • 缩放事件侦听器之前的 Javascript OpenLayers

    我正在尝试将 OpenLayers 设置为在缩放开始之前不显示矢量图层 并使其在缩放结束后重新出现 我已经像这样建立了缩放结束部分 map new OpenLayers Map map element eventListeners zoom
  • infoWindow(谷歌地图)捕获关闭窗口的事件

    当信息窗口关闭时 您触发操作的方式是什么 我找不到任何听众 我正在考虑运行一些后台 Runnable 检查marker isInfoWindowShown 是否 我想要做的 在我的地图上显示按钮 当用户单击点 出现信息窗口 时 屏幕底部也有
  • 使用 google Directions API 的地图视图绘制方向 - 解码折线

    我正在尝试使用 Google 方向 API 在我的地图视图上显示方向 但我在从 JSON 响应获取数据时遇到困难 我可以获得 级别 和 点 字符串 但无法弄清楚如何将它们解码为地图上的点 任何帮助将非常感激 我有一个类可以为您解码它们 添加
  • Google 地图 API 标记图标 URL?

    我正在尝试将标记图标更改为 红圈 或 红针 或其他任何内容 在这些代码中 markerOptions icon images beachflag png 标记不显示 但如果我做icon一行注释行 因此标记显示为 red pin icon 所

随机推荐

  • 列出所有组合的组合[重复]

    这个问题在这里已经有答案了 我试图列出 6 人组成的 3 人小组的所有可能组合 A B C D E F 组的顺序并不重要 这对的顺序并不重要 可能的组合 B D C E G H B C D E G H B E C D G H 我只能写这么多
  • 如何使用 Python 避免在 JSON 中的 HTML 标签中关闭“/”?

    注意 这个问题非常接近在脚本标签中嵌入 JSON 对象 https stackoverflow com questions 4176511 embedding json objects in script tags 但是对该问题的回答提供了
  • 如何在azure发布管道失败时创建工作项而不是构建管道

    我没看到Create work item on failure选项选项卡上的选项 我用这个作为参考https developercommunity visualstudio com content problem 343557 create
  • 从父类的List中提取子类元素

    我目前有一个这样的列表 List
  • 如何在 Xcode 4 中安装 Cocos2d PROJECT 模板?

    我可能已经用 20 种不同的语法搜索了这个问题 但找不到答案 请帮忙 如何在 xcode 4 中安装 Cocos2d 项目模板 我尝试了不同的方法 但是当我在 Xcode 4 中构建新项目时它们仍然没有出现 帮助 下载 cocos2d ip
  • 是否可以将内存地址保存到字符串中?

    说我有一个对象 MyObj stuff 为了获得东西的地址 我会打印 cout lt lt stuff lt lt endl 0x22ff68 我想将 0x22ff68 保存在字符串中 我知道你不能这样做 string cheeseburg
  • nuget 对文件名中的空格进行编码

    我使用 pack 命令创建了一个 nuget 包 http docs nuget org docs reference command line reference Pack Command http docs nuget org docs
  • Sass 部分导入

    我有 sass 编译的问题 当我有一个部分的项目时 partial scss并将其导入到多个部分文件中 因为它包含颜色变量 它将多次出现在编译的 css 中 这很丑陋 因为同一个规则会多次 推翻 自身 这使得调试信息 chromium 开发
  • 使用自动热键中的热键切换键

    So I tried to automate running in a game where the map is huge and I have to run miles I wanted to toggle on the hotkey
  • 如何在 R 中解析年份+周数?

    有没有一种好方法可以将年 周数转换为R中的日期 我已经尝试过以下方法 gt as POSIXct 2008 41 format Y U 1 2008 02 21 EST gt as POSIXct 2008 42 format Y U 1
  • android eclipse 中显示的是单独的屏幕而不是 tabhost

    我是android的自学者 我有两个屏幕 第一个屏幕包含一个编辑文本和一个按钮 编辑文本用于获取用户的输入 按钮用于调用第二个屏幕上的 tabhost 活动 在运行时 收到用户输入后 它应该显示适当的值 根据用户的输入 到第二个屏幕上的 t
  • Git 合并删除文件

    这是第二次发生这种情况 当我进行合并时 我后来意识到正在合并的分支中的一些文件不再位于正在合并的分支中 最新的例子是我们有一个功能分支 我一直在合并主开发分支中的更改 合并后我们丢失了很多文件 并且它们现在不存在于功能分支中 为什么会出现这
  • 测试 gRPC 服务

    我想测试用 Go 编写的 gRPC 服务 我使用的示例是 Hello World 服务器示例grpc go 仓库 https github com grpc grpc go blob master examples helloworld g
  • Fortran 中的共享库,最小示例不起作用

    我试图了解如何在 Linux 下的 Fortran 中动态创建和链接共享库 我有两个文件 第一个 liblol f90 看起来像这样 subroutine func print lol end subroutine func 我用它编译gf
  • 使用 librsvg / rsvg 通过 ImageMagick 转换 SVG 图像

    我知道这个问题在这里有几个答案版本 如下所示 ImageMagick 将 SVG 转换为 PNG 无法在启用 RSVG 的情况下工作 https stackoverflow com questions 11592085 imagemagic
  • 返回表中不存在的记录

    如何获取表中没有记录的ID 例如 select id name mail from users where id in 2 3 4 5 6 该查询返回记录 2 3 4 的输出 但不返回记录 5 和 6 因为表中不存在记录 现在我想知道表中没
  • 如何安装 leiningen 插件?

    如何安装 leiningen 插件 例如 leiningen run 我看到这个叫做 clojars org 的东西 以及如何 推 它 但我没有看到任何关于从中 拉 的东西 如果 Clojars 上有可用的插件 例如 lein run 只需
  • 在 PHP Codeigniter 中向 form_submit 添加一个类

    我正在尝试在 PHP Codeigniter 中向 form submit 添加一个类 我正在使用以下代码 attributes1 array class gt btn btn danger echo form submit loginSu
  • 从键值为空数组的 JS 对象中删除

    我正在尝试从值为 Array 0 的对象中删除键 这是对象 fruit Array 1 dairy Array 2 vegetables Array 0 这是期望的结果 fruit Array 1 dairy Array 2 到目前为止 我
  • 谷歌地图路线生成与航点

    我有一个现有的应用程序 可以跟踪车辆并在地图上渲染其折线 并且我希望能够使用路由服务将这些折线导入到另一个应用程序中 以便导入的折线捕捉到道路并可以拖动 ETC 我目前正在做的是编码 var encoded path google maps