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


Java GeoShapeFieldMapper类代码示例

本文整理汇总了Java中org.elasticsearch.index.mapper.GeoShapeFieldMapper的典型用法代码示例。如果您正苦于以下问题:Java GeoShapeFieldMapper类的具体用法?Java GeoShapeFieldMapper怎么用?Java GeoShapeFieldMapper使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: parseGeometries

import org.elasticsearch.index.mapper.GeoShapeFieldMapper; //导入依赖的package包/类
/**
 * Parse the geometries array of a GeometryCollection
 *
 * @param parser Parser that will be read from
 * @return Geometry[] geometries of the GeometryCollection
 * @throws IOException Thrown if an error occurs while reading from the XContentParser
 */
protected static GeometryCollectionBuilder parseGeometries(XContentParser parser, GeoShapeFieldMapper mapper) throws
        IOException {
    if (parser.currentToken() != XContentParser.Token.START_ARRAY) {
        throw new ElasticsearchParseException("geometries must be an array of geojson objects");
    }

    XContentParser.Token token = parser.nextToken();
    GeometryCollectionBuilder geometryCollection = ShapeBuilders.newGeometryCollection();
    while (token != XContentParser.Token.END_ARRAY) {
        ShapeBuilder shapeBuilder = GeoShapeType.parse(parser);
        geometryCollection.shape(shapeBuilder);
        token = parser.nextToken();
    }

    return geometryCollection;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:ShapeBuilder.java

示例2: parse

import org.elasticsearch.index.mapper.GeoShapeFieldMapper; //导入依赖的package包/类
/**
 * Parse the geometry specified by the source document and return a ShapeBuilder instance used to
 * build the actual geometry
 * @param parser - parse utility object including source document
 * @param shapeMapper - field mapper needed for index specific parameters
 * @return ShapeBuilder - a builder instance used to create the geometry
 */
public static ShapeBuilder parse(XContentParser parser, GeoShapeFieldMapper shapeMapper) throws IOException {
    if (parser.currentToken() == XContentParser.Token.VALUE_NULL) {
        return null;
    } else if (parser.currentToken() != XContentParser.Token.START_OBJECT) {
        throw new ElasticsearchParseException("shape must be an object consisting of type and coordinates");
    }

    GeoShapeType shapeType = null;
    Distance radius = null;
    CoordinateNode node = null;
    GeometryCollectionBuilder geometryCollections = null;

    Orientation requestedOrientation = (shapeMapper == null) ? Orientation.RIGHT : shapeMapper.fieldType().orientation();
    boolean coerce = (shapeMapper == null) ? GeoShapeFieldMapper.Defaults.COERCE.value() : shapeMapper.coerce().value();

    XContentParser.Token token;
    while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
        if (token == XContentParser.Token.FIELD_NAME) {
            String fieldName = parser.currentName();

            if (FIELD_TYPE.equals(fieldName)) {
                parser.nextToken();
                shapeType = GeoShapeType.forName(parser.text());
            } else if (FIELD_COORDINATES.equals(fieldName)) {
                parser.nextToken();
                node = parseCoordinates(parser);
            } else if (FIELD_GEOMETRIES.equals(fieldName)) {
                parser.nextToken();
                geometryCollections = parseGeometries(parser, shapeMapper);
            } else if (CircleBuilder.FIELD_RADIUS.equals(fieldName)) {
                parser.nextToken();
                radius = Distance.parseDistance(parser.text());
            } else if (FIELD_ORIENTATION.equals(fieldName)) {
                parser.nextToken();
                requestedOrientation = Orientation.fromString(parser.text());
            } else {
                parser.nextToken();
                parser.skipChildren();
            }
        }
    }

    if (shapeType == null) {
        throw new ElasticsearchParseException("shape type not included");
    } else if (node == null && GeoShapeType.GEOMETRYCOLLECTION != shapeType) {
        throw new ElasticsearchParseException("coordinates not included");
    } else if (geometryCollections == null && GeoShapeType.GEOMETRYCOLLECTION == shapeType) {
        throw new ElasticsearchParseException("geometries not included");
    } else if (radius != null && GeoShapeType.CIRCLE != shapeType) {
        throw new ElasticsearchParseException("field [{}] is supported for [{}] only", CircleBuilder.FIELD_RADIUS,
                CircleBuilder.TYPE);
    }

    switch (shapeType) {
        case POINT: return parsePoint(node);
        case MULTIPOINT: return parseMultiPoint(node);
        case LINESTRING: return parseLineString(node);
        case MULTILINESTRING: return parseMultiLine(node);
        case POLYGON: return parsePolygon(node, requestedOrientation, coerce);
        case MULTIPOLYGON: return parseMultiPolygon(node, requestedOrientation, coerce);
        case CIRCLE: return parseCircle(node, radius);
        case ENVELOPE: return parseEnvelope(node);
        case GEOMETRYCOLLECTION: return geometryCollections;
        default:
            throw new ElasticsearchParseException("shape type [{}] not included", shapeType);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:75,代码来源:ShapeBuilder.java

示例3: testOrientationPersistence

import org.elasticsearch.index.mapper.GeoShapeFieldMapper; //导入依赖的package包/类
/**
 * Test that orientation parameter correctly persists across cluster restart
 */
public void testOrientationPersistence() throws Exception {
    String idxName = "orientation";
    String mapping = XContentFactory.jsonBuilder().startObject().startObject("shape")
            .startObject("properties").startObject("location")
            .field("type", "geo_shape")
            .field("orientation", "left")
            .endObject().endObject()
            .endObject().endObject().string();

    // create index
    assertAcked(prepareCreate(idxName).addMapping("shape", mapping, XContentType.JSON));

    mapping = XContentFactory.jsonBuilder().startObject().startObject("shape")
            .startObject("properties").startObject("location")
            .field("type", "geo_shape")
            .field("orientation", "right")
            .endObject().endObject()
            .endObject().endObject().string();

    assertAcked(prepareCreate(idxName+"2").addMapping("shape", mapping, XContentType.JSON));
    ensureGreen(idxName, idxName+"2");

    internalCluster().fullRestart();
    ensureGreen(idxName, idxName+"2");

    // left orientation test
    IndicesService indicesService = internalCluster().getInstance(IndicesService.class, findNodeName(idxName));
    IndexService indexService = indicesService.indexService(resolveIndex(idxName));
    MappedFieldType fieldType = indexService.mapperService().fullName("location");
    assertThat(fieldType, instanceOf(GeoShapeFieldMapper.GeoShapeFieldType.class));

    GeoShapeFieldMapper.GeoShapeFieldType gsfm = (GeoShapeFieldMapper.GeoShapeFieldType)fieldType;
    ShapeBuilder.Orientation orientation = gsfm.orientation();
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.CLOCKWISE));
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.LEFT));
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.CW));

    // right orientation test
    indicesService = internalCluster().getInstance(IndicesService.class, findNodeName(idxName+"2"));
    indexService = indicesService.indexService(resolveIndex((idxName+"2")));
    fieldType = indexService.mapperService().fullName("location");
    assertThat(fieldType, instanceOf(GeoShapeFieldMapper.GeoShapeFieldType.class));

    gsfm = (GeoShapeFieldMapper.GeoShapeFieldType)fieldType;
    orientation = gsfm.orientation();
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.COUNTER_CLOCKWISE));
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.RIGHT));
    assertThat(orientation, equalTo(ShapeBuilder.Orientation.CCW));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:53,代码来源:GeoShapeIntegrationIT.java

