当前位置: 首页 > 知识库问答 >
问题:

Geotools-创建一个点

麻阳
2023-03-14

我正在使用GeoTools Java库进行一些几何计算。在我的例子中,我使用的是一个形状文件,其中包含某个城市的所有邻域多边形。我想知道在那个城市的每一个可能的坐标,它对应于哪个社区。因此,我的方法是简单地在邻近的多边形上循环,并检查给定点是否在其中。下面是所提到的代码的一部分:

public String getNeighborhoodId(Coordinates c){
    for(Feature f : neighborhoods){
        MultiPolygon m = (MultiPolygon) f.getProperty("geometry").getValue();

        GeometryBuilder builder = new GeometryBuilder(DefaultGeographicCRS.WGS84);
        Point p = builder.createPoint(c.getLat(),c.getLng());

        if(m.contains((Geometry) point)){
            return f.getProperty("neighborhoodId").getValue().toString();
        }   
    }
    return "";
}
Point p = builder.createPoint(c.getLat(),c.getLng());

对如何摆脱这个问题有什么建议吗?

共有1个答案

车子平
2023-03-14

我也有类似的问题。通过跟踪堆栈,我发现没有几何工厂可供GeometryBuilder()查找。如果没有工厂,GeometryBuilder会抛出类似于“<您的工厂类型在这里>”的no factory异常。解决方案在http://docs.geotools.org/latest/userguide/unsupported/geometry/index.html。这个插件包括使用org.geotools.geometry类所需的工厂。

我在Eclipse上使用GeoTools 11.0

 类似资料:
  • GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统。GeoTools 提供了 OGC(Open Geospatial Consortium)规范的一个实现来作为他们的开发。 GeoTools 被许多项目使用,包括 Web 服务,命令行工具和桌面应用程序。 核心功能 定义关键空间概念和数据结构的接口 Java 拓扑套件(JTS)提供的集成几何支持 使用 O

  • 问题内容: 我试图扩展到符合以创建的类型。最后,我希望有这样的东西可以打印整个字母: 目前,我正在使用类型来计算两个字符之间的距离。因为类型无法使用标量,所以我需要根据Character创建一个String,获取第一个标量的值,然后计算它们之间的距离: 即使这样,我仍然得到不符合协议和的错误。编译器似乎没有选择随附的关联类型: 我想念什么? 问题答案: 如前所述,由于a 可以由多个unicode标

  • 如你所知,Android使用SQLite作为它的数据库管理系统。SQLite是一个嵌入app的一个数据库,它的确是非常轻量的。这就是为什么这是手机app的不错的选择。 尽管如此,它的操作数据库的API在Android中是非常原生的。你将会需要编写很多SQL语句和你的对象与ContentValues或者Cursors之间的解析过程。很感激的,联合使用Kotlin和Anko,我们可以大量简化这些。 当

  • A package is a directory with some code and a package.json file that provides information to Yarn about your package. Most packages use some kind of version control system. The most common one is git

  • 以下步骤假设您已经了解了 Node.js 和 npm 的基本知识。如果对它们不熟悉,可以访问 https://docs.npmjs.com/ 来了解更多关于 npm 的用法。 Weex 提供了一个命令行工具 weex-cli 来帮助开发者使用 Weex。它可以用来快速创建一个空项目、初始化 iOS 和 Android 开发环境、调试、安装插件等操作。 目前 weex-cli 只支持创建 Vue.j

  • 如果我只是想在Netty应用程序中不使用ByteBuf。我使用创建一个ByteBuf,那么我必须在函数末尾调用吗?