java jgeometry_Java JGeometry.GTYPE_POINT属性代码示例

private void internalRender(DOM pRequestDOM, UCon pUCon, Renderer pRenderer) {

int lHeight, lWidth;

lHeight = Integer.parseInt(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/HEIGHT"));

lWidth = Integer.parseInt(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/WIDTH"));

//Transform for pixel output

double lCentreX = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/CENTRE/X"));

double lCentreY = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/CENTRE/Y"));

double lScaledWidth = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/SCALED_WIDTH"));

double lScaledHeight = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/SCALED_HEIGHT"));

double lScaleFactorX = (lWidth/lScaledWidth);

double lScaleFactorY = (lHeight/lScaledHeight);

AffineTransform lOrdinateTransform = new AffineTransform();

lOrdinateTransform.scale(1, -1); // Flip the Y about X=0

lOrdinateTransform.translate(0, -lHeight); // Move back onto the visible area

lOrdinateTransform.translate(((lWidth/2)-lCentreX), (((lHeight/2))-lCentreY)); // Initial centering

lOrdinateTransform.scale(lScaleFactorX, lScaleFactorY); // Scale

lOrdinateTransform.translate(-(lCentreX*(lScaleFactorX-1))/lScaleFactorX, -(lCentreY*(lScaleFactorY-1))/lScaleFactorY); // Second pass centering

Track.pushInfo("AddingRenderableObjects", "Internal rendering: Adding renderable objects to renderer");

try {

DOMList lRenderNodes = pRequestDOM.getUL("/INTERNAL_MAP_REQUEST/RENDER_LIST/RENDER");

ParsedStatement lDataQuery;

for (int lNodeID = 0; lNodeID < lRenderNodes.getLength(); ++lNodeID) {

DOM lRenderNode = lRenderNodes.item(lNodeID);

try {

lDataQuery = StatementParser.parse(lRenderNode.get1SNoEx("DATA_QUERY"), "Data Query");

java.util.List lDataRows = pUCon.queryMultipleRows(lDataQuery);

for (UConStatementResult lRow : lDataRows) {

int lGeoID = lRow.getInteger("ID");

int lParentGeoID = lRow.getInteger("PARENT_SID_ID");

STRUCT st = (oracle.sql.STRUCT)lRow.getObject("GEO_DATA");

JGeometry lGeometry = JGeometry.load(st);

//Parse geometry

if (lGeometry.getType() == JGeometry.GTYPE_POINT) {

drawSpatialMarker(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow, lScaleFactorX, lScaleFactorY);

}

else if (lGeometry.getType() == JGeometry.GTYPE_MULTIPOINT) {

drawSpatialNodes(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform);

}

else if (lGeometry.getType() == JGeometry.GTYPE_CURVE) {

drawSpatialLine(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow);

}

else if (lGeometry.getType() == JGeometry.GTYPE_POLYGON) {

drawSpatialArea(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow);

}

}

}

catch (ExParser | ExDB | SQLException e) {

throw new ExInternal("Fox Internal Spatial Renderer failed when attempting to query the spatial data for rendering", e);

}

}

}

finally {

Track.pop("AddingRenderableObjects");

}

// Get the renderer to generate the image (goes to the output stream given to the pRenderer constructor)

Track.pushInfo("GeneratingImage", "Getting the renderer to generate the image");

try {

pRenderer.generate();

}

finally {

Track.pop("GeneratingImage");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值