GeoJson amchart地图,GeoJson存在什么问题?

6
我对ammCharts相对较新,这也是我第一次尝试创建geoJSON文件。以下是我的geoJson文件: GeoJSON file 这是我想要实现的内容: example 当我加载我的geoJson时,会发生以下情况: my map 所以只有一个多边形在有效工作。由于某种原因,我遇到了问题,无法制作jsfiddle或codepen的代码。我认为我的geoJSON有问题,因为我已经加载了其他随机的Geojson文件,它们与amcharts创建的codepen一起正常工作,只有我的不起作用。
我正在使用geojson.io创建geoJson。
1个回答

7

您的geoJSON存在问题,缺少id。AmCharts的地图要求每个区域具有唯一的ID。由于您的任何区域中都没有设置"id"属性,它们都将默认为null,只允许突出显示一个区域。我修改了您的JSON,并在每个区域中添加了与地区相同值的ids:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "division": "Muzaffarabad",
        "district": "Muzaffarabad",
        "id": "Muzaffarabad",
// ... others omitted

我还修改了示例,添加了一个"title"属性到转换后的对象中,这样当你默认悬停在该区域上时,你将得到该区域的名称:

  for(var i = 0; i < svg.length; i++) {
    var path = svg[i];
    var attrs = path.match(/\w+=".*?"/g);
    var area = {};
    for(var x = 0; x < attrs.length; x++) {
      var parts = attrs[x].replace(/"/g, '').split("=");
      var key = fieldMap[parts[0]] || parts[0];
      area[key] = parts[1];
    }
    //added for hover-over balloons
    area["title"] = area["id"];
    mapVar.svg.g.path.push(area);
  }

这里有一个演示,其中包含修改后的文件和示例代码。您可以在此处找到完全修改的geoJSON文件。


非常感谢,现在都清楚了。 - hamadkh
这个答案救了我的晚上!非常感谢!AmCharts必须在某个地方用红色写下来,GeoJSON文件必须为每个要在地图上呈现的项目提供一个id。 - Philip
我有同样的问题。我尝试了这个但没有用。我发现当我使用特定的坐标集时,即使在其他服务(如https://mapshaper.org/)中地图已经渲染,在amcharts中它只会加载geojson中要素集合的最后一个要素。 :( - Sankha Karunasekara
@SankhaKarunasekara - 看起来这需要提出一个新的问题,而不是在旧问题上进行评论。请注意,此问题和答案适用于v3,该版本不支持geojson并使用一种解决方法。v4原生支持geojson,但似乎您的坐标存在问题。 - xorspark
@xorspark 谢谢。是的,我也有与V4类似的问题。 - Sankha Karunasekara
@SankhaKarunasekara 如果你需要v4方面的帮助,请发布一个新问题,并使用“amcharts4”标签。 - xorspark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接