尝试运行我的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")
答案 0 :(得分:0)
没有看到你的其余代码,它似乎是一个引导问题。尝试确保在页面上的所有内容都已运行后运行代码。
另外:D3的json请求调用其回调,错误作为第一个参数,数据作为第二个参数。我怀疑这会导致每个州的Poly配置配置错误,或者根本没有配置,所以当您查询它们的包含点时它会失败。