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

2024-02-14

如果有人记得或看过我之前的帖子,我试图解析 GeoJSON 字符串,但成功率有限。该问题已解决,但我有一个包含大约 80k 行的 geojson 文件。我取出 .js 文件中的字符串,并尝试将 geojsonObject 指向 geojson 文件的文件路径。这看起来很简单,但现在我在 Microsoft Edge 的控制台中收到“不支持的 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 to readFeatures在非 GeoJSON 形式的对象上。geojsonObject has no type因此您会收到“不支持的 GeoJSON 类型:未定义”错误。

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

看一下这个复制品 https://codesandbox.io/s/geojson-h5l6s对象类型的示例readFeatures期望。

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

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

你通常会使用url & format or features & readFeatures取决于适合什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Openlayers:不支持的 GeoJSON 类型:未定义 的相关文章

  • 使用日期类型将输入字段中的日期居中

    我想将日期居中input not input inside div 如果我进行居中 它将把日期居中于input因为有一个右侧面板用于根据日历选择日期 该面板根据输入宽度调整大小 用于演示的小代码片段 center text align ce
  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 在数组/对象中查找项目的最快方法

    在 Javascript AS3 中查找列表或对象中项目的索引的最快方法是什么 我对这两种语言都提出这个要求 因为这两种语言的语法相似 假设 myArray one two three myObject one 1 two 2 three
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • 如何在 Chrome 中实现抓取光标图标?

    我知道可以在 Chrome 中使用抓取光标图标 当然是在 Gmail 中 但我不知道如何在我的代码中实现它 我已经尝试过 在CSS中 body cursor grab body cursor webkit grab body cursor
  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 如何在 OpenLayers 3 中删除监听器

    我做了一个copy https gis stackexchange com questions 178222 how to delete a listener in openlayers 3我在 stackoverflow 上提出的问题 因
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断
  • 使用 dnode 从服务器向客户端发送消息

    几个月前 我发现了 nowjs 和 dnode 并最终使用了 nowjs 并且https github com Flotype nowclient https github com Flotype nowclient 用于客户端 服务器双向
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • 响应式菜单:悬停子菜单显示错误

    简而言之 我根据教程创建了一个响应式菜单 当您将鼠标悬停在投资组合按钮上时 菜单应该显示子菜单 而在移动模式下 您需要按该按钮才能显示子菜单 效果很好 问题是该教程有一个错误 如果您在桌面模式下按组合按钮 子菜单将不会再次显示 除非您按 单
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件

随机推荐