javascript - 是否可以调用 Google API 并获取 map 图像并将图像保存在某个地方

标签 javascript node.js google-maps google-maps-static-api google-directions-api

我目前正致力于在 html 电子邮件中发送谷歌地图图像。

目前我正在使用 static-maps-api完成我的任务。我将调用静态 map API 并将图像 URL 设置为 src 在图像标签中。

<img src="https://maps.googleapis.com/maps/api/staticmap?markers=icon:http://mailadapterdev.vanapi.com/static/start.png|13.82,100.54&markers=icon:http://mailadapterdev.vanapi.com/static/waypt1.png|13.80,100.54&markers=icon:http://mailadapterdev.vanapi.com/static/waypt2.png|13.81,100.52&markers=icon:http://mailadapterdev.vanapi.com/static/waypt3.png|13.79,100.54&markers=icon:http://mailadapterdev.vanapi.com/static/dest.png|13.79,100.53&path=weight:3|color:blue|enc:cfjsAqvsdRnAMd@MZpDLpATpB?HGLMX?VV`CTjBr@L|ATlDf@hBXGl@CPTDtAR~Et@jF`AnLbBvKdB~@JbAR`BTdDd@pDj@l@H`Cb@vALFOJIr@yCxAgHPYTOREV?N@ZHrIxD|HjD~CxAxAn@j@XHDZy@hAoCdCiG~B{Gj@gBXeALWNU@[A[OWi@m@_@_@i@w@O[o@SSKK?}A]sBy@wBeAvBdArBx@|A\J?JOIsCJgC?[Io@KQ^Nn@TLDUfDC`AFp@RfAj@dAl@p@n@n@DHDN?TC`@IFW^MVYdAKZMb@uBdGaDfIiAnC[x@B@RHpCnAnAh@jChAnVrK|@`@Uh@iChG{D~J}B~Fe@tAq@fCcBfG_ApDMd@AXO`@Q^GCu@S{AAyIByEAaABc@@}A@kACeDImKWcKSmAGgAEoCCqECI?LlCH~DI_EMmCH?|@BdA?lA?nCBfADlAFrDHnEH|ELtIRjAB|AAb@A`ACxE@xICzA@l@Oh@a@p@}BhDoMd@yA~AcE`AiCtDsJhCeGHSHs@b@_Ej@cGbAuJ\mC|@sGb@gENoBF]XkAZuBX}CLoA@CbAJbDXl@Fm@GcDYcAKABMnAOzAI`AKr@_@pBQx@OnBUdCYbCk@tDCR~@VTL~@t@xBz@|GrB`I`CYnA_BpH{A`H&key=MY_API_KEY=400x400" >

在调用静态 map api 之前,我将调用 directions-api 使用 lat long 并获取折线,使用从调用方向 API 获得的折线,我将调用静态 map API。

我的问题是

当路径点数增加时(通常超过 5 个)折线变得非常大,URL 会变长,如果大于 2048 个字符,我将无法查看我的 map 。 google 没有将其识别为有效的 URL。所以很明显。

我的问题是

  1. 有什么方法可以减少 ploy 行的大小吗?
  2. 是否可以调用 Google API 并获取图像并将其保存在我的服务器中。
  3. 如果我能做到第二点,将 google map 保存在我的服务器中而不是每次我需要时都调用 google 服务器获取图像是否违法。
  4. 有没有其他方法可以完成我的任务。

我现在被这个问题困了两个多星期了。我几乎尝试了一切。请帮我解决这个问题。

提前谢谢你。

最佳答案

我会在线回答你:

  1. 有什么方法可以减小折线的尺寸吗?
    ,Google 使用编码折线,并且 here您可以找到它们的创建过程。您还可以找到 Interactive Polyline Encoder Utility , 你也可以考虑使用谷歌的库 Geometry及其方法 encodePath()。查找引用 here .
  2. 是否可以调用 Google API 并获取图像并将其保存在我的服务器中。
    ,如xomena所述

  3. 如果我能做到第二点,将 google map 保存在我的服务器中而不是每次我需要时调用 google 服务器获取图像是否违法?
    ,如xomena所述

  4. 还有其他方法可以完成我的任务吗。
    ,正如我在回答您的第一个问题时所述,您可以使用 Google's Geometry library

关于javascript - 是否可以调用 Google API 并获取 map 图像并将图像保存在某个地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36347005/

相关文章:

javascript - 预先输入下拉列表中的全局页脚

node.js - 如何在具有 mongoose 数据库的nodejs中存储最新图像

node.js - 如何让 grunt.js 启动 express 应用程序进行测试

java - GoogleMap addPolygon 引发有关空列表的异常

java - 谷歌地图将行车路线导出到 kml 文件 - java geogoogle

javascript - 改变单个单词的颜色?

javascript - 使用 Angulartics 和 AngularJS 的注入(inject)器错误

mysql - 在 Express Rest API 中进行验证

javascript - ASP.NET 中的 Google map 无法加载

javascript - 基于JQuery动态函数的ajax请求