谷歌地图动画符号(到达路径的目的地点后停止图标)

2024-05-02

我正在做一个学校项目,我正在使用 Google Map API。
API 很棒,但我需要一些代码方面的帮助。
到达目的地后,我希望图标保留在那里,而不应该再次重复整个路径。

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: 20.291, lng: 153.027},
  zoom: 6,
  mapTypeId: 'terrain'
});

// Define the symbol, using one of the predefined paths ('CIRCLE')
// supplied by the Google Maps JavaScript API.
var lineSymbol = {
path: google.maps.SymbolPath.CIRCLE,
scale: 8,
strokeColor: '#393'
};

// Create the polyline and add the symbol to it via the 'icons' property.
var line = new google.maps.Polyline({
path: [{lat: -33.918861, lng: 18.423300}, {lat: -35.842160, lng: 18.863525}, {lat: -39.170387, lng: 35.189209}, {lat: -26.331494, lng: 54.228516}, {lat: 0.462885, lng: 61.083984}, {lat: 19.075984, lng: 72.877656}],
icons: [{
  icon: lineSymbol,
  offset: '100%'
}],
map: map
});

animateCircle(line);
}

// Use the DOM setInterval() function to change the offset of the symbol
// at fixed intervals.
function animateCircle(line) {
var count = 0;
window.setInterval(function() {
  count = (count + 1) % 200;

  var icons = line.get('icons');
  icons[0].offset = (count / 2) + '%';
  line.set('icons', icons);
}, 20);
}

当图标到达行尾时停止动画。停止setInterval, use clearInterval (文档 https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval)

function animateCircle(line) {
  var count = 0;
  var listener = window.setInterval(function() {
    count = (count + 1) % 200;

    var icons = line.get('icons');
    icons[0].offset = (count / 2) + '%';
    line.set('icons', icons);
    if (count == 199) clearInterval(listener);
  }, 20);
}

概念证明小提琴 http://jsfiddle.net/7bj0nb70/

代码片段:

// Use the DOM setInterval() function to change the offset of the symbol
// at fixed intervals.
function animateCircle(line) {
  var count = 0;
  var listener = window.setInterval(function() {
    count = (count + 1) % 200;

    var icons = line.get('icons');
    icons[0].offset = (count / 2) + '%';
    line.set('icons', icons);
    if (count == 199) clearInterval(listener);
  }, 20);
}
function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: 20.291,
      lng: 153.027
    },
    zoom: 2,
    mapTypeId: 'terrain'
  });

  // Define the symbol, using one of the predefined paths ('CIRCLE')
  // supplied by the Google Maps JavaScript API.
  var lineSymbol = {
    path: google.maps.SymbolPath.CIRCLE,
    scale: 8,
    strokeColor: '#393'
  };

  // Create the polyline and add the symbol to it via the 'icons' property.
  var line = new google.maps.Polyline({
    path: [{
      lat: -33.918861,
      lng: 18.423300
    }, {
      lat: -35.842160,
      lng: 18.863525
    }, {
      lat: -39.170387,
      lng: 35.189209
    }, {
      lat: -26.331494,
      lng: 54.228516
    }, {
      lat: 0.462885,
      lng: 61.083984
    }, {
      lat: 19.075984,
      lng: 72.877656
    }],
    icons: [{
      icon: lineSymbol,
      offset: '100%'
    }],
    map: map
  });
  var bounds = new google.maps.LatLngBounds();
  for (var i = 0; i < line.getPath().getLength(); i++) {
    bounds.extend(line.getPath().getAt(i));
  }
  map.fitBounds(bounds);
  animateCircle(line);
}
google.maps.event.addDomListener(window, "load", initMap);
html,
body,
#map {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
<div id="map"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌地图动画符号(到达路径的目的地点后停止图标) 的相关文章

