- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.bigdata.service.geospatial.ZOrderRangeScanUtil
类的一些代码示例,展示了ZOrderRangeScanUtil
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZOrderRangeScanUtil
类的具体详情如下:
包路径:com.bigdata.service.geospatial.ZOrderRangeScanUtil
类名称:ZOrderRangeScanUtil
[英]Class providing utility functions for efficient zOrder-based multi-dimensional range scans, such as efficient range checks and functionality for BigMin calculation. The latter follows the logics defined in the BIGMIN decision table as provided in http://www.vision-tools.com/h-tropf/multidimensionalrangequery.pdf, page 76. This class is not thread-safe.
[中]类提供用于高效基于zOrder的多维范围扫描的实用函数,例如有效的范围检查和用于BigMin计算的功能。后者遵循中提供的BIGMIN决策表中定义的逻辑http://www.vision-tools.com/h-tropf/multidimensionalrangequery.pdf,第76页。这个类不是线程安全的。
代码示例来源:origin: blazegraph/database
/**
* Test for BigMin calculation in a three-dimensional setting.
*/
public void testBigMinCalculation3Dim() {
final byte[] searchMinZOrder = /* 19 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010011",2) };
final byte[] searchMaxZOrder = /* 23 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010111",2) };
final ZOrderRangeScanUtil rangeScanUtil =
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 3 /* numDimensions */);
// the following record is not in range for dimension two (has value 0 in that dimension)
final byte[] dividingRecord = /* 21 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010101",2) };
assertFalse(rangeScanUtil.isInSearchRange(dividingRecord));
final byte[] bigMinAct = rangeScanUtil.calculateBigMin(dividingRecord);
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct));
assertEquals(searchMaxZOrder, bigMinAct); /* the big min is the max zOrder value */
}
代码示例来源:origin: com.blazegraph/bigdata-rdf-test
ZOrderRangeScanUtil.load(true, 2, testByteArray1, 2); /* modifies input */
final byte[] exp1 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01010101",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(false, 11, testByteArray2, 2); /* modifies input */
final byte[] exp2 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01101111",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(true, 5, testByteArray3, 3); /* modifies input */
final byte[] exp3 =
{ Byte.valueOf("00000100",2), Byte.valueOf("01101101",2), Byte.valueOf("00110110",2) };
代码示例来源:origin: blazegraph/database
litExt.toZOrderByteArray(zOrderIv.getDelegate());
final boolean inRange = rangeScanUtil.isInSearchRange(dividingRecord);
final byte[] bigMin = rangeScanUtil.calculateBigMin(dividingRecord);
代码示例来源:origin: blazegraph/database
public ZOrderIndexBigMinAdvancer(
final byte[] searchMinZOrder, /* the minimum search key (top left) */
final byte[] searchMaxZOrder, /* the maximum search key (bottom right) */
final GeoSpatialLiteralExtension<BigdataValue> litExt,
final int zOrderComponentPos /* position of the zOrder in the index */,
final GeoSpatialCounters geoSpatialCounters) {
this.litExt = litExt;
this.searchMinZOrder = litExt.unpadLeadingZero(searchMinZOrder);
// this.seachMinLong = litExt.fromZOrderByteArray(this.searchMinZOrder);
this.searchMaxZOrder = litExt.unpadLeadingZero(searchMaxZOrder);
// this.seachMaxLong = litExt.fromZOrderByteArray(this.searchMaxZOrder);
this.zOrderComponentPos = zOrderComponentPos;
this.geoSpatialCounters = geoSpatialCounters;
this.rangeScanUtil =
new ZOrderRangeScanUtil(
this.searchMinZOrder, this.searchMaxZOrder, litExt.getNumDimensions());
}
代码示例来源:origin: com.blazegraph/bigdata-core
litExt.toZOrderByteArray(zOrderIv.getDelegate());
final boolean inRange = rangeScanUtil.isInSearchRange(dividingRecord);
final byte[] bigMin = rangeScanUtil.calculateBigMin(dividingRecord);
代码示例来源:origin: com.blazegraph/bigdata-core
public ZOrderIndexBigMinAdvancer(
final byte[] searchMinZOrder, /* the minimum search key (top left) */
final byte[] searchMaxZOrder, /* the maximum search key (bottom right) */
final GeoSpatialLiteralExtension<BigdataValue> litExt,
final int zOrderComponentPos /* position of the zOrder in the index */,
final GeoSpatialCounters geoSpatialCounters) {
this.litExt = litExt;
this.searchMinZOrder = litExt.unpadLeadingZero(searchMinZOrder);
// this.seachMinLong = litExt.fromZOrderByteArray(this.searchMinZOrder);
this.searchMaxZOrder = litExt.unpadLeadingZero(searchMaxZOrder);
// this.seachMaxLong = litExt.fromZOrderByteArray(this.searchMaxZOrder);
this.zOrderComponentPos = zOrderComponentPos;
this.geoSpatialCounters = geoSpatialCounters;
this.rangeScanUtil =
new ZOrderRangeScanUtil(
this.searchMinZOrder, this.searchMaxZOrder, litExt.getNumDimensions());
}
代码示例来源:origin: com.blazegraph/bigdata-rdf-test
/**
* Test for BigMin calculation in a three-dimensional setting.
*/
public void testBigMinCalculation3Dim() {
final byte[] searchMinZOrder = /* 19 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010011",2) };
final byte[] searchMaxZOrder = /* 23 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010111",2) };
final ZOrderRangeScanUtil rangeScanUtil =
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 3 /* numDimensions */);
// the following record is not in range for dimension two (has value 0 in that dimension)
final byte[] dividingRecord = /* 21 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010101",2) };
assertFalse(rangeScanUtil.isInSearchRange(dividingRecord));
final byte[] bigMinAct = rangeScanUtil.calculateBigMin(dividingRecord);
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct));
assertEquals(searchMaxZOrder, bigMinAct); /* the big min is the max zOrder value */
}
代码示例来源:origin: blazegraph/database
ZOrderRangeScanUtil.load(true, 2, testByteArray1, 2); /* modifies input */
final byte[] exp1 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01010101",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(false, 11, testByteArray2, 2); /* modifies input */
final byte[] exp2 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01101111",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(true, 5, testByteArray3, 3); /* modifies input */
final byte[] exp3 =
{ Byte.valueOf("00000100",2), Byte.valueOf("01101101",2), Byte.valueOf("00110110",2) };
代码示例来源:origin: blazegraph/database
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 2 /* numDimensions */);
final byte[] bigMinAct1 = rangeScanUtil.calculateBigMin(divRecord1);
assertEquals(bigMinExp1, bigMinAct1);
assertFalse(rangeScanUtil.isInSearchRange(divRecord1));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct1));
final byte[] bigMinAct2 = rangeScanUtil.calculateBigMin(divRecord2);
assertEquals(bigMinExp2, bigMinAct2);
assertFalse(rangeScanUtil.isInSearchRange(divRecord2));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct2));
final byte[] bigMinAct3 = rangeScanUtil.calculateBigMin(divRecord3);
assertEquals(bigMinExp3, bigMinAct3);
assertFalse(rangeScanUtil.isInSearchRange(divRecord3));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct3));
final byte[] bigMinAct4 = rangeScanUtil.calculateBigMin(divRecord4);
assertEquals(bigMinExp4, bigMinAct4);
assertFalse(rangeScanUtil.isInSearchRange(divRecord4));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct4));
final byte[] bigMinAct5 = rangeScanUtil.calculateBigMin(divRecord5);
assertEquals(bigMinExp5, bigMinAct5);
assertFalse(rangeScanUtil.isInSearchRange(divRecord5));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct5));
final byte[] bigMinAct6 = rangeScanUtil.calculateBigMin(divRecord6);
assertEquals(bigMinExp6, bigMinAct6);
代码示例来源:origin: blazegraph/database
load(true /* setFirst */, i, bigmin, numDimensions);
load(false, i, max, numDimensions);
load(true, i, min, numDimensions);
代码示例来源:origin: com.blazegraph/bigdata-rdf-test
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 2 /* numDimensions */);
final byte[] bigMinAct1 = rangeScanUtil.calculateBigMin(divRecord1);
assertEquals(bigMinExp1, bigMinAct1);
assertFalse(rangeScanUtil.isInSearchRange(divRecord1));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct1));
final byte[] bigMinAct2 = rangeScanUtil.calculateBigMin(divRecord2);
assertEquals(bigMinExp2, bigMinAct2);
assertFalse(rangeScanUtil.isInSearchRange(divRecord2));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct2));
final byte[] bigMinAct3 = rangeScanUtil.calculateBigMin(divRecord3);
assertEquals(bigMinExp3, bigMinAct3);
assertFalse(rangeScanUtil.isInSearchRange(divRecord3));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct3));
final byte[] bigMinAct4 = rangeScanUtil.calculateBigMin(divRecord4);
assertEquals(bigMinExp4, bigMinAct4);
assertFalse(rangeScanUtil.isInSearchRange(divRecord4));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct4));
final byte[] bigMinAct5 = rangeScanUtil.calculateBigMin(divRecord5);
assertEquals(bigMinExp5, bigMinAct5);
assertFalse(rangeScanUtil.isInSearchRange(divRecord5));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct5));
final byte[] bigMinAct6 = rangeScanUtil.calculateBigMin(divRecord6);
assertEquals(bigMinExp6, bigMinAct6);
代码示例来源:origin: com.blazegraph/bigdata-core
load(true /* setFirst */, i, bigmin, numDimensions);
load(false, i, max, numDimensions);
load(true, i, min, numDimensions);
代码示例来源:origin: blazegraph/database
/**
* Test for BigMin calculation in a three-dimensional setting.
*/
public void testBigMinCalculation3Dim() {
final byte[] searchMinZOrder = /* 19 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010011",2) };
final byte[] searchMaxZOrder = /* 23 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010111",2) };
final ZOrderRangeScanUtil rangeScanUtil =
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 3 /* numDimensions */);
// the following record is not in range for dimension two (has value 0 in that dimension)
final byte[] dividingRecord = /* 21 */
{ Byte.valueOf("00000000",2), Byte.valueOf("00000000",2), Byte.valueOf("00010101",2) };
assertFalse(rangeScanUtil.isInSearchRange(dividingRecord));
final byte[] bigMinAct = rangeScanUtil.calculateBigMin(dividingRecord);
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct));
assertEquals(searchMaxZOrder, bigMinAct); /* the big min is the max zOrder value */
}
代码示例来源:origin: blazegraph/database
ZOrderRangeScanUtil.load(true, 2, testByteArray1, 2); /* modifies input */
final byte[] exp1 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01010101",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(false, 11, testByteArray2, 2); /* modifies input */
final byte[] exp2 =
{ Byte.valueOf("00100000",2), Byte.valueOf("01101111",2), Byte.valueOf("01010101",2) };
ZOrderRangeScanUtil.load(true, 5, testByteArray3, 3); /* modifies input */
final byte[] exp3 =
{ Byte.valueOf("00000100",2), Byte.valueOf("01101101",2), Byte.valueOf("00110110",2) };
代码示例来源:origin: blazegraph/database
new ZOrderRangeScanUtil(searchMinZOrder, searchMaxZOrder, 2 /* numDimensions */);
final byte[] bigMinAct1 = rangeScanUtil.calculateBigMin(divRecord1);
assertEquals(bigMinExp1, bigMinAct1);
assertFalse(rangeScanUtil.isInSearchRange(divRecord1));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct1));
final byte[] bigMinAct2 = rangeScanUtil.calculateBigMin(divRecord2);
assertEquals(bigMinExp2, bigMinAct2);
assertFalse(rangeScanUtil.isInSearchRange(divRecord2));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct2));
final byte[] bigMinAct3 = rangeScanUtil.calculateBigMin(divRecord3);
assertEquals(bigMinExp3, bigMinAct3);
assertFalse(rangeScanUtil.isInSearchRange(divRecord3));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct3));
final byte[] bigMinAct4 = rangeScanUtil.calculateBigMin(divRecord4);
assertEquals(bigMinExp4, bigMinAct4);
assertFalse(rangeScanUtil.isInSearchRange(divRecord4));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct4));
final byte[] bigMinAct5 = rangeScanUtil.calculateBigMin(divRecord5);
assertEquals(bigMinExp5, bigMinAct5);
assertFalse(rangeScanUtil.isInSearchRange(divRecord5));
assertTrue(rangeScanUtil.isInSearchRange(bigMinAct5));
final byte[] bigMinAct6 = rangeScanUtil.calculateBigMin(divRecord6);
assertEquals(bigMinExp6, bigMinAct6);
我有一个作为纬度、经度对的多边形点数据库,我需要测试给定的 lat,lng 点是否在任何多边形内。 有几种算法,包括 these但如果多边形跨越前子午线(新西兰海岸外,经度从东经 180 度翻转到西经
我得到了一个使用 Google Earth 的 Windows Forms 应用程序,用户可以在其中在 map 上绘制一个多边形,用作地理围栏。 我想要做的是能够缩放到多边形,以便通过单击按钮使其非常
我需要创建一组(大)空间多边形用于测试目的。是否有一种算法可以创建一个位于边界信封内的随机形状的多边形?我正在使用 OGC 简单的东西,所以创建众所周知的文本的例程是最有用的,选择的语言是 C# 但这
我有一堆要转换为 kml 的 shapefile。 我可以打开它们,但我不明白它们所在的坐标系(创作者也没有提供)。 例如,这应该是阿姆斯特丹市边界上的一个点:'x': 106980.0, 'y':
我有一些包含自相交多边形的空间数据(MapInfo 文件)。这些会导致我的处理出现问题,特别是我无法在 PostGIS 中生成几何联合。有没有简单的方法来解决这个问题?如果有必要,我可以处理多多边形。
我在 python 中使用 GeoPandas 并且有一个有效的多边形 GeoDataframe。 0 POLYGON Z ((68.70999999999999 623.1 0, 3
我有一套n地球表面上的地理坐标,我想计算一个边界框(找到最东、最西、最北和最南的位置),而不会退回到用户输入(程序没有 UI)。天真的方法是“取纬度的最大值和最小值,经度的最大值和最小值,完成”-但是
我想在我的网站上部署一个 TerriaJS 实例,用于 3D(带 2D 回退)地理空间映射。我对如何在我的网站上实际“部署”TerriaJS 感到有点困惑。我对 Leaflet 非常熟悉……几乎只包含
我是 cloudant 的新手,我想按经纬度获取特定类别的记录。 //这是按纬度和经度获取记录 dbname/_design/ad/_geo/geoidx?lat=29.2609417&lon=71.
我看到了这个链接 http://www.mathopenref.com/coordpolygonarea2.html 它解释了如何计算多边形的面积,并帮助识别我们输入的多边形顶点是顺时针还是逆时针。
Postgis中Linestring中的点(由osm2pgsql从osm导入)按顺序描述(经度,纬度) 例如慕尼黑 map 中的线串 'LINESTRING(11.4068032 47.8580927
我有大量经纬度点。最高可达 20k 点。我正在使用 KML 绘制它们。我想要做的是只取最外面的点并用它们来绘制多边形。我已经知道如何在 kml 中绘制多边形,我只需要弄清楚如何只选择组中最外面的点。
在 Marklogic 中,我正在使用 cts.geospatialRegionQuery 搜索包含(索引)几何的文档,该几何与我搜索的几何有交集。 地理空间区域索引使用 etrs89/double作
根据他们的文档,空间对象可以是以下内容 POINT(0 0) LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2,
我正在尝试将 1000 米的缓冲区应用于 JTS Topology Suite 中的多边形形状。我已经确定了执行此操作的方法(请参阅下面的链接),但我不确定缓冲区方法中距离参数的单位是什么。 JTS
找不到在 couchbase 中使用地理 View 的文档/howtos/示例。 简化任务:我的文档看起来像: { x:10, y:15, color:"RED" } 我需要找到正方形中的所有B
我正在尝试获取特定半径(以公里/英里为单位)内的记录。 mongodb 二维索引: db.collection.ensureIndex({locaction:"2d"}) 集合中的记录具有索引键: "
我遇到了一个特殊的情况,我试图找到(部分)位于多边形中的任何地理空间对象。当我申请 ST_Intersect使用 在两个几何图形上函数WGS84 SRID 多边形和多边形明显以北的点的交集返回 FAL
我正在尝试使用 Google Datastore 数据库作为我的后端数据库,并使用地理空间查询来查询它,如 this Google 教程,但所有查询均未返回任何内容。我用 Java 制作了下一个调试
我有一个从 csv 文件导入的非常大的数据库(约 600 万行)。我正在查看 MongoDB 及其关于地理空间索引的文档。您需要将纬度和经度字段嵌入到数组中。不幸的是,我导入的结构中的字段是分开的。
我是一名优秀的程序员,十分优秀!