Javascript Openlayers:不支持的GeoJSON类型:未定义

Javascript Openlayers:不支持的GeoJSON类型:未定义,javascript,openlayers,geojson,Javascript,Openlayers,Geojson,如果有人记得或看过我之前的文章,我试图解析GeoJSON字符串,但成功率有限。这个问题已经解决了,但是我有一个geojson文件,大约有80k行。我取出.js文件中的字符串,试图将我的geojsonObject指向geojson文件的文件路径。这看起来很简单,但现在我在MicrosoftEdge的控制台中看到了“不支持的GeoJSON类型:未定义”。错误指向bundle-url.js 不确定出了什么问题 控制台中链接的.js文件中的代码: var bundleURL = null; functi

如果有人记得或看过我之前的文章,我试图解析GeoJSON字符串,但成功率有限。这个问题已经解决了,但是我有一个geojson文件,大约有80k行。我取出.js文件中的字符串,试图将我的geojsonObject指向geojson文件的文件路径。这看起来很简单,但现在我在MicrosoftEdge的控制台中看到了“不支持的GeoJSON类型:未定义”。错误指向bundle-url.js

不确定出了什么问题

控制台中链接的.js文件中的代码:

var bundleURL = null;
function getBundleURLCached() {
  if (!bundleURL) {
    bundleURL = getBundleURL();
  }

  return bundleURL;
}

function getBundleURL() {
  // Attempt to find the URL of the current script and use that as the base URL
  try {
    throw new Error;
  } catch (err) {
    var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):$
    if (matches) {
      return getBaseURL(matches[0]);
    }
  }

  return '/';
}

function getBaseURL(url) {
  return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)\/$
}

exports.getBundleURL = getBundleURLCached;
exports.getBaseURL = getBaseURL;
我的.js文件中的代码。url指向与.js相同文件夹中的geojson文件:

var geojsonObject = {
        url: './locality.geojson',
        format: new GeoJSON()
}

var vectorSource = new VectorSource({
        features: new GeoJSON().readFeatures(geojsonObject, {
                dataProjection: 'EPSG:4326',
                featureProjection: 'EPSG:3857'
        })
});
我已经将我的geojson通过了两个验证器,这两个验证器没有出现任何问题。这都是在本地主机(Ubuntu VPS)上使用npm实现的

如上所述,geojson文件有80k行长,所以我不能把它全部放在这里,这里是一个片段

{
   "type": "FeatureCollection",
   "features": [
   {
    "type": "Feature",
    "geometry": {
       "type": "Point",
       "coordinates":  [ -6.65073,54.34794 ]
    },
    "properties": {
    "Site":"ARMAGH"
    }
  },

您要求
GeoJSON
对非GeoJSON格式的对象执行
readFeatures
geojsonObject
没有
type
,因此会出现“不支持的GeoJSON类型:未定义”错误

…readFeatures({url:…,格式:…/*没有类型!*/})
查看对象类型的示例
readFeatures
expected

我怀疑你真正想要的是:

var vectorSource=新矢量源({
url:“./locality.json”,
格式:新GeoJSON({featureProjection:EPSG:3857})
});

您通常会使用
url
&
格式
功能
&
阅读功能
,具体取决于适合的内容。

您可以将所有数据存储到
'data.json'
文件中,而不是.geojson
require
js中的文件,然后您可以使用
readFeatures

const data=require('./data.json')
var geojsonObject=数据;
var vectorSource=新矢量源({
features:(新的GeoJSON()).readFeatures(geojsonObject,
{
数据预测:“EPSG:4326”,
功能投影:“EPSG:3857”
})

});您的功能之一是否缺少“类型”字段?否,每个功能都是正确的,没有语法错误或缺少内容。请提供一个示例来说明此问题。您可以从以下来源和中验证geojson。