Geos判断点是否在多边形内
使用的geo版本是3.5.1
#include <iostream>
#include "geos.h"
using namespace std;
GeometryFactory factory;
Point* createGeosPoint(double x,double y)
{
Coordinate pt(x,y);
Point* p=factory.createPoint(pt);
return p;
}
Polygon* createGeosPolygon(double x,double y,double offset)
{
CoordinateArraySequence *cas=new CoordinateArraySequence(); //构建点序列
cas->add(Coordinate(x,y));
cas->add(Coordinate(x,y+offset));
cas->add(Coordinate(x+offset,y+offset));
cas->add(Coordinate(x+offset,y+*offset));
cas->add(Coordinate(x+*offset,y+*offset));
cas->add(Coordinate(x+*offset,y));
cas->add(Coordinate(x,y)); //与第一个点相等,形成闭合
LinearRing *lr=factory.createLinearRing(cas);//构建闭合环线
Polygon *poly=factory.createPolygon(lr,NULL); //把闭合线转成多边形;如果多边形中间没有孔洞,第二个参数设为NULL
return poly;
}
int main()
{
cout<<"GEOS库版本为:"<<GEOS_VERSION<<endl;
double x=;
double y=;
Polygon *poly=createGeosPolygon(,,);
Point* p = createGeosPoint(x,y);
if(poly->contains(p))//判断点p是否在多边形poly内,与边缘重合不算在内
{
cout<<"p在多边形内"<<endl;
}
}
遇到的问题:提示GeometryFactory是protected型,无法调用
解决办法: 一开始版本是3.6.2,将版本降低到3.5.1即可。
Geos判断点是否在多边形内的更多相关文章
- 百度地图 判断marker是否在多边形内
昨天画了圆形,判marker是否存在圆形内.今天来画多边形,判断marker在多边形内. 需要引入一个js <script type="text/javascript&quo ...
- hrbustoj 1429:凸多边形(计算几何,判断点是否在多边形内,二分法)
凸多边形 Time Limit: 2000 MS Memory Limit: 65536 K Total Submit: 130(24 users) Total Accepted: 40(1 ...
- C# 判断点是否在多边形内
/// <summary>/// 判断点是否在多边形内/// </summary>/// <param name="pnt">点</par ...
- hrbustoj 1306:再遇攻击(计算几何,判断点是否在多边形内,水题)
再遇攻击 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 253(37 users) Total Accepted: 56(2 ...
- zoj 1081:Points Within(计算几何,判断点是否在多边形内,经典题)
Points Within Time Limit: 2 Seconds Memory Limit: 65536 KB Statement of the Problem Several dra ...
- [zoj] 1081 Points Within || 判断点是否在多边形内
原题 多组数据. n为多边形顶点数,m为要判断的点数 按逆时针序给出多边形的点,判断点是否在多边形内,在的话输出"Within",否则输出"Outside" / ...
- PHP 判断点是否在多边形内
如何判断一个点是否在一个多边形内,何时会用到这个场景. 我们就模拟一个真是场景.我们公司是快递公司,在本地区域有6个分点.每个分点有3-5个工人负责附近的快递派遣发送,所以根据每个点的服务区域我们就能 ...
- POJ 1584 A Round Peg in a Ground Hole[判断凸包 点在多边形内]
A Round Peg in a Ground Hole Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6682 Acc ...
- HDU - 4458 计算几何判断点是否在多边形内
思路:将飞机看成不动的,然后枚举时间看点是否在多边形内部. #include<bits/stdc++.h> #define LL long long #define fi first #d ...
随机推荐
- Mysql的实现原理
上篇文章已经简单介绍了Mysql索引的基本介绍,这篇文章主要讲解一下所以的实现原理.索引的定义其实非常复杂,严格的定义需要用到关系代数的概念,不在咱们讨论范围内,这里咱们只讨论mysql的常用的引擎的 ...
- Java MergeSort
Java MergeSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational ...
- 【SQL Server DBA】日常巡检语句3:特定监控(阻塞、top语句、索引、作业)
原文:[SQL Server DBA]日常巡检语句3:特定监控(阻塞.top语句.索引.作业) 1.查询阻塞信息.锁定了哪些资源 --1.查看阻塞信息 select spid,loginame,wai ...
- 前端开发 Vue -1windows环境搭建Vue Node开发环境
解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...
- 字符串转json数组
import net.sf.json.JSONArray;import net.sf.json.JSONObject; String content = inBankOdd.getContent(). ...
- iOS常用宏定义大全
宏定义与常量的区别 宏:只是在预处理器里进行文本替换,不做任何类型检查,宏能定义代码,const不能,多个宏编译时间相对较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间. 所以在使用 ...
- 在浏览器输入 URL 回车之后发生了什么
注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS.HTTP2.最简单的 DNS.没有代理.并且服务器没有任何问题的基础上. 大致流程 URL 解析 DNS 查询 TCP ...
- dubbo常见异常及解决方式
1.出现RpcException: Failed to invoke the method post in the service com.xxx.xxx.xxx异常怎么办?表示调用失败1.检查网络是 ...
- 两个linux服务器之间免密登录
服务器A(假设为10.64.104.11) 免密登录服务器B(10.64.104.22) 1.登录服务器A 2.生成公私钥 ssh-keygen -t rsa 3.将生成的.pub文件发送到服务器B上 ...
- Auth2.0 例子【转载】
本文转载自:https://www.cnblogs.com/flashsun/p/7424071.html 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的 ...