Ajax的传单setView(城市名称或邮政编码)

时间:2019-10-30 16:14:50

标签: javascript jquery ajax leaflet

我们正在尝试从gmaps切换到Leaflet。 设置地图很好,我们所有商店的标记也都可以工作。 我将Leaflet-search用于此用于搜索城市的内置解决方案。

但是它正在对keyPress或类似的东西起作用。

我们希望输入一个带有单独按钮的提交。

之前,我们只是使用了一个带有gmaps中特定网址的ajax,并附加了searchvalue。 但是用Leaflet我无法做到... 看起来像这样:

function geocode(key)
{
var address = key.replace(/ /g, '+');
var url = 'https://maps.googleapis.com/maps/api/geocode/json';
url += "?key=" + SitePreferences.GOOGLE_MAP_API_KEY;

$.ajax({
    url     : url,
    data    : {address:address},
    dataType: "json",
    success : function (json)
    {
        setGeocode(json);
    },
    error: function()
    {
        console.log("Google map API geocode error");
    }
});}

如何使用传单? 我尝试了某事,但没有成功:

var url = 'https://nominatim.openstreetmap.org/search?format=json&q={address}';

        $.ajax(
        {
             url:url, 
             dataType: "json",
             success: function(data)
             {
                 console.log(data),
             }
        });

1 个答案:

答案 0 :(得分:1)

您的代码很好,它有语法错误,我也使用数据而不是直接从url发送了参数

$('#find').click(function(){
  var url = 'https://nominatim.openstreetmap.org/search';
  $.ajax(
  {
    url: url, 
    dataType: "json",
    data:{
      format:'json',
      q: '{' + $("#address").val() + '}'
    },
    success: function(data)
    {
       console.log(data);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="address" />
<button id="find">find address</button>