【问题标题】:Add a user inputted location to OpenStreetMap using Leaflet.js使用 Leaflet.js 将用户输入的位置添加到 OpenStreetMap
【发布时间】:2020-05-16 04:21:29
【问题描述】:

我正在尝试创建用户输入位置的地图,但是为此我需要将输入的城市转换为其纬度和经度。这使我可以使用 L.marker(point).addTo(map) 使用 Leaflet.js 轻松绘制它们

鉴于“伦敦”的输入,有没有办法使用 OpenStreetMap API 来获取这些值? 这里很少有可用的 API 工具(根据我的研究)可以在不需要 API 密钥的情况下完成这项任务。

如果可能的话,我想避免使用 google maps API,并且希望得到任何帮助,无论是 API 建议还是 OpenStreetMap 想法,因为我对 javascript 比较陌生。

提前致谢!

【问题讨论】:

  • 您想要的称为“地理编码”。我建议阅读nominatim.org
  • @IvanSanchez 谢谢!这看起来可能会成功

标签: javascript leaflet openstreetmap latitude-longitude dc.leaflet.js


【解决方案1】:

按照 cmets 的建议,解决方案是使用提名,特别是他们的 search queries

我最终使用 jQuery 的 getJson 函数从 API 中获取数据,如下所示。

$(function () {
  geocoding = function (city, country) {
    var url = `https://nominatim.openstreetmap.org/search?city=${city}&country=${country}&format=json`
    $.getJSON(url, function (data) {
      //data is the JSON string
      lat = data[0].lat
      lon = data[0].lon
      ...
    });
  }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2016-01-31
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2015-12-14
    相关资源
    最近更新 更多