生成一张街道图像

我正在重新开发一个脚本,它能够在一张生成的街道地图图像上绘制游戏数据。当前的解决方案是使用 R 语言编写的,但它所使用的 API 已不再工作,并且我个人不熟悉 R 语言。

我正在寻找一种在我更熟悉的语言(如 Ruby 或 Lua)中获取某个区域的图像的方法,例如通过提供经/纬度范围来获取一个图像。我已经寻找了解决方案,但是 Ruby 的包(例如 Rails 的 Google 地图)似乎并不完整,并且经常只关注于在网页中嵌入 Google 地图。地图的确切外观并不重要,只要街道布局能够被当地人识别即可。

如何自动生成这样的街道地图图像?

点赞
用户1340631
用户1340631

最后,您只需要下载相关的地图 tile。 对于OSM瓦片服务器,请查看 滑动地图tilenames。 它解释了如何根据纬度,经度和缩放级别计算瓷砖名称。 它还包含了各种编程和脚本语言的几十个示例实现。

另外,请确保阅读您选择的瓦片服务器的瓦片使用政策/服务条款。

2016-09-23 12:11:32
用户293280
用户293280

请参考这个静态地图帮助程序 GIST:

module StaticMapHelper

  def static_map_for(location, options = {})
    params = {
      :center => [location.lat, location.lng].join(","),
      :zoom => 15,
      :size => "300x300",
      :markers => [location.lat, location.lng].join(","),
      :sensor => true,
      :maptype => 'satellite',
      }.merge(options)

    query_string =  params.map{|k,v| "#{k}=#{v}"}.join("&")
    image_tag "http://maps.googleapis.com/maps/api/staticmap?#{query_string}", :alt => location.name
  end

end

https://gist.github.com/mcasimir/2778938

2017-07-17 23:58:51
用户2558108
用户2558108

鉴于这个问题没有任何完整的答案,我建议使用以下 gem 来执行此操作。

https://gitlab.com/Qwertie/osm_tile_grabber

(有关最新信息,请检查存储库,但当前 gem 的用法为)

require 'osm_tile_grabber'
osm = OSMTileGrabber.new(-34.9220585,138.5879188,-34.9397,138.6239,15)
osm.create_image("/tmp/output.png")

enter image description here

2018-04-30 02:58:13