MAPINFO批量统计各各区域里面的点的数量或者线的长度即一个图层是一个个区域,一个图层是一个个点,我想批量统计每个区域内各有多少个点如果答案可以直接发我QQ邮箱,[email protected],谢谢。
就是要将里面的数据导出来,每个点对应的区域名称和每个区域对应的点数量。
有知道的达人吗?
MAPINFO批量统计各各区域里面的点的数量或者线的长度
答案:2 悬赏:80
解决时间 2021-03-15 11:24
- 提问者网友:回憶丶初
- 2021-03-15 02:37
最佳答案
- 二级知识专家网友:萝莉姐姐鹿小北
- 2021-03-15 03:00
样例数据已经发到你邮箱
Include "MAPBASIC.DEF"
open window message
Dim sAppPath,AreaName as String
Dim poiNum,LineNum As Integer
Dim myobj as Object
sAppPath=ApplicationDirectory$()
Open Table sAppPath+"Area.tab" as tab0''''请将文件名修改为你自己的区域文件名
Open Table sAppPath+"poi.tab" as tabP''''请将文件名修改为你自己的点文件名
open file sAppPath+"PNum.txt" for output as #1
Fetch First From tab0
Do While Not EOT(tab0)
myobj=tab0.obj
AreaName=tab0.Name'''tab0.Name需要改成实际区域表中的字段的名字
select * from tabP where obj within myobj into temp
poiNum=tableinfo(temp,TAB_INFO_NROWS)
print #1,AreaName+":"+poiNum
Fetch Next From tab0
loop
close file #1
close all
note"OK"
Include "MAPBASIC.DEF"
open window message
Dim sAppPath,AreaName as String
Dim poiNum,LineNum As Integer
Dim myobj as Object
sAppPath=ApplicationDirectory$()
Open Table sAppPath+"Area.tab" as tab0''''请将文件名修改为你自己的区域文件名
Open Table sAppPath+"poi.tab" as tabP''''请将文件名修改为你自己的点文件名
open file sAppPath+"PNum.txt" for output as #1
Fetch First From tab0
Do While Not EOT(tab0)
myobj=tab0.obj
AreaName=tab0.Name'''tab0.Name需要改成实际区域表中的字段的名字
select * from tabP where obj within myobj into temp
poiNum=tableinfo(temp,TAB_INFO_NROWS)
print #1,AreaName+":"+poiNum
Fetch Next From tab0
loop
close file #1
close all
note"OK"
全部回答
- 1楼网友:何以畏孤独
- 2021-03-15 03:40
area.tab是区域图元的图层,应该有一个叫name的字段。
poi.tab是点图层,没有特殊要求。
这程序写得很清楚了,建议借着mapbasic参考认真读一下程序。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