当前位置: 首页>>代码示例>>Java>>正文


Java Literal.evaluate方法代码示例

本文整理汇总了Java中org.opengis.filter.expression.Literal.evaluate方法的典型用法代码示例。如果您正苦于以下问题:Java Literal.evaluate方法的具体用法?Java Literal.evaluate怎么用?Java Literal.evaluate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.opengis.filter.expression.Literal的用法示例。


在下文中一共展示了Literal.evaluate方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: clipToWorld

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
protected Literal clipToWorld(Literal geometry) {
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        if(g != null) {
            g.apply(new GeometryComponentFilter() {
                @Override
                public void filter(Geometry geom) {
                    geom.apply(new CoordinateFilter() {
                        @Override
                        public void filter(Coordinate coord) {
                            coord.setCoordinate(new Coordinate(clipLon(coord.x),clipLat(coord.y)));
                        }
                    });
                }
            });
            geometry = CommonFactoryFinder.getFilterFactory(null).literal(g);

        }
    }

    return geometry;
}
 
开发者ID:ngageoint,项目名称:elasticgeo,代码行数:23,代码来源:FilterToElasticHelper.java

示例2: isWorld

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
/**
 * Returns true if the geometry covers the entire world
 * @param geometry
 * @return
 */
protected boolean isWorld(Literal geometry) {
    boolean result = false;
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        if(g != null) {
            result = JTS.toGeometry(WORLD).equalsTopo(g.union());
        }
    }
    return result;
}
 
开发者ID:ngageoint,项目名称:elasticgeo,代码行数:16,代码来源:FilterToElasticHelper.java

示例3: isEmpty

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
/**
 * Returns true if the geometry is fully empty
 * @param geometry
 * @return
 */
protected boolean isEmpty(Literal geometry) {
    boolean result = false;
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        result = g == null || g.isEmpty();
    }
    return result;
}
 
开发者ID:ngageoint,项目名称:elasticgeo,代码行数:14,代码来源:FilterToElasticHelper.java

示例4: isWorld

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
/**
 * Returns true if the geometry covers the entire world
 * @param geometry
 * @return
 */
private boolean isWorld(Literal geometry) {
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        if(g != null) {
            return JTS.toGeometry(WORLD).equalsTopo(g.union());
        }
    }
    return false;
}
 
开发者ID:DennisPallett,项目名称:gt-jdbc-monetdb,代码行数:15,代码来源:FilterToSqlHelper.java

示例5: isEmpty

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
/**
 * Returns true if the geometry is fully empty
 * @param geometry
 * @return
 */
private boolean isEmpty(Literal geometry) {
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        return g == null || g.isEmpty();
    }
    return false;
}
 
开发者ID:DennisPallett,项目名称:gt-jdbc-monetdb,代码行数:13,代码来源:FilterToSqlHelper.java

示例6: evaluateLiteral

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
protected Object evaluateLiteral(Literal expression, Class target ) {
    Object literal = null;

    // HACK: let expression figure out the right value for numbers,
    // since the context is almost always improperly set and the
    // numeric converters try to force floating points to integrals
    // JD: the above is no longer true, so instead do a safe conversion
    if(target != null) {
        // use the target type
        if (Number.class.isAssignableFrom(target)) {
            literal = safeConvertToNumber(expression, target);

            if (literal == null) {
                literal = safeConvertToNumber(expression, Number.class);
            }
        }
        else {
            literal = expression.evaluate(null, target);
        }
    }

    //check for conversion to number
    if (target == null) {
        // we don't know the target type, check for a conversion to a number

        Number number = safeConvertToNumber(expression, Number.class);
        if (number != null) {
            literal = number;
        }
    }

    // if the target was not known, of the conversion failed, try the
    // type guessing dance literal expression does only for the following
    // method call
    if(literal == null)
        literal = expression.evaluate(null);

    // if that failed as well, grab the value as is
    if(literal == null)
        literal = expression.getValue();

    return literal;
}
 