随机推荐

  • Windows Unicode C++ 流输出失败

    我目前正在编写一个应用程序 它要求我在任意窗口上调用 GetWindowText 并将该数据存储到文件中以供以后处理 长话短说 我注意到我的工具在 战地 3 上失败了 我将问题范围缩小到窗口标题中的以下字符 http www filefor
  • 动态加载组件 - 设置和通信

    好吧 我有一个 WPF 应用程序 我们称之为Launcher exe 它加载并执行另一个 WPF 应用程序 我们称之为Loaded exe 动态地使用这样的东西 Byte assemblyData using BinaryReader re
  • MongoDB C# 驱动程序创建索引

    我刚刚将 MongoDB 从版本 2 5 0 更新到 2 7 0 Visual Studio 告诉我以下创建索引的方法已过时 protected override Task OnPerformMaintenanceAsync Cancell
  • 使用 python 内置函数进行耦合 ODE

    如果您需要的话 这部分只是背景知识 我正在开发二阶 Kuramoto 模型的数值求解器 下面给出了我用来求 theta 和 omega 导数的函数 n dimensional change in omega def d theta omeg
  • 在 Asp.net Core 中使用 Ajax 验证表单

    我使用 AJAX 将表单发送到 ASP NET Core 中的控制器 但在发送带有验证的表单时遇到问题
  • 使用 FtpWebRequest 将文件上传到 FTP 时,远程服务器返回错误:(550)

    I need to upload file via ftp to host The home2 travele2 path created on the root of host 我可以通过 FileZilla 程序将文件上传到主机 但是当
  • Scala 方法和值名称

    为什么编译失败 scala gt val a true
  • 寻找一种重构 D3.js 风格的方法链接模式的方法

    在学习 D3 js 时 我遇到了博客文章 http bost ocks org mike chart 解释其可重用代码单元背后的主要设计模式 我复制了下面的相关代码 下面呈现的模式的方式正是在 D3 代码库和插件中使用的方式 example
  • 如何测试我的 Redis 缓存是否正常工作?

    我已经安装了 django redis cache 和 redis py 我遵循了 Django 的缓存文档 据我所知 以下设置就是我所需要的 但我如何判断它是否正常工作 设置 py CACHES default BACKEND redis
  • 有没有办法制作用于开发的 firebase 身份验证令牌?

    背景 我正在构建一个 React Native 应用程序 它将数据发布到节点服务器 然后通过管理 Firebase 库将数据发布到 Firebase 为了发布数据 我完全绕过应用程序并使用postman https www getpostm
  • 使用 Chudnovsky 算法计算 pi 时出错 - Java

    我一直在尝试编写一个简单的程序来使用 Chudnovsky 算法计算 pi 但是我不断得到错误的值输出 我编写的最新代码如下并输出 9 6427156192980758374488232782187800865411623432530844
  • WebBrowser 控件和 JavaScript 错误

    当我使用浏览器 ie9 访问该页面时 浏览器渲染正常 当我使用 WebBrowser 控件时 出现 JavaScript 错误 我知道我可以抑制脚本错误 但我希望它们正确运行 因为它们会影响页面的渲染和功能 我怎么解决这个问题 我可以将 I
  • 如何在C++控制台中删除已写入的字符

    我正在尝试编写一个 C 程序来读取密码 我编写了程序来计算 不是我写的字符 但我的问题是当我想删除字符时 因为它们是错误的 Example 我的固定密码是12345如果我输入1235该程序将显示 我必须删除最后一个字符 将其从字符串中删除很
  • 谷歌云sftp的权限

    我正在使用 wordpress 和 google cloud 并将其设置为 sftp 连接 文件夹的权限是755 文件的权限是644 即使我已经将Cloud API访问范围更改为 允许完全连接 当我尝试通过 WordPress 后端添加插件
  • 使用 git-svn 时模拟 subwcrev

    我使用 git svn 与包含一些 C 项目的现有 SVN 存储库进行交互 subwcrev exe 用作预构建事件来更新 C 标头 svnversion h 中的某些字符串 这些字符串被硬编译以形成生成的二进制文件的一些版本信息 由于 s
  • 如何在 R 中按字符变量的字母顺序对数据框进行排序?

    我想按 R 中字符变量的字母顺序对数据框进行排序 我尝试使用order 函数 但它将我的数据框转换为列表 有人知道吗 好吧 我这里没有问题 df lt data frame v 1 5 x sample LETTERS 1 5 5 df v
  • 我可以用 SASS \ Compass 计算和使用元素高度吗

    我在 RoR 项目中使用 sass 和 compass 我需要分配给top元素的 CSS 属性值 即元素高度除以 2 我可以用 SASS Compass 来做吗 你似乎已经得到了XY问题 https meta stackexchange c
  • 无法删除 windows 对象的事件侦听器

    我在尝试删除事件监听器时遇到了很多麻烦 我创建了一个非常依赖 JavaScript 的网站 当您在网站上导航时 它基本上是动态加载元素 而无需使用模板文字刷新页面 有时我必须加载内容并添加无限滚动 但也能够再次删除该事件 这是我用来处理滚动
  • MATLAB:生成给定三种颜色的颜色图

    我正在尝试在 MATLAB 中生成给定三种颜色 最高值 零值和最低值 的颜色图 我的思维过程是从最高端到中间循环 并将每个步骤存储到一个 3xN 第一列是 R 第二列是 G 第三列是 B 矩阵 所以我正在使用 fade from high
  • 谷歌地图动画符号(到达路径的目的地点后停止图标)

    我正在做一个学校项目 我正在使用 Google Map API API 很棒 但我需要一些代码方面的帮助 到达目的地后 我希望图标保留在那里 而不应该再次重复整个路径 function initMap var map new google