`

v:polyline jsp画标记线

 
阅读更多

下面是有个2张并排的图片(用的struts1),然后从数据库中搜出相应图片的标记然后根据标记画出线。数据库存的坐标的样子为:

    503,815;504,815;505,815;506,815;507,815;508,815;509,815;510,815;511,815;512,815;513,815;514,815;

515,815;516,815;517,815;471,803;472,803;473,803;474,804;475,804;476,804;477,805;478,805;479,806;

480,806;481,806;482,807;483,807;484,807;485,808;486,808;487,809;488,809;489,809;490,810;491,810;

492,810;493,811;494,811;495,812;496,812;497,812;498,813;499,813;500,813;501,814;502,814;503,815;

444,780;445,780;446,781;447,782;448,783;449,784;450,785;451,785;452,786;453,787;454,788;455,789;

456,790;457,791;458,791;459,792;460,793;461,794;462,795;463,796;464,797;465,797;466,798;467,799;

468,800;469,801;470,802;471,803;428,753;428,754;429,755;429,756;430,757;430,758;431,759;432,760;

432,761;433,762;433,763;434,764;435,765;435,766;436,767;436,768;437,769;438,770;438,771;439,772;

 

 

然后取出第一张图片的标记(一张图片可以有多个标记,多个标记放到一个集合里。).结果为下图。两图取得标记都是第一个图的标记。

<body>
  <style>
    #pic1Td{border-width:0px;}
    v\:* { behavior: url(#default#VML);}
   html, body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
   }
	</style>
<html:form action="/saveNotesByAutomaticHand">
  <table>
  <tr>
  <td id="pic1Td">
  	<div id="pic1Div">
    <img  id="pic1" style="z-index:2;position:absolute;top:0;" src='/file/<bean:write name="alertForm" property="previousPic.fullName"/>' alt="图片处理" hspace="0" usemap="#newbook" border="0" onclick="return false;">
  	</div>
  </td>
  <td>  
    <img  id="pic2" style="z-index:2;position:absolute;top:0;" src='/file/<bean:write name="alertForm" property="detail.fullName"/>' alt="图片处理" hspace="0" usemap="#newbook" border="0" onclick="return false;">
  </td>
  </tr>
  <!-- onclick="writearea(event.offsetX,event.offsetY)" -->
  </table>
  <table id="table2" width="100%" style="position:absolute;">
  	<tr>
  		<td>
  			<div id="previoustime"></div>
  		</td>
  		<td>
  			<div id="filetime"></div>
  		</td>
  	</tr>
  	<tr>
  	<td colspan="2">
  		<textarea rows="2" id="textid" style="width:900" name="notes"></textarea>
  		<!-- <input type="text" id="areatext"/> -->
  	</td>
  	</tr>
  	<tr>
  	<td colspan="2" align="center">
  		<html:submit>保存备注</html:submit>
  	</td>
  	</tr>
  </table>
  <input type="hidden" name="notesFileNmae" value='<bean:write name="alertForm" property="detail.fileName"/>'>
  <div id="showAllArea"></div>
  <script>

  //function writearea(x,y)
	//{
//		document.getElementById("areatext").value +=x+","+y+";";
//	}
 	var WindowWidth = document.body.clientWidth;
	var windowHeight = document.body.clientHeight;
	document.getElementById("pic1").width=WindowWidth/2-40;//根据屏幕设置图片的宽度
	document.getElementById("pic1").height=(document.getElementById("pic1").width)*0.75;//根据屏幕设置图片的高度
	document.getElementById("pic1Td").width=WindowWidth/2;
	document.getElementById("pic1Div").width=WindowWidth/2;
	document.getElementById("pic2").width=WindowWidth/2-40;
	document.getElementById("table2").style.top=((document.getElementById("pic1").width)*0.75)+10;//这个是下面的文本框,和画图没什么关系
	document.getElementById("textid").style.width=WindowWidth-10;
                //下面这些也和画图无关
	var previousname = '<bean:write name="alertForm" property="previousPic.fileName"/>';
	var previoustime = previousname.substr(5,4)+"年"+previousname.substr(9,2)+"月"+previousname.substr(11,2)+"日"+previousname.substr(13,2)+"时"+previousname.substr(15,2)+"分"+previousname.substr(17,2)+"秒";
	document.getElementById("previoustime").innerText = previoustime;
	var filename = '<bean:write name="alertForm" property="detail.fileName"/>';
	var filetime = filename.substr(5,4)+"年"+filename.substr(9,2)+"月"+filename.substr(11,2)+"日"+filename.substr(13,2)+"时"+filename.substr(15,2)+"分"+filename.substr(17,2)+"秒";
	document.getElementById("filetime").innerText = filetime;
  </script>
//从这里开始和画图有关,循环出标记,然后对每一个标记进行画入
  <logic:notEmpty name="alertForm" property="alertinfos">
  	<logic:iterate  name="alertForm" property="alertinfos" id="info" scope="request"> 
  	
  	<v:polyline style="z-index:1;left:0;position:absolute;top:0" points='<bean:write name="info" property="markArea"/>' filled="f" strokecolor="#B23AEE" strokeweight="4" ></v:polyline>
  	<script>
	var pictureWidth=WindowWidth/2-20;//这个是1个图片的宽度
	var pictureHeight=pictureWidth*0.75;
  	var previousArea = '<bean:write name="info" property="markArea"/>';
	var pointStr = "";
	var secondpointStr = "";
	var points = previousArea.split(";");//分解标记坐标,取出每一个长宽高
	var pointCoord;
	var pointx;
	var pointy;
                //循环出一个标记的坐标,然后对每一个坐标进行画,然后这些画出来的点连成线就成了标记
	for (var pointFor = 0;pointFor < points.length;pointFor++)
	{
		pointCoord = points[pointFor].split(",");
		if(pointCoord == '') continue;
			pointx = pointCoord[0]/<bean:write name="info" property="screenWidth"/>*pictureWidth;//取出图片变了分辨率后的相应的横坐标,如果上面的图片的分辨率没有变,那么横坐标就为pointCoord[0]。
			pointy = pointCoord[1]/<bean:write name="info" property="screenHeight"/>*pictureHeight;//取出纵坐标
			pointStr+=pointx+","+pointy;//然后把坐标拼起来,最后要拼成我上面发的那些数字的形态。
			pointStr +=",";
			secondpointStr+=(pointx+pictureWidth+20)+","+pointy;//这个是第二张图的坐标,横坐标要加上两图相差的距离
			secondpointStr +=",";//然后进行连接,也是拼成我上面发的那些数字的形态。
	}
	pointCoord = points[0].split(",");
	pointx = pointCoord[0]/<bean:write name="info" property="screenWidth"/>*pictureWidth;
	pointy = pointCoord[1]/<bean:write name="info" property="screenHeight"/>*pictureHeight;
	pointStr+=pointx+","+pointy;
	secondpointStr+=(pointx+pictureWidth+20)+","+pointy;
                //在这里<v:polyline>是画出标记。
	showAllArea.innerHTML +='<v:polyline style="z-index:3;left:0;position:absolute;top:0" points='+pointStr+' filled="f" strokecolor="red" strokeweight="1" ></v:polyline>';
	showAllArea.innerHTML +='<v:polyline style="z-index:3;left:0;position:absolute;top:0" points='+secondpointStr+' filled="f" strokecolor="red" strokeweight="1" ></v:polyline>';
	
  </script>	
  	</logic:iterate>
  </logic:notEmpty>
  </html:form>
  </body>

 以上就是VML画图

  • 大小: 146.8 KB
分享到:
评论

相关推荐

    objectARX将直线、圆弧、多段线(Polyline)转化成多段线(Polyline)

    本资源中的“TransformToPolyline”项目是利用ObjectARX实现的一个功能,即把直线(line)、圆弧(arc)以及多段线(Polyline)转换成单一的多段线对象。这一功能对于简化图形处理、提高数据一致性以及优化内存使用...

    C#_CAD二次开发_批量将多段线Polyline转化为样条曲线Spline(代码)

    C#_CAD二次开发_批量将多段线Polyline转化为样条曲线Spline(代码)

    百度地图中的动态画线

    百度地图中动态画线, 也可以自己变通从数据库里面获取动态的点之后进行画线

    高德地图画线,单条多条带方向示例

    在"高德地图画线,单条多条带方向示例"中,我们主要关注的是`AMap.Polyline`类,这是用来创建折线或直线的类,适用于表示路径或路线。 要实现在地图上画出一条线,首先需要在HTML中引入高德地图的JavaScript库,并...

    VML经典教程 VML动态画圆、画矩形、画多边形

    &lt;v:polyline id="myPolygon" points="0,0 50,50 100,0" strokecolor="black" strokeweight="2px" fillcolor="green"&gt; &lt;v:shape path="m @points e" coordsize="100,100"&gt; &lt;v:path onstartdrag="startDrag(event)" ...

    59.(leaflet篇)leaflet动态画线.zip

    接着,动态画线的核心在于`L.Polyline`类。Polyline用于创建多边形线段,可以用来表示连续的轨迹。你可以通过传递一个包含多个经纬度对的数组来创建一条线。例如: ```javascript var lineCoordinates = [[lat1, lon...

    xtime-tworun-Polyline

    标题“xtime-tworun-Polyline”暗示了一个与时间轴相关的动态图形处理技术,特别是涉及到曲线的动画效果。在编程和图形设计领域,这样的功能通常用于创建动态数据可视化或游戏动画。在这个场景中,“xtime”可能表示...

    解决SVG画线line-polyline、矩形rect等线条的stroke-width=1px属性,显示结果变宽成为2px的问题,以及文字模糊的问题

    在SVG(可缩放矢量图形)中,线条和形状的描绘是通过stroke属性来控制的,其中stroke-width属性用于设定线条的宽度。然而,在某些情况下,设置stroke-width为1px时,线条在屏幕上实际显示可能会变得比预期更宽,看...

    Think in VML教程

    3. **路径绘制**:对于曲线和复杂形状,掌握如何使用 `&lt;v:polyline&gt;` 或 `&lt;v:path&gt;` 绘制路径。 4. **事件处理**:学习如何添加交互性,如点击事件和鼠标悬停效果。 5. **样式与CSS**:了解如何使用CSS控制图形样式...

    VML基础教程,ppt

    此外,VML还提供了一些派生自`&lt;v:shape&gt;`的特定形状对象,如`&lt;v:rect&gt;`(矩形)、`&lt;v:roundrect&gt;`(圆角矩形)、`&lt;v:oval&gt;`(圆形)、`&lt;v:line&gt;`(直线)和`&lt;v:polyline&gt;`(不规则折线)。这些对象简化了常见图形的...

    Distance-Polyline-Marker-JAVA:使用Java用折线和标记之间的距离

    Java的距离折线标记计算距折线和标记的距离入门您可以直接使用Java计算标记和折线之间的距离跑步请按照以下步骤调用主函数BdcInit bdcInit = new BdcInit();Double total = bdcInit.bdccGeoDistanceToPolyMtrs...

    高德地图画线,单条多条带方向示例亲测有效,自己也在使用换成你的key就可以

    高德地图API是一套用于在网页或移动应用中集成地图功能的工具集,它允许开发者通过JavaScript或Android/iOS SDK来调用地图服务,如显示地图、定位、路径规划、画线等。 在“高德地图画线”的场景中,"单条线"是指在...

    SVG 画动态线 实例

    这篇文章“SVG 画动态线 实例”可能探讨了如何使用SVG元素和JavaScript来创建动态的线条动画。SVG提供了多种绘制线条的元素,如`&lt;line&gt;`、`&lt;path&gt;`或者`&lt;polyline&gt;`,每种都有其特定的应用场景。 1. `&lt;line&gt;`元素:...

    cad 线自相交检查画线标记好找修改

    cad 线自相交检查画线标记好找修改

    vc 画曲线 vc 画曲线

    在VC++(Visual C++)开发环境中,画曲线是一项常见的任务,主要用于图形用户界面的创建、数据可视化或者科学计算中的结果展示。本文将详细讲解如何在VC++中实现曲线绘制,以及相关的知识点。 首先,VC++ 画曲线...

    C#_CAD二次开发_快速选择dwg中的所有多段线Polyline和样条曲线Spline.cpp(两个函数)

    C#_CAD二次开发_快速选择dwg中的所有多段线Polyline和样条曲线Spline.cpp(两个函数)

    C#仿CAD绘制多段线

    在 CAD(Computer-Aided Design)软件中,多段线(Polyline)是一种非常重要的图形元素,它能够由一系列直线或曲线组成,形成复杂的形状,并且每一段都可以有不同的宽度。本文将详细介绍如何使用 C# 语言来模拟 CAD ...

    VML简介

    除了基础的`&lt;v:shape&gt;`元素,VML还提供了多种派生对象,如`&lt;v:rect&gt;`(矩形)、`&lt;v:roundrect&gt;`(圆角矩形)、`&lt;v:oval&gt;`(圆形)、`&lt;v:line&gt;`(直线)、`&lt;v:polyline&gt;`(多边形线)和`&lt;v:image&gt;`(图像)。...

    百度地图API开发画线工具

    本篇将详细探讨基于百度地图API的“画线工具”开发,这是一款用于在地图上绘制折线的实用工具。 首先,我们要理解百度地图API的核心功能。百度地图API是百度公司提供的一套用于开发地图相关应用的接口,它允许...

    Cesium 动态Polyline绘制

    在Cesium这个强大的3D地球可视化库中,动态绘制Polyline是常见的需求,例如用于表示飞行轨迹、车辆路径等。然而,在使用Entity API绘制动态Polyline时,可能会遇到`depthFailMaterial`属性不起作用的问题。这通常是...

Global site tag (gtag.js) - Google Analytics