当前位置: 首页 > news >正文

GEOS库使用

1.官网:https://trac.osgeo.org/geos/

2.源码:https://git.osgeo.org/gitea/geos/geos

3.编译,(windows)使用的话,需要先使用cmake工具生成以下vs工程

4.demo

#include "pch.h"
#include "../include/geos.h"
#include <iostream>
using namespace geos::geom;
GeometryFactory::Ptr global_factory;
void test();
std::string str(bool flag);

//生成点
Point*
create_point(double x, double y)
{
	Coordinate c(x, y);
	Point* p = global_factory->createPoint(c);
	return p;
}

int main()
{
    
	std::cout << "GEOS库版本为:" << GEOS_VERSION << std::endl;
	Point *p = create_point(0, 0);//生成一个点
	double parea = p->getArea();//点的面积为0
	std::cout << "扩充前点的面积:" << parea << std::endl;
	parea = p->buffer(1.0)->getArea();//buffer的功能是将点扩充成一个面
	std::cout << "扩充后点的面积:" << parea << std::endl;
	//生成线
	CoordinateArraySequence* cl = new CoordinateArraySequence();
	cl->add(Coordinate(0, 0));
	cl->add(Coordinate(0, 1));
	LineString* ls = global_factory->createLineString(cl);
	double larea = ls->getArea();
	std::cout << "扩充前线的面积:" << larea << std::endl;
	larea = ls->buffer(1.0)->getArea();
	std::cout << "扩充后线的面积:" << larea << std::endl;
        //相交面积
	double both_area = p->buffer(1.0)->intersection(ls->buffer(1.0).get())->getArea();
	std::cout << "相交的面积:" << both_area << std::endl;
	getchar();
}

相关文章:

  • valgrind的使用
  • git拉取分支
  • linux查看进程启动及运行时间
  • 进程空间分配和堆栈大小
  • git submodule用法
  • spark入门知识点
  • scala简介
  • vim辅助工具
  • thrift使用的一个坑
  • 正则表达式-实用的过滤
  • git在分支的基础上建分支
  • git submodule的用法
  • C++ MD5计算
  • python 输出中文问题
  • python安装pip
  • Android框架之Volley
  • CSS盒模型深入
  • CSS居中完全指南——构建CSS居中决策树
  • HTTP 简介
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java,console输出实时的转向GUI textbox
  • js中的正则表达式入门
  • mysql 5.6 原生Online DDL解析
  • spring security oauth2 password授权模式
  • Vue小说阅读器(仿追书神器)
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 嵌入式文件系统
  • 用jQuery怎么做到前后端分离
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ###C语言程序设计-----C语言学习(6)#
  • #android不同版本废弃api,新api。
  • (3)选择元素——(17)练习(Exercises)
  • (附源码)ssm高校实验室 毕业设计 800008
  • (黑马C++)L06 重载与继承
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十八)SpringBoot之发送QQ邮件
  • (五)c52学习之旅-静态数码管
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .Net6使用WebSocket与前端进行通信
  • .NET建议使用的大小写命名原则
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET框架设计—常被忽视的C#设计技巧
  • [.net] 如何在mail的加入正文显示图片
  • [] 与 [[]], -gt 与 > 的比较
  • []FET-430SIM508 研究日志 11.3.31
  • [1]-基于图搜索的路径规划基础
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [20150321]索引空块的问题.txt
  • [ACTF2020 新生赛]Upload 1
  • [Android Studio 权威教程]断点调试和高级调试
  • [asp.net core]project.json(2)