尝试运行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")
发布于 2014-03-01 01:11:57
在看不到其余代码的情况下,这似乎是一个自举问题。请尝试确保您的代码在页面上的所有内容都已运行之后运行。
同样:D3的json请求调用它的回调,将error作为第一个参数,data作为第二个参数。我怀疑这会导致每个状态的Poly配置被错误配置或根本没有配置,所以当您查询它们的点包含时,它是失败的。
https://stackoverflow.com/questions/22101158
复制相似问题