阅读:20093回复:58
[共享]mapX距离工具源码,delphi7+mapx5.0
<P>delphi7+mapx5开发的测量距离工具,界面和mapinfo一样,使用十分简单。</P>
<P><br>Author: 杜长宇 <a href="http://www.gisempire.com/bbs/mailtjunqilian@163.com" target="_blank" >junqilian@163.com</A><br>Purpose: 量距离工具<br>History: 2005-05-21</P> <P>开发环境: delphi7+mapX 5.02.38<br> windows XP Sp2</P> <P>许可:<br> 您可以自由的使用本代码进行学习或非商业、商业应用,<br> 你可以自由更改本代码以便更适合你的应用,但请保留原作者版权信息;<br> 如果你对本代码作过修改优化,请添加详细注释后重新发布到网上,并发给原作者一份拷贝,以利于大家共同进步;</P> <P><br>用法:<br> 1、主程序中uses TDistanceToolClass;<br> 2、在主程序窗体中放置ToolButtonDistance<br> 3、添加事件处理函数,形如:<br>procedure TForm1.ToolButtonDistanceClick(Sender: TObject);<br>var<br> m_MapDistanceTool : TDistanceTool;<br>begin<br> m_MapDistanceTool := TDistanceTool.Create;<br> m_MapDistanceTool.CreateDistanceTool(map1);<br> Map1.CurrentTool := m_MapDistanceTool.GetToolNum;<br>end;</P> <P>突然想起来上传的代码里可能有个函数没包含进去,其实也很简单了,我把代码贴出来。</P> <P>{-----------------------------------------------------------------------------<br> Procedure: TdchyMapModule.GetChineseMapUnit<br> Author: duchangyu<br> Date: 02-六月-2005<br> Arguments: var currentMap: TMap; mapUnit: TOleEnum<br> Result: string</P> <P> 得到中文的地图单位字符串<br>-----------------------------------------------------------------------------}</P> <P>function TdchyMapModule.GetChineseMapUnit(var currentMap: TMap;<br> mapUnit: TOleEnum): string;<br>begin<br> case mapUnit of<br> miUnitMile : result := '英里';<br> miUnitKilometer : result := '千米';<br> miUnitInch : result := '英寸';<br> miUnitFoot : result := '英尺';<br> miUnitYard : result := '码';<br> miUnitMillimeter : result := '毫米';<br> miUnitCentimeter : result := '厘米';<br> miUnitMeter : result := '米';<br> miUnitSurveyFoot : result := 'SurveyFoot';<br> miUnitNauticalMile : result := '海里';<br> miUnitTwip : result := '缇';<br> miUnitPoint : result := '点';<br> miUnitPica : result := 'Pica';<br> miUnitDegree : result := '度';<br> miUnitLink : result := 'Link';<br> miUnitChain : result := 'Chain';<br> miUnitRod : result := 'Rod';<br> end;<br> <br>end;<br></P> <P><br> </P> <P> <HR noShade SIZE=1> <P><FONT color=gray>以下内容只有<B>回复</B>后才可以浏览</FONT><br></P> <br> <P><br>{-----------------------------------------------------------------------------<br> Procedure: TdchyMapModule.AutoPan<br> Author: duchangyu<br> Date: 02-六月-2005<br> Arguments: var m_pMap: TMap; mapX, mapY, deltaXScale, deltaYScale: double<br> Result: None</P> <P> 鼠标到底地图边界时自动移图<br>-----------------------------------------------------------------------------}</P> <P>procedure TdchyMapModule.AutoPan(var m_pMap: TMap; mapX, mapY,<br> deltaXScale, deltaYScale: double);<br>var<br> maxX, maxY, minX, minY: double;<br> deltaX, deltaY: double;<br>begin<br> // 当mapX,mapY点到达屏幕距边界还有1/deltaXScale水平和1/deltaYScale垂直时,自动移动屏幕1/deltaXScale(水平)和1/deltaYScale(垂直)<br> maxX := m_pMap.Bounds.XMax;<br> minX := m_pMap.Bounds.XMin;<br> maxY := m_pMap.Bounds.YMax;<br> minY := m_pMap.Bounds.YMin;<br> deltaX := (maxX - minX) / deltaXScale;<br> deltaY := (maxY - minY) / deltaYScale;<br> if (mapX < minX + deltaX) then<br> m_pMap.CenterX := m_pMap.CenterX - (minX - mapX) - deltaX<br> else if (mapX > maxX - deltaX) then<br> m_pMap.CenterX := m_pMap.CenterX + (mapX - maxX) + deltaX;<br> if (mapY < minY + deltaY) then<br> m_pMap.CenterY := m_pMap.CenterY - (minY - mapY) - deltaY<br> else if (mapY > maxY - deltaY) then<br> m_pMap.CenterY := m_pMap.CenterY + (mapY - maxY) + deltaY;</P> <P>end;</P> <P><a href="attachment/2005-5/20055271135526398.rar">2005-5/20055271135526398.rar</a><br></P> <P>faint! 竟然还有1块钱都没有的,那不要了,其实目的就是让大家顶</P> <P>想看就看吧,不过看完了,帮忙顶,让大家也都看到</P> [此贴子已经被作者于2005-9-18 9:21:41编辑过]
|
|
|
1楼#
发布于:2005-06-21 23:45
<P>怎么没人顶啊</P>
|
|
|
2楼#
发布于:2005-06-30 09:12
我来顶一下<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
|
|
3楼#
发布于:2005-07-08 22:43
<a href="http://www.gisempire.com/bbs/dispbbs.asp?BoardID=42;ID=42121;replyID=90052;skin=1" target="_blank" ><FONT color=#000000 size=+0>我来顶一下</FONT></A><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em07.gif" />
|
|
4楼#
发布于:2005-07-15 13:01
<P>完了,想看,可我没钱买呀!</P>
|
|
5楼#
发布于:2005-07-23 16:51
看了,也试了!不过没发结束!
|
|
6楼#
发布于:2005-07-23 17:09
很好用的,谢谢楼主!
|
|
7楼#
发布于:2005-07-23 18:18
谢谢分享
|
|
8楼#
发布于:2005-07-29 10:52
<P>楼主!请问怎么能在住窗体的状态条中显示测距结果!</P>
|
|
9楼#
发布于:2005-08-07 16:14
顶一哈!
|
|
上一页
下一页