峻祁连
路人甲
路人甲
  • 注册日期2004-07-08
  • 发帖数27
  • QQ
  • 铜币202枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:18920回复:58

[共享]mapX距离工具源码,delphi7+mapx5.0

楼主#
更多 发布于:2005-05-27 11:36
<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编辑过]
喜欢0 评分0
MapGuide开发者网络MapGuide Developer Network<br>
http://www.mgdn.com.cn
yyy3
路人甲
路人甲
  • 注册日期2013-08-10
  • 发帖数1
  • QQ
  • 铜币102枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2013-08-10 20:34
<p>看看~~~~~~~~~~~~~~~~~~~~~~~~~</p>
举报 回复(0) 喜欢(0)     评分
dtcq
路人甲
路人甲
  • 注册日期2005-06-19
  • 发帖数2
  • QQ
  • 铜币114枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2009-02-21 10:35
谢谢
举报 回复(0) 喜欢(0)     评分
xcaesar
路人甲
路人甲
  • 注册日期2009-01-16
  • 发帖数1
  • QQ
  • 铜币103枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2009-01-21 01:25
<P>非常感谢分享。</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
cjpvscjp
路人甲
路人甲
  • 注册日期2005-04-22
  • 发帖数54
  • QQ
  • 铜币404枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2008-08-02 17:24
顶先!!!!!<img src="images/post/smile/dvbbs/em02.gif" />
我用无悔 刻永世爱你的碑
举报 回复(0) 喜欢(0)     评分
小偶来啦
路人甲
路人甲
  • 注册日期2008-06-28
  • 发帖数3
  • QQ
  • 铜币108枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2008-08-01 16:26
顶一下
举报 回复(0) 喜欢(0)     评分
xiaoyu851275
路人甲
路人甲
  • 注册日期2008-03-03
  • 发帖数4
  • QQ
  • 铜币112枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2008-05-27 15:37
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />没钱啊
举报 回复(0) 喜欢(0)     评分
laobalu
路人甲
路人甲
  • 注册日期2008-03-25
  • 发帖数1
  • QQ
  • 铜币104枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2008-05-22 11:21
谢谢顶一个
举报 回复(0) 喜欢(0)     评分
jialian1983
路人甲
路人甲
  • 注册日期2008-04-27
  • 发帖数3
  • QQ
  • 铜币115枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2008-05-03 18:37
ddd
举报 回复(0) 喜欢(0)     评分
myfrbs
路人甲
路人甲
  • 注册日期2008-03-13
  • 发帖数1
  • QQ
  • 铜币103枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2008-03-19 18:09
<P>谢了</P>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部