VectorMap-JS &Winforms WorkFlow
2017-01-09 13:30:44 0 举报
VectorMap-JS是一个基于JavaScript的矢量地图库,可以用于创建交互式和动态的矢量地图。Winforms WorkFlow则是一种Windows桌面应用程序开发框架,它提供了一种可视化的方式来设计和执行复杂的工作流程。 结合这两者,我们可以在Winforms应用程序中使用VectorMap-JS来显示地理位置信息,并通过设计自定义的WorkFlow来实现对地图的各种操作和控制。例如,可以通过WorkFlow定义一系列的地图操作步骤,如缩放、平移、标注等,然后将这些步骤与Winforms界面上的按钮或菜单项关联起来,实现用户友好的地图交互体验。
作者其他创作
大纲/内容
DrawOverlaysForSingleThread
Refresh dirtyOverlays
Draw Feature with Main thread
lineStringReplay
更新TileCache 的Unit
functioncreateXYZLayerlayer Add layer to map
return Tile
ToZoomLevelGroupedStyles for 'landcover ' :0.605ms
N
defaultLocations_
disable(gl.DEPTH_TEST)
Overlay
image.src= imageBase64
Draw replay
strokeStyleLineWidth
ClipLine
tile.state==TileState.Loading
projectionMatrix_
Map ContentLayer,overlay,
tileLoadFunction_
new Tile
Y
attribution
drawReplay
context.getGL()
outerring.Translate flatCoordinates with origin将tile中心点作为世界坐标系的原点这个地方有对outerRing的在WebGL中的处理逻辑
UpdateScreenBitmapOfOverlay
VectorTile
tmpStencilMask
VectorFeatures
is lineStringReplays
Popup
tmpStencilOpFail
Mat4.fromTransform(offsetScaleMatrix) 将缩放matrix 填入矩阵
C# code
startIndices push indices.length
stencilMask
Map API getFeaturesAtPixel
ToZoomLevelGroupedStyles for 'poi_icon' :21s
lineStringReplayArray push cuttent replay
tileQueue.loadMareTiles
ClipMultiLine
strokeStyleLineWidthWithDash
map.hoadlePostRender
GetOrCrate replay by geometry type
set context.globalAlpha = layerState.opacity
Map Controls
getTile
Control 的 OnPointbufferedGraphics?.Render(e.Graphics);
maxExtent
stencilFunc
Get ol4Style
Map Object
.clear(gl.STENCIL_BUFFER_BIT)
RenderFeature with ol4Style
strokeStyleLineStrokColor
setFillStrokStyle
create replaygroup
Draw
zoom bar
RefreshForSingleThread(extent)
Tile
tile.state = TileState.LOADING;
GetAllStyleLeaves6s
Add Tile to TileCache
tmpStencilOpZFail
DrawBackgroundBitmap
replayGroup.replay
.transform.reset(this.offsetScaleMatrix_);
Tile = Tile.getImterimTile()
is LienString
styleIndices_
Layer
indicesBuffer
addVertices_
drawLineString
shutDownProgram
vertices
textStyle
Draw drawable Tile
get the post code and the center point for each recordsuch as postcode centerX centerY00601 -66.7478295 18.1811365
declutterReplays
get drawing zs (z Index)
Map Interactiondoubleclick
clear
zCoordinates push z_order
drawElements
resolution
tile.load()
Image
styles_
Foreach lineStringReplays
moveend
rotation
tile. setState
Return
tolerance
enable STENCIL_TEST
replayDeclutter
one image tile of xyzLayer is loading
stencilOp
loadTilesWhileInteracting
gettmpStencilMaskVal
movestart
jsRuntimeInvoke('createXYZLayer')
MouseWheelZoom
Dispose ScreenBitmapTile.Bitmap of All Overlay
overviewMap
is Polygon is null
Map events
Pointer
verticesBuffer
Check TmpreplayGroup
image.src= base64
is declutterReplays && replayType is Image or Text
Create Replay
wantedTiles.push tile
get next replay
strokeStyleLineCap
JS Code
bufferedGraphics.Render(CreateGraphics());
styleIndices_ push this.indices.length
srid
enable depth_test开启深度测试,用于叠加效果
return
.stencilMask(255);
zoom
is lineStringReplay
doubleclick
Select
ApplayStyleJsonToZoomlevel28s
indices
ZoomSlider
tile state == TileState.IDE
context getGL
get Polygon replay
Vector
View
lineStringReplay.replay
the new us_postcode.sql will participate in the data generation
.transform.reset(this.offsetRotateMatrix_);
import the above results into the us_postcode.sql
.transform.reset(this.projectionMatrix_)
Copy replay to replayGroup
KeyboardPan
return image base64 to js code
draw ocean feature 因为WebGL不能单独clear某个tile 所以每个Tile都要加
FullScreen
tmpStencilOpPass
loadTilesWhileAnimating
GetAllOverlay
getscreeXY of imageTile
Display tile in map
getTileCoordForTileUrlFunction
composeFrameCustom
tileQueue. enqueue
function createMapmap
Modify
setcontext.frameState = frameState
tileUrlFunction
strokeStyleLineDash
tile endTransition
tmpExtent_
strokeStyleLineJoin
state_
strokeStyleLineDashOffset
.uniformMatrix4fv(locations.u_offsetRotateMatrix
is lineStringReplay null
replaysByZIndex_
ToZoomLevelGroupedStyles for 'urban ' :0.017s
Draw Features
zCoordinates
DotNet.invoke
isDrawableTile
uniformMatrix4fv(locations.u_projectionMatrix
getStride
startIndices
Add overlay to dirtyOverlays if overlay.Lock.IsDirty is true
RenderFeature
rendercomplete
drawCoordinates将Feature的坐标转换为 WebGL 使用的数据集合,
declutterTree
update screenXY
some for drawing tile layer
replay.replay
SingleThreaded
PinchRotate
get tmpStencil
click
Callback
DrawTilesInLocalCacheForSingleThread
get features and instructs
context.getGL
Copy property from workReplay to replay
Get drawing replayTypes by render Mode
DragPan
for each render Image Tile
PinchZoom
CreateReplay Callback
ScaleLine
replayType is Polygon or backgroudImage
Mat4.FromTransform(offsetRotateMatrix) 将旋转matrix 填入矩阵
strokeStyleLineColor
DoubleClickZoom
rotate
getsourceTile.getReplayGroup(layer)
tmpMat4_
origin
KeyboardZoom
bindBuffer(verticesBuffer)
replayGroup finish
foreach allLeafStyleNodes count-183:14s
jsRuntimeInvoke('createMap')
Mat4.fromTransform(projectionmatrix将projection的transform 填入 矩阵)
pixelRatio
isMultlinestirng
setFillStyle_
startIndicesFeature push Feature
dirtyOverlay.Count >0
Draw Feature
tmpStencilRef
DragZoom
Refresh
extent
DragRotate
clear(gl.STENCIL_BUFFER_BIT);
other style ids
map display
get tmpStencilFunc
get drawing source Tile
Tile.Layer.manageTilePyramid
startIndicesStyle
Center
0 条评论
下一页