请教自动调整地图显示区域问题
现在有了汽车系列坐标点 比如一个样板文件中有 1000多个坐标点,当将这些点写入地图时,要求地图自动匹配这些点的区域范围(只显示比这些点稍大一点范围的地图区域)。。MAPX 是否有这些功能呢 如果没有是否要进行凸包计算 之后自己设置地图的显示范围呢?能否有代码演示 感激~ --------------------编程问答-------------------- 把所有图元选择到一个features集合中,然后获取这个features集合的bounds属性,
使用zoomto方法缩放到这个bounds,
若想显示比这个区域稍微大一点,
可以将这个bounds乘以一个系数,
比如0.08,然后再进行缩放。 --------------------编程问答-------------------- 楼上方法可以。
也可以存成一个layer,采用layer的bounds属性 --------------------编程问答-------------------- 谢谢 我在想想捎后揭贴 --------------------编程问答-------------------- zoomto方法 参数 只有中心点 和 比例 没想明白? 另外 我不大习惯使用对象,我做了个数组来取得边界 我觉得数组操作快些
for 0 - count...
If GPSLIST0(i数据索引).经度 > GPSTYPE.XMax Then
GPSTYPE.XMax = GPSLIST0(i数据索引).经度
End If
If GPSLIST0(i数据索引).经度 < GPSTYPE.XMin Then
GPSTYPE.XMin = GPSLIST0(i数据索引).经度
End If
If GPSLIST0(i数据索引).纬度 > GPSTYPE.YMax Then
GPSTYPE.YMax = GPSLIST0(i数据索引).纬度
End If
If GPSLIST0(i数据索引).纬度 < GPSTYPE.YMin Then
GPSTYPE.YMin = GPSLIST0(i数据索引).纬度
next
'取得轨迹中心坐标
GPSTYPE.X = (GPSTYPE.XMax + GPSTYPE.XMin) / 2
GPSTYPE.Y = (GPSTYPE.YMax + GPSTYPE.YMin) / 2
'取得 X, Y 方向轨迹区域与地图之间的比例系数
GX = (GPSTYPE.XMax - GPSTYPE.XMin) / (HistoryMap.Bounds.XMax - HistoryMap.Bounds.XMin)
GY = (GPSTYPE.YMax - GPSTYPE.YMin) / (HistoryMap.Bounds.YMax - HistoryMap.Bounds.YMin)
'设置地图到轨迹区域(*2 是为了显示比轨迹区域稍微大一点)
If GX < GY Then
HistoryMap.ZoomTo HistoryMap.Zoom * GX * 2, GPSTYPE.X, GPSTYPE.Y
Else
HistoryMap.ZoomTo HistoryMap.Zoom * GY * 2, GPSTYPE.X, GPSTYPE.Y
End If
不知道这样是否可以?效果是有了 怕是不是不标准?
看有些C代码 似乎可以直接 Set 到某区域 可没看明白怎么写的...
--------------------编程问答-------------------- mapxtreme 可以setview ,mapx 好像有个函数 可以设置 bounds
--------------------编程问答-------------------- 看这里面有关内容:http://topic.csdn.net/u/20081123/00/27e8ca20-6033-4f44-9477-304a3140aa66.html
补充:企业软件 , 地理信息系统