【问题标题】:将 Flash 坐标转换为 GeoJSON
【发布时间】:2021-08-22 21:39:24
【问题描述】:

我有一个旧的 .swf 文件,我的团队用它来创建自定义地图。

.swf 文件如下所示:

{
  "Signature": "CWS",
  "Version": 8,
  "FileLength": 87736,
  "FrameSize": {
    "Xmin": 0,
    "Xmax": 14400,
    "Ymin": 0,
    "Ymax": 10000
  },
  "FrameRate": 12,
  "FrameCount": 1,
  "Tags": [
    {
      "TagName": "FileAttributes",
      "Length": 4,
      "Reserved": 0,
      "HasMetaData": 0,
      "SWFFlagsAS3": 0,
      "SWFFlagsNoCrossDomainCache": 0,
      "SWFFlagsUseNetwork": 0,
      "UNDEFINED": 0
    },
    {
      "TagName": "SetBackgroundColor",
      "Length": 3,
      "BackgroundColor": [
        51,
        51,
        51
      ]
    },
    {
      "TagName": "Protect",
      "Length": 0
    },
    {
      "TagName": "DefineShape4",
      "Length": 309,
      "ShapeId": 1,
      "ShapeBounds": {
        "Xmin": 10629,
        "Xmax": 12137,
        "Ymin": 4084,
        "Ymax": 4748
      },
      "EdgeBounds": {
        "Xmin": 10630,
        "Xmax": 12136,
        "Ymin": 4085,
        "Ymax": 4747
      },
      "Reserved": 0,
      "UsesFillWindingRule": 0,
      "UsesNonScalingStrokes": 0,
      "UsesScalingStrokes": 1,
      "Shapes": {
        "FillStyles": [
          {
            "FillStyleType": 0,
            "FillStyleName": "solid fill",
            "Color": [
              255,
              255,
              102,
              255
            ]
          }
        ],
        "LineStyles": [
          {
            "Width": 2,
            "StartCapStyle": 0,
            "JoinStyle": 0,
            "HasFillFlag": 0,
            "NoHScaleFlag": 0,
            "NoVScaleFlag": 0,
            "PixelHintingFlag": 0,
            "Reserved": 0,
            "NoClose": 0,
            "EndCapStyle": 0,
            "Color": [
              255,
              255,
              255,
              255
            ]
          },
          {
            "Width": 2,
            "StartCapStyle": 0,
            "JoinStyle": 0,
            "HasFillFlag": 0,
            "NoHScaleFlag": 0,
            "NoVScaleFlag": 0,
            "PixelHintingFlag": 0,
            "Reserved": 0,
            "NoClose": 0,
            "EndCapStyle": 0,
            "Color": [
              255,
              255,
              102,
              255
            ]
          }
        ],
        "FillBits": 1,
        "LineBits": 2,
        "ShapeRecords": [
          {
            "RecordType": "stylechange",
            "MoveDeltaX": 10630,
            "MoveDeltaY": 4306,
            "LineStyle": 1
          },
          {
            "RecordType": "straightedge",
            "LineType": "General",
            "DeltaX": 23,
            "DeltaY": -1
          },
       },
    }

这是什么格式?有没有办法将它转换为 GeoJson 格式,以便我可以将它与 d3.js 一起使用? 具体来说,这是美国作战司令部(COCOM)地图的数据数据。这个地图的GeoJson格式我全网都找不到,唯一的希望就是把遗留数据转换成GeoJson

【问题讨论】:

  • 这看起来很像可读的 JSON 版本的 SWF 文件格式标头(它是二进制打包的,可读性要差得多)。浏览到第 27 页:adobe.com/content/dam/acom/en/devnet/pdf/… 里面没有地理数据。
  • @Organis 所以没有办法将 shapeRecords 转换为 GeoJson 的几何,对吧?
  • 恐怕不行。您完全靠自己来挖掘文件格式记录,了解它们的含义并制作工具来做这件事。
  • @Organis 谢谢你的确认,我想我得用工具自己画地图了。

标签: d3.js flash geojson swfobject


【解决方案1】:

我最终使用Geojson.io 绘制了自己的 cocom 地图。我认为没有一种简单的方法可以将 ShapeRecord 转换为 GeoJson,因为它是一个完全不同的坐标系。

【讨论】:

    猜你喜欢
    • 2017-05-19
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多