Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- List<Number[]> edgeList = isochrone.searchEdges(qr.getClosestNode());
- IGeometryFilter acceptAllGeomFilter = geometry -> true;
- // TODO: Your tile extent here
- Envelope tileEnvelope = new Envelope(0d, 100d, 0d, 100d);
- MvtLayerParams layerParams = new MvtLayerParams(); // Default extent
- GeometryFactory geometryFactory = new GeometryFactory();
- Geometry[] edgeListGeometry = new Geometry[edgeList.size()];
- for (int edgeCounter = 0; edgeCounter < edgeList.size(); edgeCounter++) {
- Number[] edge = edgeList.get(edgeCounter);
- edgeListGeometry[edgeCounter] = geometryFactory.createLineString(
- new Coordinate[]{new Coordinate(edge[0].doubleValue(), edge[1].doubleValue()),
- new Coordinate(edge[2].doubleValue(), edge[3].doubleValue())});
- }
- logger.info("start encoding: " + resultStr + ", edges:" + edgeListGeometry.length);
- TileGeomResult tileGeom = JtsAdapter.createTileGeom(
- geometryFactory.createGeometryCollection(edgeListGeometry),
- tileEnvelope,
- geometryFactory,
- layerParams,
- acceptAllGeomFilter);
- VectorTile.Tile.Layer.Builder layerBuilder = MvtLayerBuild.newLayerBuilder("myLayerName", layerParams);
- MvtLayerProps layerProps = new MvtLayerProps();
- IUserDataConverter userDataConverter = new UserDataKeyValueMapConverter();
- List<VectorTile.Tile.Feature> features = JtsAdapter.toFeatures(tileGeom.mvtGeoms, layerProps, userDataConverter);
- MvtLayerBuild.writeProps(layerBuilder, layerProps);
- VectorTile.Tile mvt = VectorTile.Tile.newBuilder().addLayers(layerBuilder.addAllFeatures(features).build()).build();
- byte[] bytes = mvt.toByteArray();
- String tookStr = "" + sw.stop().getSeconds() * 1000;
- logger.info("took: " + tookStr);
- return Response.fromResponse(Response.ok(bytes, new MediaType("application", "octet-stream")).build())
- .header("X-GH-Took", tookStr)
- .build();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement