【问题标题】:Uncaught TypeError: Object ClipperJS未捕获的类型错误:对象 ClipperJS
【发布时间】:2014-04-01 19:25:14
【问题描述】:

尝试运行我的 Javascript 文件时出现以下错误:

"Uncaught TypeError: Object function (a){"undefined"==typeof a&& a=0);this.m_PolyOuts=null;this.m_ClipType= d.ClipType.ctIntersection;this.m_IntersectNodeComparer=this.m_IntersectList=this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m...<omitted>...y'"

相关代码:

<script>

 // Geolocation
 var stateData;
 var states = new Object();

 d3.json("states.json", function (data) {

         stateData = data;

         data.features.forEach(function (datum) {
                 // Populate data for each entry in states[__]...
         });

         var pt = new ClipperLib.IntPoint(67.007915, -152.002047);
         for (var i = 0; i < states["Alaska"].length; ++i) {
                 var done = 0;
                 for (var j = 0; j < states["Alaska"][i].length; ++j) {
                         var poly = states["Alaska"][i][j];
                         if (ClipperLib.Clipper.PointInPoly(pt, poly) == 1) {
                                 done = 1;
                                 break;
                         }
                         ...
                  }
         }

         ...
  });

</script>

当我尝试在 Chrome 的控制台上运行命令时,我没有收到错误消息: https://www.dropbox.com/s/cm29oaxgr5rjz2d/Screenshot%202014-02-28%2011.42.19.png

我正在使用 ClipperJS 并在我的文件顶部将其作为 src 包含在内:

< script src="clipper.js" charset="utf-8">< /script>

(“script”或“/script”之前没有空格 - 它们在这里是因为否则它不会显示。)

我认为这可能是因为类型不匹配,但后来我尝试了:

...
var poly = [{X:10,Y:10},{X:110,Y:10},{X:110,Y:110},{X:10,Y:110}];
if (ClipperLib.Clipper.PointInPoly(pt, poly) == 1) {
    done = 1;
    break;
}
...

我仍然遇到同样的错误。 任何帮助表示赞赏!

Relevant link for where I got the idea to use ClipperJS (answer by "Timo")

【问题讨论】:

    标签: javascript typeerror


    【解决方案1】:

    没有看到您的其余代码,这似乎是一个引导问题。尝试确保您的代码在页面上的所有内容都已运行后运行。

    另外:D3 的 json 请求调用它的回调,第一个参数是 error,第二个参数是 data。我怀疑这会导致每个状态的 Poly 配置被错误配置或根本没有配置,因此当您查询它们以包含点时,它会失败。

    https://github.com/mbostock/d3/wiki/Requests

    【讨论】:

    • 刚刚添加了与上述调用相关的所有内容。如果您还想要更多,请告诉我。
    • 嗯...你是说在我们到达 Clipper 调用时不会填充状态吗?为什么我在控制台中使用它时会填充状态?
    • 就是这个样子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 2016-05-23
    • 2014-06-20
    相关资源
    最近更新 更多