示例4: createDefaultFieldType

import org.elasticsearch.index.mapper.GeoShapeFieldMapper; //导入依赖的package包/类
@Override
protected MappedFieldType createDefaultFieldType() {
    return new GeoShapeFieldMapper.GeoShapeFieldType();
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:5,代码来源:GeoShapeFieldTypeTests.java

示例5: GeoHeatmapAggregatorFactory

import org.elasticsearch.index.mapper.GeoShapeFieldMapper; //导入依赖的package包/类
/**
 * Called by the {@link GeoHeatmapAggregationBuilder}
 * 
 * @param name
 *            the name of this heatmap aggregator
 * @param field
 *            the indexed field on which to create the heatmap; must be a
 *            geo_shape
 * @param inputShape
 *            indexed shapes must intersect inputShape to be counted; if
 *            null the world rectangle is used
 * @param maxCells
 *            the maximum number of cells (grid squares) that could possibly
 *            be returned from the heatmap
 * @param distErr
 *            the maximum error distance allowable between the indexed shape and the cells 
 * @param distErrPct
 *            the maximum error ratio between the indexed shape and the heatmap shape
 * @param gridLevel
 *            manually set the granularity of the grid
 * @param context
 *            the context of this aggregation
 * @param parent
 *            the parent aggregation
 * @param subFactoriesBuilder
 *            (not used)
 * @param metaData
 *            aggregation metadata
 * @throws IOException
 *             if an error occurs creating the factory
 */
GeoHeatmapAggregatorFactory(String name, String field, Optional<Shape> inputShape, Optional<Integer> maxCells,
                            Optional<Double> distErr, Optional<Double> distErrPct, Optional<Integer> gridLevel,
                            SearchContext context, AggregatorFactory<?> parent,
                            AggregatorFactories.Builder subFactoriesBuilder, Map<String, Object> metaData) throws IOException {

    super(name, context, parent, subFactoriesBuilder, metaData);
    MappedFieldType fieldType = context.mapperService().fullName(field);
    if (fieldType.typeName().equals(GeoShapeFieldMapper.CONTENT_TYPE)) {
        GeoShapeFieldType geoFieldType = (GeoShapeFieldType) fieldType;
        this.strategy = geoFieldType.resolveStrategy(SpatialStrategy.RECURSIVE);
    } else {
        throw new AggregationInitializationException(String.format(Locale.ROOT,
                "Field [%s] is a %s instead of a %s type",
                field, fieldType.typeName(), GeoShapeFieldMapper.CONTENT_TYPE));
    }
    this.inputShape = inputShape.orElse(strategy.getSpatialContext().getWorldBounds());
    this.maxCells = maxCells.orElse(DEFAULT_MAX_CELLS);
    this.gridLevel = gridLevel.orElse(resolveGridLevel(distErr, distErrPct));
}
 
开发者ID:boundlessgeo,项目名称:elasticsearch-heatmap,代码行数:51,代码来源:GeoHeatmapAggregatorFactory.java


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