当前位置: 首页 > 知识库问答 >
问题:

从API提取时出现无效的GeoJSON错误

尉迟俊能
2023-03-14

我正在做一个项目,我需要从我的.NET API通过jQuery ajax调用。当我试图将数据分配给一个变量,然后像这样将其加载到谷歌地图时:

 map.data.addGeoJson(data);

它抛出一个错误,说:

js:70InvalidValueError:不是功能或功能集合

如果我采用API给出的相同响应,并将其直接粘贴到html文件中(因此为JS变量数据指定相同的值),那么效果会很好,地图也会呈现

我猜可能有编码问题?我甚至将响应输出到一个div,复制该div的值,粘贴进去,它就工作了。似乎只有当我直接从API分配值时,它才会抛出错误。

你知道我能做些什么来格式化这个或者让它正确工作吗?当脚本直接用JavaScript写出来时,它是“打破”格式化的b/c还是什么?

非常感谢!

编辑:从API返回的我的数据已包装在功能集合中:

{“类型”:“特征集合”,“特征”:[{“id”:5280,“类型”:“特征”,“几何”:{“类型”:“多边形”,“坐标”:[[[[-73.431919,40.989009],-73.423452,40.990793],-73.398054,40.996147],-73.389588,40.99932],-73.388429,40.998151],-73.384952,40.99881],-73.383794,40.99903],-73.383516,40.99982],-73.38924], [-73.382408, 40.999293], [-73.38156, 40.999453], [-73.379019, 40.999935], [-73.378172, 41.000097], [-73.377449, 41.000289], [-73.375282, 41.000867], [-73.37456, 41.00106], [-73.358967, 41.004214], [-73.312189, 41.013675], [-73.296597, 41.01683], [-73.296564, 41.016837], [-73.295532, 41.017045], [-73.292437, 41.017671], [-73.291406, 41.01788], [-73.288203, 41.018528], [-73.278594, 41.020471], [-73.275392, 41.02112], [-73.274206, 41.021338], [-73.273019, 41.021556], [-73.270225, 41.022069], [-73.261288, 41.023711], [-73.254724, 41.024916], [-73.249557, 41.025866], [-73.24916, 41.025957], [-73.247968, 41.026233], [-73.247572, 41.026326], [-73.246328, 41.026614], [-73.242596, 41.027478], [-73.241353,41.027767],…结束

只是提醒一下,如果我将输出直接粘贴到变量中,它就会工作。如果变量与API的响应相等,则它将失败。

共有1个答案

贺靖
2023-03-14

看看这个GeoJson页面,这个GoogleMapsAPI页面

addGeoJson(GeoJson:对象,选项?:数据。GeoJsonOptions)

将GeoJSON功能添加到集合中。给这个方法一个解析过的JSON。将返回导入的要素。如果无法导入GeoJSON,则引发异常。

这个问题的答案是这样包装你的物体:

 { "type": "FeatureCollection",
"features": [
  { "type": "Feature",
     "geometry": /** paste here the complete output of 
                     http://mapit.mysociety.org/area/11804.geojson **/
  }
 ]
}

编辑:试试这个

var geojson = JSON.parse(data); 
map.data.addGeoJson(geojson);
 类似资料:
  • 我正在学习使用带有Spring Boot的Apache Camel。我正在制作一个演示,我正在从FTP位置拾取文件并将其放置到不同的位置。 当我在方法中直接使用ftps uri时,路由会起作用。但是,当我尝试在应用程序中存储ftps位置时。属性文件,并从那里访问它,我得到一个标记无效的错误。 这工作原理: 这不会: 应用属性文件 骆驼路线 这是我得到的错误: pom。xml 有人能指出我哪里错了吗

  • 我得到以下错误 服务器:版本:1.12.6 API版本:1.24 Go版本:Go1.6.4 Git提交:78D1802构建:1月10日星期二20:20:01 2017 OS/arch:Linux/AMD64

  • 我在做迈克尔·哈特尔的教程。当我试图在我的gemset中安装rails 3.2.14时,我会遇到以下问题: $gem安装Rails-v3.2.14 错误:找不到有效的gem'rails'(=3.2.14),原因如下: 我正在使用以下内容: RVM 1.22.15 Ruby 2.0.0p247(2013-06-27修订版41674)[X86_64-Darwin12.3.0] OSX 10.8.5

  • 问题内容: 我是Rust的新手。我正在使用板条箱,但该程序只是退出而没有引起恐慌。我要做的唯一不同就是数据库不同。 问题答案: 引发了错误,但是您忽略了它。 长an 非致命错误通常通过返回来传播,因此调用方可以处理该错误。紧急情况通常用于发生不可恢复的错误,并将中止当前线程。在这种情况下,redis库使用该类型,它是的别名。 如果要处理错误,则应通过匹配结果类型来进行。尝试将您的主要功能更改为以下

  • 我工作的公司利用生物识别考勤,并将数据同步到Zoho服务器以进行记录保存。我试图使用Zoho People API开发一个Web应用程序,它让我知道我什么时候签到以及我的8.5小时将结束。 我用Create-React-App开发了同样的。 现在,API调用在节点服务器中正常工作,我可以在那里记录数据,但当我使用npm start启动本地服务器时,Chrome无法显示数据,我得到以下错误:

  • 问题内容: 我正在尝试提取最新的官方Java docker映像(java:8),但我一直遇到错误。Java 7和9泊坞窗映像已成功下载。我正在运行OS X El Capitan版本10.11.1。 是否有人遇到类似错误并成功解决了该错误?谢谢 问题答案: 有时docker弄乱了其工作空间,可能就是原因。您可以尝试以下方法: 停止所有(java)容器,删除它们,删除Java映像(或所有映像),然后重