传单,使用html选择选择城市并位于地图中

时间:2017-03-24 09:18:55

标签: javascript html ajax leaflet

我可以在我的html页面中选择城市,并且我希望根据我的每个选择在我的传单地图上找到该城市。 这是我的HTML代码:

<select name="city" id="select" onchange="shift_city()">
              <option value="camera1">Hungary, Oroshaza</option>
              <option value="camera2">Korea, Gosunguhwi</option>
              <option value="camera3">Canada, Toronto</option>
</select>

这是我的js代码:

function shift_city(){
    var value_city=document.getElementById("select").value;

    $.ajax({
                type: "GET",
                url: "http://xx.xx.xx.xx", 
                dataType: "json",
                headers: { "fiware-service": "smartcity" , "fiware-servicepath": "/"},
                error:function(e){
                        console.log(e);
                        alert("noooooo");
                },
                success: function (data) {

                   for(var i=0;i<data.length;i++){

                      if(value_city==data[i].id.value){

                             var lat=data[i].latitude.value;
                             var lng=data[i].longitude.value; 
                             map.setView(new L.LatLng(lat, lng), 8);
                      }
                     }


                }  
    });



}

在Ajax中有2个标题,所以我可以获得过滤查询结果。但是,只有当我只选择一次时,我才能获得正确的数据,但如果我想重新选择没有重载js的城市,我就会得到没有过滤器的原始数据,就像我没有标题的查询一样。 我不明白为什么会这样? 这个城市也没有在地图上找到。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

最后,我通过调用ajax一次改进了我的函数,并将数据用于外部函数。 在外面ajxa: var myData = data;

然后在函数shift_city()里面获取myData