Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用WebGL';拉丝阵列_Javascript_Opengl Es_Webgl_Polygons - Fatal编程技术网

Javascript 使用WebGL';拉丝阵列

Javascript 使用WebGL';拉丝阵列,javascript,opengl-es,webgl,polygons,Javascript,Opengl Es,Webgl,Polygons,我正在尝试使用下载的OSM数据在地图上绘制多边形。我编写了一个查询,返回planet\u osm\u polygon表中的多边形列表。它将列表作为JSON对象重新返回。我正在使用gl.drawArray(gl.LINESTRIP,0,json\u data\u length)绘制多边形。我对点也做了同样的操作-我有一个返回的点列表,并且我能够使用gl.points绘制它们 问题是,我想分别绘制每个多边形,但我想使用LINE_STRIP是将一个多边形的一个端点连接到另一个多边形的起点 例如,我希望

我正在尝试使用下载的OSM数据在地图上绘制多边形。我编写了一个查询,返回
planet\u osm\u polygon
表中的多边形列表。它将列表作为JSON对象重新返回。我正在使用
gl.drawArray(gl.LINESTRIP,0,json\u data\u length)
绘制多边形。我对点也做了同样的操作-我有一个返回的点列表,并且我能够使用gl.points绘制它们

问题是,我想分别绘制每个多边形,但我想使用LINE_STRIP是将一个多边形的一个端点连接到另一个多边形的起点

例如,我希望SFO中的市中心广场和布坎南街是分开的多边形。但是多边形在绘制之后,仍然通过一个点相互连接。我想把这两个画成单独的多边形。我该怎么做


我不想使用任何库。只是基本的WebGL。我的JavaScript代码从osm数据库获取lat-long坐标,并将其转换为像素坐标以帮助绘图-请参阅链接:WebGL着色器代码(),我正在使用此示例并对其进行扩展

如果我理解正确,您希望绘制多个多边形的“边界”,而不是填充多边形本身

为了在单个绘制调用中绘制单独的线,应使用gl.lines模式而不是gl.LINESTRIP

假设您有一个包含点a、B、C、D的四边形和一个包含点X、Y、Z的三角形。如果您希望在GL_线模式下使用glDrawArrays命令,则应将顶点数据作为

{A,B, B,C, C,D, D,A, X,Y, Y,Z, Z,X}
使用此顶点数据绘制以下线

  • 从A线到B线
  • 从B到C的线路
  • 从C到D的线
  • 从D线到A线
  • 从X到Y的直线
  • 从Y到Z的直线
  • 从Z到X的直线

为了消除重复的顶点数据,您也可以使用适当的。

是否有理由不将它们绘制为gl.LINES?gl.LINES不会通过完成线条带来显示完整的多边形,对吗?当区域线条带将po、ygon的起点与终点连接起来以创建完整的多边形。德国劳埃德船级社。线正在创建一个断开的多边形。然后你可能想看看这个,我将我的lat长点作为以下格式的数组数组:0:Object lat:37.785434506304 lon:-122.4300784425 1:Object lat:37.something lon:-122.something,我明白了。所以我的索引缓冲区应该像上面指定的那样画一条线所需的索引?例如,0,1,2,3,4?