矢量化后,讲文件保存为SHP格式后,导入ARCMAP中,怎样能够定义坐标?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矢量化后,讲文件保存为SHP格式后,导入ARCMAP中,怎样能够定义坐标?相关的知识,希望对你有一定的参考价值。

一般而言,在矢量化之前,就应该对地图进行配准和定义投影,即定义坐标。
若已经矢量化了,导入arcmap中再进行配准和投影也是可以的。
一、配准
1.打开ArcMap,增加Georeferncing工具条。
2.把需要进行纠正的增加底图到ArcMap中,会发现Georeferncing工具条中的工具被激活。
3.在校正中我们需要知道一些特殊点的坐标。通过读图,我们知道坐标的点就是公里网格的交点,我们可以从图中均匀的取几个点。一般在实际中,这些点应该能够均匀分布。
4.在Georeferncing工具条上,点击Add Control Point按钮。
5.使用该工具在扫描图上精确到找一个控制点点击,然后鼠标右击输入该点实际的坐标位置。
6.用相同的方法,在底图上增加多个控制点,输入它们的实际坐标。
7.增加所有控制点后,在Georeferencing菜单下,点击Update Display。
8.更新后,就变成真实的坐标。
9.在Georeferencing菜单下,点击Rectify,将校准后的底图另存。
所有图件扫描后都必须经过扫描纠正,对扫描后的栅格图进行检查,以确保矢量化工作顺利进行。
(若和另一空间数据进行配准,则可以通过Spacial ajustment或move进行处理。)

二、投影
方法一:打开ArcToolbox,选择Data Management Tools/define projection,定义一个投影(一般为北京54、西安80、WGS84或当地城市坐标系,根据具体情况进行选择);
方法二:打开ArcToolbox,选择Data Management Tools/Projections and transformations,将原先定义好的投影系统转为所需的投影系统。追问

应该是矢量完成后未进行控制点的校正。重新问个问题哈,底图进行矢量化之前必须要定义坐标吗?可以不定义坐标就直接矢量化,最后在Arcmap中重新定义坐标。这种方法是不是对的,谢谢了。

参考技术A 是不是要重新定义投影坐标系统?如果是,可以在ArcToolBox中选择Data Management Tools,选择Projections and Transformations里面选择Define Projection,选择相应文件后再在出现的对话框中可以修改或重新定义坐标。

JAVA用geotools读取shape格式文件

Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。但这种格式没法存储地理数据的拓扑信息。

其中,要组成一个Shapefile,有三个文件是必不可少的,它们分别是".shp", ".shx"与 ".dbf"文件

  • .shp— 图形格式,用于保存元素的几何实体。

  • .shx— 图形索引格式。几何体位置索引,记录每一个几何体在shp文件之中的位置,能够加快向前或向后搜索一个几何体的效率。

  • .dbf— 属性数据格式,以dBase IV的数据表格式存储每个几何形状的属性数据。

下面将介绍如何通过Java读取Shape文件中的内容信息

我们的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.herbert.geotool</groupId>
    <artifactId>geo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>19.2</version>
            <scope>system</scope>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-opengis</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-data</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-api</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-main</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-metadata</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-referencing</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-geojson</artifactId>
            <version>19.2</version>
        </dependency>

        <dependency>
            <groupId>org.json.simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.5.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>com.vividsolutions</groupId>
            <artifactId>jts</artifactId>
            <version>1.13</version>
        </dependency>
    </dependencies>

</project>

 

技术图片

具体Java代码

package com.herbert.geotoool.util;

import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.geojson.feature.FeatureJSON;
import org.opengis.feature.simple.SimpleFeature;

import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.nio.charset.Charset;

/**
 * @author :Herbert
 * @date :Created in 2019/12/26 17:01
 * @description:
 * @modified By:
 * @version: $
 */

public class ShapeModel {


    public static void main(String[] args) throws IOException {
        long start = System.currentTimeMillis();

        String SHAPE_FILE = "F:MapDatagisMapxian街道界线.shp"; // ShapeFile全路径

        // 使用GeoTools读取ShapeFile文件
        File shapeFile = new File(SHAPE_FILE);
        ShapefileDataStore store = new ShapefileDataStore(shapeFile.toURI().toURL());
        //设置编码
        Charset charset = Charset.forName("GBK");
        store.setCharset(charset);
        SimpleFeatureSource sfSource = store.getFeatureSource();
        SimpleFeatureIterator sfIter = sfSource.getFeatures().features();
        // 从ShapeFile文件中遍历每一个Feature,然后将Feature转为GeoJSON字符串
        while (sfIter.hasNext()) {
            SimpleFeature feature = (SimpleFeature) sfIter.next();
            // Feature转GeoJSON
            FeatureJSON fjson = new FeatureJSON();
            StringWriter writer = new StringWriter();
            fjson.writeFeature(feature, writer);
            String sjson = writer.toString();
            System.out.println("sjson=====  >>>>  "  + sjson);
        }
        System.out.println("数据导入完成,共耗时"+(System.currentTimeMillis() - start)+"ms");
    }
}

 

技术图片

读取数据显示:

技术图片技术图片?

技术图片技术图片?

以上是关于矢量化后,讲文件保存为SHP格式后,导入ARCMAP中,怎样能够定义坐标?的主要内容,如果未能解决你的问题,请参考以下文章

QGIS使用小节

MapGIS精品教程004:矢量数据格式转换(shpdxfGDBtxt)

JAVA用geotools读取shape格式文件

如何制作行政区划矢量图(shp格式)

CAD如何调用shp格式的数据?

如何把JPG文件转为SHP文件,