k**a 发帖数: 1181 | 1 有若干居民地址,要计算每个地址到最近的某区域(例如水域,森林,农田之类)的边
界的最短距离。我用MapInfo里的distance calculator算,不知道是设得不对还是怎么
样,反正非常慢,一小时算得还不到50%,不到2000个居民地址,和17,000多个
polygon,我想一定是出错了。懂行的同学能不能指点一下这种情况应该怎么计算。
多谢了! |
t********r 发帖数: 4908 | 2 wow, mapinfo is still in market? surprised to know........
【在 k**a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有若干居民地址,要计算每个地址到最近的某区域(例如水域,森林,农田之类)的边 : 界的最短距离。我用MapInfo里的distance calculator算,不知道是设得不对还是怎么 : 样,反正非常慢,一小时算得还不到50%,不到2000个居民地址,和17,000多个 : polygon,我想一定是出错了。懂行的同学能不能指点一下这种情况应该怎么计算。 : 多谢了!
|
w*m 发帖数: 1806 | 3 hi,我以前也被这个问题折磨过。帮我导师计算抽水井到最近的河流的最短距离。我在
arcgis里没有找到这样的工具啊。
【在 k**a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有若干居民地址,要计算每个地址到最近的某区域(例如水域,森林,农田之类)的边 : 界的最短距离。我用MapInfo里的distance calculator算,不知道是设得不对还是怎么 : 样,反正非常慢,一小时算得还不到50%,不到2000个居民地址,和17,000多个 : polygon,我想一定是出错了。懂行的同学能不能指点一下这种情况应该怎么计算。 : 多谢了!
|
p********t 发帖数: 1219 | 4 你们研究的问题都好牛啊。
【在 w*m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : hi,我以前也被这个问题折磨过。帮我导师计算抽水井到最近的河流的最短距离。我在 : arcgis里没有找到这样的工具啊。
|
W**********i 发帖数: 136 | 5 AO里面IProximityOperator.returnDistance可以返回两个Geometry之间的最短距离 |
t********r 发帖数: 4908 | 6 如果不需要特别精确,可以将polygon convert to point (using vertesis)计算每
个点到target的距离,并且取最小值
arctoolbox就有这些工具,不用自己编程
【在 w*m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : hi,我以前也被这个问题折磨过。帮我导师计算抽水井到最近的河流的最短距离。我在 : arcgis里没有找到这样的工具啊。
|
w*m 发帖数: 1806 | 7 Great. 我当时没有具体的找,希望你这个方法节省很多时间。
我当时的方法是这样的,
Create a buffer zone near river(or other polygons, whatever),then convert it
to raster image(sorry, I'm not sure it is nessary or not, check it by
yourself). Finally, use your point coordination(x,y) to get the value of
that buffer zone. That value is the shortest distance you're looking for.
bufferzone划分的越细,结果越准确。
【在 W**********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : AO里面IProximityOperator.returnDistance可以返回两个Geometry之间的最短距离
|
W**********i 发帖数: 136 | 8
it
呵呵,你这个方法貌似独立于软件之外了,挺好的啊
我那个就依赖AO帮忙计算了
【在 w*m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Great. 我当时没有具体的找,希望你这个方法节省很多时间。 : 我当时的方法是这样的, : Create a buffer zone near river(or other polygons, whatever),then convert it : to raster image(sorry, I'm not sure it is nessary or not, check it by : yourself). Finally, use your point coordination(x,y) to get the value of : that buffer zone. That value is the shortest distance you're looking for. : bufferzone划分的越细,结果越准确。
|
w*m 发帖数: 1806 | 9 看来你比较有AO经验啊。你是不是做GIS programming的?
对ArcIMS熟不熟啊?
【在 W**********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : it : 呵呵,你这个方法貌似独立于软件之外了,挺好的啊 : 我那个就依赖AO帮忙计算了
|
W**********i 发帖数: 136 | 10 对AO比较熟,ArcIMS了解一些
目前正在努力找工作,5555555555555 |
a*******8 发帖数: 32 | 11 可考虑对多边形图层作Voronoi Diagram, 所得结果除了Voronoi polygons外,还有一
个distance raster (假设取名为DisRaster). 每个居民地址点在DisRaster上所对应的
像元值就是你要算的最短距离。计算200点只需3-4秒。17,000个polygon也不会花太多
时间。我在ESRI Scripts 看到这个extension, 可以下载试试。有问题欢迎来信交流。
http://arcscripts.esri.com/details.asp?dbid=15481
【在 k**a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有若干居民地址,要计算每个地址到最近的某区域(例如水域,森林,农田之类)的边 : 界的最短距离。我用MapInfo里的distance calculator算,不知道是设得不对还是怎么 : 样,反正非常慢,一小时算得还不到50%,不到2000个居民地址,和17,000多个 : polygon,我想一定是出错了。懂行的同学能不能指点一下这种情况应该怎么计算。 : 多谢了!
|
a*******8 发帖数: 32 | 12 除了上面提到的Voronoi方法外,用ArcGIS对两个图层进行spatial join也可解决此问
题。离多边形最近的点的属性将被赋予该多边形,同时将产生新的field存储点到多边
形的距离。
【在 k**a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 有若干居民地址,要计算每个地址到最近的某区域(例如水域,森林,农田之类)的边 : 界的最短距离。我用MapInfo里的distance calculator算,不知道是设得不对还是怎么 : 样,反正非常慢,一小时算得还不到50%,不到2000个居民地址,和17,000多个 : polygon,我想一定是出错了。懂行的同学能不能指点一下这种情况应该怎么计算。 : 多谢了!
|