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



如果有人记得或看过我之前的帖子,我试图解析GeoJSON字符串,但收效甚微。这个问题已经解决了,但是我有一个大约 80k 行的 geojson 文件。我取出了.js文件中的字符串,并试图将我的geojsonObject指向geojson文件的文件路径。这看起来很简单,但现在我在 Edge 的控制台中得到"不支持的 GeoJSON 类型:未定义Microsoft"。错误指向捆绑网址.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"
}
},

您要求GeoJSONreadFeatures不是GeoJSON形式的对象。geojsonObject没有type因此您会收到"不支持的 GeoJSON 类型:未定义"错误。

...readFeatures({ url: ..., format: ... /* there's no type! */})

查看此复制品,了解readFeatures期望的对象类型的示例。

我怀疑你真正想要的是这样的:

var vectorSource = new VectorSource({
url: './locality.json',
format: new GeoJSON({ featureProjection: "EPSG:3857" })
});

您通常会使用url&formatfeatures&readFeatures,具体取决于适合什么。

您可以将所有数据存储到'data.json'文件中,而不是 .geojson 中。requirejs 中的文件,则可以使用readFeatures读取它

const data = require('./data.json')
var geojsonObject = data;
var vectorSource = new VectorSource({
features: (new GeoJSON()).readFeatures(geojsonObject,
{
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
})
});

相关内容

  • 没有找到相关文章

最新更新