golang 读取shp文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 读取shp文件相关的知识,希望对你有一定的参考价值。
参考技术A package mainimport (
"fmt"
"github.com/jonas-p/go-shp"
"log"
"reflect"
)
func main()
// open a shapefile for reading
reader, err := shp.Open("E:/example.shp")
if err != nil
log.Fatal(err)
defer reader.Close()
// fields from the attribute table (DBF)
fields := reader.Fields()
//fmt.Println(reader.AttributeCount())
//for k, f := range fields
// fmt.Println(k,f)
//
////fmt.Println(reader.Attribute(0))
//loop through all features in the shapefile
for reader.Next()
n, p := reader.Shape()
point := p.(*shp.Point)
x := point.X
y := point.Y
fmt.Println(x, y)
// print feature
fmt.Println(reflect.TypeOf(p).Elem(), p.BBox())
// print attributes
for k, f :=range fields
val := reader.ReadAttribute(n, k)
fmt.Printf("\t%v: %v\n", f, val)
fmt.Println()
mfc通过MapWinGIS控件读取shp文件(不通过#import实现)
1、首先注册MapWinGIS ActiveX组件,
引入MapWinGIS.ocx产生的MapWinGIS_i.h和MapWinGIS_i.c文件,利用CoCreateInstance函数来调用
演示代码:
/*在工程中加入MapWinGIS_i.c文件,该文件定义了类和接口的guid值,如果不引入的话,会发生连接错误。*/
#include "MapWinGIS_i.h"
CoInitialize(NULL);
IShapefile* ptr = NULL;
HRESULT hr = CoCreateInstance(CLSID_Shapefile, NULL, CLSCTX_ALL, IID_IShapefile, (void**)&ptr);
if (SUCCEEDED(hr) && (ptr!= NULL))
{
VARIANT_BOOL retval = 0;
ptr->Open(_bstr_t(m_shapePath), NULL, &retval);
m_map.addLayer(ptr, true);
}
CoUninitialize();
其他的类创建与之类似
以上是关于golang 读取shp文件的主要内容,如果未能解决你的问题,请参考以下文章