GEOS库在windows中的编译和测试(vs2012)

版本:vs2012, geos3.5

一、下载和编译

   这类的文章比较,不再具体细说,可以参考 http://blog.csdn.net/wangqinghao/article/details/8201319

我的软件保存目录是d:/geos350/,编译成功后,会在d:/geos350/src目录下生成一个geos_c_i.lib库。

在VS中新建项目后,需要进行配置,只需要三处地方:

第一处:属性--配置属性---c/c++---常规,添加附加包含目录d:/geos350/include

第二处:属性--配置属性---链接器---常规,附加库目录d:/geos350/src

第三处:属性--配置属性---链接器--输入,附加依赖项:geos_c_i.lib

二、测试

 先添加头文件: #include "geos.h"

void test();
string str(bool flag);
int main(int argc,char *argv[])
{
        test();
    system("pause");
    return 1;
}


void test()
{
    cout<<"GEOS库版本为:"<<GEOS_VERSION<<endl;

    typedef Coordinate PT;
     GeometryFactory factory;
    CoordinateArraySequenceFactory csf; //构建第一个矩形p1
    CoordinateSequence* cs1 = csf.create(5,2);//五个2维点,第三维度z始终为0
    cs1->setAt(PT(0,0),0);
    cs1->setAt(PT(3,0),1);
    cs1->setAt(PT(3,3),2);
    cs1->setAt(PT(0,3),3);
    cs1->setAt(PT(0,0),4); //与第一个点相等,构成闭合
    LinearRing* ring1 = factory.createLinearRing(cs1); //点构成线
    Geometry* p1 = factory.createPolygon(ring1,NULL); //线构成面

     CoordinateSequence* cs2 = csf.create(5,2); //构建一个四边形p2
    cs2->setAt(PT(2,2),0);
    cs2->setAt(PT(4,5),1);
    cs2->setAt(PT(5,5),2);
    cs2->setAt(PT(5,4),3);
    cs2->setAt(PT(2,2),4);
    LinearRing * ring2 = factory.createLinearRing(cs2);
    Geometry* p2 = (factory.createPolygon(ring2,NULL));

    CoordinateSequence *cs3 = new CoordinateArraySequence(); //构建一个三角形p3
    int xoffset=4,yoffset=4,side=2;
    cs3->add(PT(xoffset, yoffset));
    cs3->add(PT(xoffset, yoffset+side));
    cs3->add(PT(xoffset+side, yoffset+side));
    cs3->add(PT(xoffset, yoffset));
    LinearRing * ring3 = factory.createLinearRing(cs3);
    Geometry* p3 = (factory.createPolygon(ring3,NULL));
    bool flag12=p1->intersects(p2);
    bool flag13=p1->intersects(p3);
    bool flag23=p2->intersects(p3);
    cout<<"图1与图2:"<<str(flag12)<<endl;
    cout<<"图1与图3:"<<str(flag13)<<endl;
    cout<<"图2与图3:"<<str(flag23)<<endl;
}
string str(bool flag)
{
    string result=(flag==true)?"相交":"不相交";
    return result;
}

结果:

posted @ 2015-11-14 22:22  denny402  阅读(4375)  评论(1编辑  收藏  举报