小编Ian*_*ton的帖子

如何获得复杂形状多边形的中心线

给定多边形的坐标,我想编写一个函数来返回该多边形的中心线坐标。中心线实际上是一条折线。

这张图更清楚地解释了我的问题

python geometry

11
推荐指数
1
解决办法
1万
查看次数

当它存在于rpm文件中时,"丢失"用于rpm安装的lib

我正在为centos生成rpm文件,但是当我尝试在干净的机器上安装它时,它失败了:

 --> Running transaction check
 ---> Package grass.x86_64 0:6.4.4-1.el6 will be installed
 --> Processing Dependency: libgrass_rli.so()(64bit) for package: grass-6.4.4-1.el6.x86_64
 --> Finished Dependency Resolution Error: Package: grass-6.4.4-1.el6.x86_64 (/grass-6.4.4-1.el6.x86_64)
            Requires: libgrass_rli.so()(64bit)
Run Code Online (Sandbox Code Playgroud)

除了rpm包含libgrass_rli.so之外没问题.

 [vagrant@localhost ~]$ rpm -qilp /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm | grep _rli
 /usr/local/lib/libgrass_rli.6.4.4.so 
 /usr/local/lib/libgrass_rli.so
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种提供:spec文件中的行无济于事,任何人都可以看到错误吗?

编辑

[vagrant@localhost ~]$ rpm -qp --provides /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm                                                                            
libgrass_I.6.4.4.so()(64bit)                                                    
libgrass_Iortho.6.4.4.so()(64bit)                                               
libgrass_arraystats.6.4.4.so()(64bit)                                           
libgrass_bitmap.6.4.4.so()(64bit)                                               
libgrass_btree.6.4.4.so()(64bit)                                                
libgrass_cdhc.6.4.4.so()(64bit)                                                 
libgrass_cluster.6.4.4.so()(64bit)                                              
libgrass_datetime.6.4.4.so()(64bit)                                             
libgrass_dbmibase.6.4.4.so()(64bit)                                             
libgrass_dbmiclient.6.4.4.so()(64bit)                                           
libgrass_dbmidriver.6.4.4.so()(64bit)                                           
libgrass_dbstubs.6.4.4.so()(64bit)                                              
libgrass_dgl.6.4.4.so()(64bit)                                                  
libgrass_dig2.6.4.4.so()(64bit)                                                 
libgrass_display.6.4.4.so()(64bit)                                              
libgrass_driver.6.4.4.so()(64bit)                                               
libgrass_dspf.6.4.4.so()(64bit)
libgrass_edit.6.4.4.so()(64bit)
libgrass_form.6.4.4.so()(64bit)
libgrass_g3d.6.4.4.so()(64bit)
libgrass_gis.6.4.4.so()(64bit)
libgrass_gmath.6.4.4.so()(64bit)
libgrass_gpde.6.4.4.so()(64bit)
libgrass_gproj.6.4.4.so()(64bit)
libgrass_interpdata.6.4.4.so()(64bit)
libgrass_interpfl.6.4.4.so()(64bit)
libgrass_lidar.6.4.4.so()(64bit)
libgrass_linkm.6.4.4.so()(64bit)
libgrass_lrs.6.4.4.so()(64bit)
libgrass_neta.6.4.4.so()(64bit)
libgrass_nviz.6.4.4.so()(64bit)
libgrass_ogsf.6.4.4.so()(64bit) …
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild grass

7
推荐指数
2
解决办法
3667
查看次数

为什么这段代码如何使用geotools读取shapefile会抛出此异常?

我正在使用geotools 10.1从shapefile中读取属性.我不明白为什么在打印所有要素属性后抛出异常.

这是示例代码:

import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFinder;
import org.geotools.data.FeatureSource;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.opengis.feature.simple.SimpleFeature;

