真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用webgl方式加載point

本篇內(nèi)容介紹了“怎么用webgl方式加載point”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元杭錦后做網(wǎng)站,已為上家服務(wù),為杭錦后各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

這種方式不同于使用Leaflet的API加載point,這個(gè)是在地圖的上層覆蓋一個(gè)canvas對(duì)象,使用的是開(kāi)源的L.CanvasOverlay.js,github上可以搜索到這個(gè),將point繪制在canvas上,在地圖范圍或級(jí)別的動(dòng)態(tài)變化時(shí),計(jì)算vertex shader中的變換矩陣,保持和地圖上的位置一致。

json坐標(biāo)數(shù)據(jù)量:

怎么用webgl方式加載point

關(guān)鍵的shader:

   

     

   

// -- converts latlon to pixels at zoom level 0 (for 256x256 tile size) , inverts y coord )

        // -- source : http://build-failed.blogspot.cz/2013/02/displaying-webgl-data-on-google-maps.html

//將經(jīng)緯度轉(zhuǎn)換像素的代碼,在第一級(jí)別進(jìn)行轉(zhuǎn)換

        function LatLongToPixelXY(latitude, longitude) {

            var pi_180 = Math.PI / 180.0;

            var pi_4 = Math.PI * 4;

            var sinLatitude = Math.sin(latitude * pi_180);

            var pixelY = (0.5 - Math.log((1 + sinLatitude) / (1 - sinLatitude)) / (pi_4)) * 256;

            var pixelX = ((longitude + 180) / 360) * 256;

            var pixel = { x: pixelX, y: pixelY };

            return pixel;

        }

//計(jì)算轉(zhuǎn)換的矩陣

function drawingOnCanvas(canvasOverlay, params) {

            if (gl == null) return;

            gl.clear(gl.COLOR_BUFFER_BIT);

            pixelsToWebGLMatrix.set([2 / canvas.width, 0, 0, 0, 0, -2 / canvas.height, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1]);

            gl.viewport(0, 0, canvas.width, canvas.height);

            var pointSize = Math.max(leafletMap.getZoom() - 4.0, 1.0);

            gl.vertexAttrib1f(gl.aPointSize, pointSize);

            // -- set base matrix to translate canvas pixel coordinates -> webgl coordinates

            mapMatrix.set(pixelsToWebGLMatrix);

            var bounds = leafletMap.getBounds();

            var topLeft = new L.LatLng(bounds.getNorth(), bounds.getWest());

            var offset = LatLongToPixelXY(topLeft.lat, topLeft.lng);

            // -- Scale to current zoom

            var scale = Math.pow(2, leafletMap.getZoom());

            scaleMatrix(mapMatrix, scale, scale);

            translateMatrix(mapMatrix, -offset.x, -offset.y);

            // -- attach matrix value to 'mapMatrix' uniform in shader

            gl.uniformMatrix4fv(u_matLoc, false, mapMatrix);

            gl.drawArrays(gl.POINTS, 0, numPoints);

        }

“怎么用webgl方式加載point”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)站標(biāo)題:怎么用webgl方式加載point
文章轉(zhuǎn)載:http://weahome.cn/article/pijgdp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部