做过GIS开发的进来!!!

无花无酒,天涯人 2011-11-02 05:31:41
做过GI的大神给点开发经验啦~~~。

还有我现在需要在打开layer,然后给一个矩形的坐标,然后要在这个layer里面找到和这个矩形所有相交的点。这样需要用到哪几个函数呢??

求一份GDAL、PROJ、OGR、GEOS库的中文手册、或者一些应用程序。就此拜谢了~~~~~~~~~~~~~~~·

...全文
232 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谁能告诉我一下:我传入4坐标分别是start_x,start_y,end_x,end_y,或者经纬度start_lon,start_lat,end_lon,end_lat。来创建一个矩形么?
  • 打赏
  • 举报
回复
怎么没一个大牛来帮帮忙呢?
gzyyan249 2011-11-07
  • 打赏
  • 举报
回复
楼主你去这里找找http://www.sharpgis.com/,你的问题我无法解决,不好意思
  • 打赏
  • 举报
回复
,在源码上面没有看到类似的例子.....!
huangzhe10 2011-11-04
  • 打赏
  • 举报
回复
只能是自己看源码了,呵呵
  • 打赏
  • 举报
回复
这样是输出了这个.shp里面"点"的所有"坐标"。

然后我看到源码里边有一个 Union、Intersection()函数
OGRGeometry * OGRGeometry::Union ( const OGRGeometry * poOtherGeom )
virtual OGRGeometry * Intersection (const OGRGeometry *) const

调用这个函数。返回一个新的Geometry.
然后就输出。

想法是这样的。不知道思路是否正确。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gzyyan249 的回复:]

是矩形框相交的点还是在矩形框内的点??
[/Quote]


是矩形框内的和框相交的点。

下面是一段源码。你看看
#include <ogrsf_frmts.h>

int main()

{
OGRRegisterAll();

OGRDataSource *poDS;


poDS = OGRSFDriverRegistrar::Open( "point.shp", FALSE );
if( poDS == NULL )
{
//const char *openerrmsg = CPLGetLastErrorMsg();
printf( "Open failed.\n "/*why=%s\n", openerrmsg*/ );
exit( 1 );
}

OGRLayer *poLayer;

poLayer = poDS->GetLayerByName( "point" );
OGRFeature *poFeature;

poLayer->ResetReading();
while( (poFeature = poLayer->GetNextFeature()) != NULL )
{

OGRFeatureDefn *poFDefn = poLayer->GetLayerDefn();
int iField;

for( iField = 0; iField < poFDefn->GetFieldCount(); iField++ )
{
OGRFieldDefn *poFieldDefn = poFDefn->GetFieldDefn( iField );

if( poFieldDefn->GetType() == OFTInteger )
printf( "%d,", poFeature->GetFieldAsInteger( iField ) );
else if( poFieldDefn->GetType() == OFTReal )
printf( "%.3f,", poFeature->GetFieldAsDouble(iField) );
else if( poFieldDefn->GetType() == OFTString )
printf( "%s,", poFeature->GetFieldAsString(iField) );
else
printf( "%s,", poFeature->GetFieldAsString(iField) );
}

OGRGeometry *poGeometry;

poGeometry = poFeature->GetGeometryRef();
if( poGeometry != NULL
&& wkbFlatten(poGeometry->getGeometryType()) == wkbPoint )
{
OGRPoint *poPoint = (OGRPoint *) poGeometry;

printf( "%.3f,%3.f\n", poPoint->getX(), poPoint->getY() );
}
else
{
printf( "no point geometry\n" );
}

}

OGRDataSource::DestroyDataSource( poDS );
}
gzyyan249 2011-11-04
  • 打赏
  • 举报
回复
还有你的layer也是点吗??
gzyyan249 2011-11-04
  • 打赏
  • 举报
回复
是矩形框相交的点还是在矩形框内的点??
  • 打赏
  • 举报
回复
自己先顶一下~~~~~~~~~
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