public class LayerBusinessTest {


public static void main(String[] args) throws IOException {

    File file = new File("../../setup/test/shp/sscc/SSCC2010_WGS84.shp");
    Map<String, Serializable> map = new HashMap<>();
    map.put( "url", file.toURI().toURL() );

    DataStore dataStore = DataStoreFinder.getDataStore( map );
    String typeName = dataStore.getTypeNames()[0];

    FeatureSource source = dataStore.getFeatureSource( typeName );

    FeatureCollection collection =  source.getFeatures();
    FeatureIterator<SimpleFeature> results = collection.features();
    try {
        while (results.hasNext()) …
Run Code Online (Sandbox Code Playgroud)

java geotools

6
推荐指数
1
解决办法
3637
查看次数

AWS使用JAVA从s3对象创建新文件获取错误

我有一个形状文件,我需要从我的 java 代码中读取形状文件。我使用下面的代码来读取形状文件。

public class App {
    public static void main(String[] args) {
        File file = new File("C:\\Test\\sample.shp");
        Map<String, Object> map = new HashMap<>();//
        try {
            map.put("url", URLs.fileToUrl(file));
            DataStore dataStore = DataStoreFinder.getDataStore(map);
            String typeName = dataStore.getTypeNames()[0];
            SimpleFeatureSource source = dataStore.getFeatureSource(typeName);
            SimpleFeatureCollection collection = source.getFeatures();

            try (FeatureIterator<SimpleFeature> features = collection.features()) {
                while (features.hasNext()) {
                    SimpleFeature feature = features.next();
                    SimpleFeatureType schema = feature.getFeatureType();
                    Class<?> geomType = schema.getGeometryDescriptor().getType().getBinding();

                    String type = "";
                    if (Polygon.class.isAssignableFrom(geomType) || MultiPolygon.class.isAssignableFrom(geomType)) {

                        MultiPolygon geom = (MultiPolygon) feature.getDefaultGeometry();
                        type …
Run Code Online (Sandbox Code Playgroud)

java lambda amazon-s3 amazon-web-services geotools

5
推荐指数
1
解决办法
1800
查看次数

如何在java上创建正六边形以放在地图上?

我正在尝试创建规则的六边形多边形,但是当在地图上可视化时,它们会垂直拉伸。

我就是这样做的:

List<Geometry> hexagons = new ArrayList<>();
        CoordinateReferenceSystem sourceCRS = DefaultGeographicCRS.WGS84;
        ReferencedEnvelope gridBounds = new ReferencedEnvelope(box[0], box[2], box[1], box[3], sourceCRS);
        double sideLen = 0.1;
        GridFeatureBuilder builder = new DefaultGridFeatureBuilder();
        SimpleFeatureSource grid = Hexagons.createGrid(gridBounds, sideLen, HexagonOrientation.FLAT, builder);
        try{
            SimpleFeatureCollection collection = grid.getFeatures();
            FeatureIterator iterator = collection.features();
            while (iterator.hasNext()){
                Feature feature = iterator.next();
                SimpleFeature sFeature = (SimpleFeature) feature;
                
                Geometry geometry = (Geometry) sFeature.getAttribute(0);
                hexagons.add(geometry);
            }

        } catch(Exception e){
            e.printStackTrace();
        }
        return hexagons;
Run Code Online (Sandbox Code Playgroud)

这

就是它在地图上的样子。我尝试将方向从“平面”更改为“角度”,但这并没有解决问题。

java gis coordinates hexagonal-tiles geotools

4
推荐指数
1
解决办法
54
查看次数

Postgres/PostGIS 上的 Gist 索引仍然很慢

我不是 Postgres/GIS 主题的专家,并且我对大型几何数据库(超过 2000 万条记录)有疑问。首先,我的设置如下所示:

mmt=# select version();
-[ RECORD 1 ]-------------------------------------------------------------------------------------------------------------
version | PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

mmt=# select PostGIS_Version();
-[ RECORD 1 ]---+--------------------------------------
postgis_version | 3.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
Run Code Online (Sandbox Code Playgroud)

我正在查询的表包含以下列:

mmt=# \d titles
                                              Table "public.titles"
        Column        |           Type           | Collation | Nullable |                 Default                 
----------------------+--------------------------+-----------+----------+-----------------------------------------
 ogc_fid              | integer                  |           | not null | nextval('titles_ogc_fid_seq'::regclass)
 wkb_geometry         | bytea                    |           |          | 
 timestamp            | timestamp with time zone |           |          | …
Run Code Online (Sandbox Code Playgroud)

postgresql indexing postgis geospatial spatial-index

2
推荐指数
1
解决办法
1740
查看次数