开发者ID:ngageoint,项目名称:elasticgeo,代码行数:44,代码来源:FilterToElastic.java

示例7: visitBinarySpatialOperator

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
/**
 * Handles the common case of a PropertyName,Literal geometry binary spatial operator.
 */
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter,
PropertyName property, Literal geometry, boolean swapped,
Object extraData) {
    Geometry geom  = (Geometry) geometry.evaluate(extraData, Geometry.class);
    System.out.println(geom.getSRID());
    //geom.setSRID(currentSRID);
    
    if (filter instanceof BBOX) {        
        Coordinate[] coords = geom.getCoordinates();

        double minX = 0;
        double maxX = 0;
        double minY = 0;
        double maxY = 0;

        for(Coordinate coord : coords) {
            if (coord.x < minX) minX = coord.x;
            if (coord.x > maxX) maxX = coord.x;
            if (coord.y < minY) minY = coord.y;
            if (coord.y > maxY) maxY = coord.y;
        }

        try {
            out.write(property.toString());
            out.write("_x >= ");
            out.write(String.valueOf(minX));
            out.write(" AND ");
            out.write(property.toString());
            out.write("_x <= ");
            out.write(String.valueOf(maxX));

            out.write(" AND ");

            out.write(property.toString());
            out.write("_y >= ");
            out.write(String.valueOf(minY));
            out.write(" AND ");
            out.write(property.toString());
            out.write("_y <= ");
            out.write(String.valueOf(maxY));
        } catch (IOException ex) {
            LOGGER.warning(ex.getMessage());
        }
    } else {
        throw new UnsupportedOperationException("Filter " + filter.getClass().getCanonicalName() + " not yet supported");
    }
    
    return extraData;
}
 
开发者ID:DennisPallett,项目名称:gt-jdbc-monetdb-simple,代码行数:53,代码来源:FilterToSQL.java

示例8: clipToWorld

import org.opengis.filter.expression.Literal; //导入方法依赖的package包/类
private Literal clipToWorld(Literal geometry) {
    if(geometry != null) {
        Geometry g = geometry.evaluate(null, Geometry.class);
        if(g != null) {
            Envelope env = g.getEnvelopeInternal();
            // first, limit to world
            if(!WORLD.contains(env)) {
                g = sanitizePolygons(g.intersection(JTS.toGeometry(WORLD)));
            }
            
            // second, postgis will always use the shortest distance between two
            // points, if an arc is longer than 180 degrees the opposite will
            // be used instead, so we have to slice the geometry in parts
            env = g.getEnvelopeInternal();
            if(Math.sqrt(env.getWidth() * env.getWidth() + env.getHeight() * env.getHeight()) >= 180) {
                // slice in 90x90 degrees quadrants, none of them has a diagonal longer than 180
                final List<Polygon> polygons = new ArrayList<Polygon>();
                for(double lon = Math.floor(env.getMinX()); lon < env.getMaxX(); lon+= 90) {
                    for (double lat = Math.floor(env.getMinY()); lat < env.getMaxY(); lat += 90) {
                        Geometry quadrant = JTS.toGeometry(new Envelope(lon, lon + 90, lat, lat + 90));
                        Geometry cut = sanitizePolygons(g.intersection(quadrant));
                        if(!cut.isEmpty()) {
                            if(cut instanceof Polygon) {
                                polygons.add((Polygon) cut);
                            } else {
                                for (int i = 0; i < cut.getNumGeometries(); i++) {
                                    polygons.add((Polygon) cut.getGeometryN(i));
                                }
                            }
                        }
                    }
                }
                g = toPolygon(g.getFactory(), polygons);
            }
            
            geometry = CommonFactoryFinder.getFilterFactory(null).literal(g);

        }
    }
    
    return geometry;
}
 
开发者ID:DennisPallett,项目名称:gt-jdbc-monetdb,代码行数:43,代码来源:FilterToSqlHelper.java


注:本文中的org.opengis.filter.expression.Literal.evaluate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。