Javascript 如何在传单中显示单个国家多边形并将其居中?

Javascript 如何在传单中显示单个国家多边形并将其居中?,javascript,jquery,json,leaflet,Javascript,Jquery,Json,Leaflet,当我使用加载页面时,我尝试自动缩放到特定的国家/地区名称。当我发布页面时,我可以得到如下变量: var $myCountry = "France"; 现在我加载json,如下所示: $json = file_get_contents("/world.json"); $data = json_decode($json, true); 这是我的geoJson结构: { "type":"Feature", "id":"AFG", "properties":{"name":"France

当我使用加载页面时,我尝试自动缩放到特定的国家/地区名称。当我发布页面时,我可以得到如下变量:

var $myCountry = "France";
现在我加载json,如下所示:

$json = file_get_contents("/world.json");
$data = json_decode($json, true);
这是我的geoJson结构:

{
  "type":"Feature",
  "id":"AFG",
  "properties":{"name":"France"},
  "geometry":{
    "type":"Polygon",
    "coordinates":[
      [
        [61.210817,35.650072],
        [62.230651,35.270664]
      ]
  }
},
基本上,我想检查我的变量名是否等于geoJson中的一个名称,如果是,我想得到它的坐标,沿着这些线

var $myCoordinates = $myCountry.coordinates
我想这样做是为了根据变量中找到的国家名称放大地图,我也检查了这个,但我没有得到它

更新

这几乎是可行的,变量和属性名称之间的比较不是tho,但是变量字符串是正确的,在json中,我们有一个具有相同字符串的名称

var $country = "<?php echo $region; ?>";

$.ajax({ 
    type: 'GET',
    url: '/world.json', 
    data: { get_param: 'value' }, 
    dataType: 'json',
    success: function (data) { 
    $.each(data, function(index, element) { 
        if (element.properties.name == $country) {
            alert("ciao");
        }
    });
    }
});

我想我们被你最初展示代码和数据结构以及文章标题的方式误导了

实际上,您并不是要扫描一个数组或一个简单的JSON对象,而是一个具有FeatureCollection和许多特性的GeoJSON对象

因此,您必须循环该FeatureCollection的功能,并扫描每个功能的properties.name

但即使这样,您仍然无法实现缩放到相应的传单层的目标:GeoJSON对象未链接到传单层,而相反

因此,您应该改为使用GeoJSON数据构建图层,然后扫描该组,例如,使用查找表示具有属性的功能的图层。名称===France

符合以下条件的事物:

$.getJSON'/world.json',函数geoJSONdata{ var geoJSONgroup=L.geoJSONgeoJSONdata.addTomap; geoJSONgroup.eachLayerfunction层{ 如果layer.feature.properties.name==法国{ //缩放到该层。 map.fitbundslayer.getBounds; } }; };
演示:

要检查的值是否始终包含在obj.properties.name中?是,根据我在问题中所写的内容,整个geoJson具有适用于所有国家的结构,在这种情况下,请参阅我标记为解决方案的副本,但该答案不是关于json,而是一个数组variable@RoryMcCrossan这不应该被标记为重复,因为我所问的不是重复的问题所问的,即使解决方案也很相似哦,老兄,真的非常感谢你。我已经花了好几个小时在这个问题上,尝试了任何可能的破解,我甚至最终陷入了多边形的质心,疯狂。所有这些仅仅是因为我不知道这个特性。谢谢