这2天一直在弄这个map的问题,希望各位给点建议或者意见,帮忙一下~~
1 如何判断当图片移出了蓝色框范围外,使它回到蓝色框内?
也就是说超出边界。回到能显示的范围内。不要让人看见出现白色的底色。
2 如何使图片只显示在可见范围内【即显示层的那个大小】的那部分,我知道用clip ,但是一直没试出来。
(就如maps.baidu.com的那个效果)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Cqupt CM </TITLE>
<style type="text/css">
h1 {
font: 20pt sans-serif;
}
/*外部窗口层,用于显示地图。*/
#outerDiv {
height: 200px;
width: 300px;
border: 1px solid blue;
position: relative;
overflow: hidden;
}
/*内部层,用于装载地图图片,图片就放在里面。*/
#innerDiv {
position: relative;
left: 0px;
top: 0px;
}
</style>
<script type="text/javascript">
var dragging = false; // 是否在拖动标志 false:不是 true :是
var top; // 内部层的顶部坐标 即Y
var left; // 内部层的左边坐标 即X
var dragStartTop; // 拖放开始时的坐标
var dragStartLeft; // 拖放结束时的坐标
function init() {
// make inner div big enough to display the map
// 使内部层足够大,可以显示地图
setInnerDivSize('800px', '700px');
// 设置监听器 监听事件
var outerDiv = document.getElementById("outerDiv");
outerDiv.onmousedown = startMove; //鼠标按下
outerDiv.onmousemove = processMove; //鼠标移动
outerDiv.onmouseup = stopMove; //鼠标弹起
// necessary to enable dragging on IE
outerDiv.ondragstart = function() { return false; }
var innerDiv = document.getElementById("innerDiv");
img = document.createElement("img");
img.src = "http://mappng.baidu.com/maplite/mapbank/baidu/1/0_0/5_1.png";
img.style.position = "absolute";
img.style.left = "0px";
img.style.top = "0px";
img.style.zIndex = 0;
img.setAttribute("id", "pb01");
innerDiv.appendChild(img);
}
function startMove(event) {
// necessary for IE
if (!event) event = window.event;
dragStartLeft = event.clientX;
dragStartTop = event.clientY;
var innerDiv = document.getElementById("innerDiv");
innerDiv.style.cursor = "-moz-grab";
top = stripPx(innerDiv.style.top);
left = stripPx(innerDiv.style.left);
dragging = true;
return false;
}
function processMove(event) {
if (!event) event = window.event; // for IE
var innerDiv = document.getElementById("innerDiv");
if (dragging) {
innerDiv.style.top = top + (event.clientY - dragStartTop);
innerDiv.style.left = left + (event.clientX - dragStartLeft);
}
}
function stopMove() {
var innerDiv = document.getElementById("innerDiv");
innerDiv.style.cursor = "";
dragging = false;
status='在当前窗口中的X, Y坐标 : ( '+event.clientX+', '+event.clientY +')'+' 内部层的Top:'+innerDiv.style.top+' 内部层的Left:'+innerDiv.style.left;
}
function stripPx(value) {
if (value == "") return 0;
return parseFloat(value.substring(0, value.length - 2));
}
function setInnerDivSize(width, height) {
var innerDiv = document.getElementById("innerDiv");
innerDiv.style.width = width;
innerDiv.style.height = height;
}
</script>
</HEAD>
<BODY onload="init()">
<div id="outerDiv">
<div style="position: absolute; top: 10px; left: 10px; z-index: 1">
<div id="innerDiv" style="z-index: 0">
</div>
</div>
</BODY>
</HTML>
分享到:
相关推荐
3. **执行裁剪操作**:使用Map的clip()方法,传入裁剪范围对象,即可完成裁剪。此方法会返回一个新的Layer,包含裁剪后的地图数据。 4. **显示裁剪结果**:将裁剪后的新Layer添加到地图视图中,或者保存为新的数据...
2. 添加并激活矢量数据:在视图目录表中添加并激活边界数据(boundary.shp)和高程点数据(peak.shp)。 3. 裁剪分析:使用Clip命令对高程数据进行裁剪,去除边界外的数据。 二、DEM建立 DEM(Digital Elevation ...
请注意,上述C#代码示例需要对ArcObjects API有深入了解,并且需要正确处理Esri对象,如图层、数据框、边界和几何对象。在实际应用中,确保已安装ArcObjects SDK,并根据项目需求进行调整。 总的来说,ArcGIS 10中...
在这个教程中,我们将需要用到两个主要的工具:Clip和Make Feature Layer。 1. Clip工具:此工具用于从源数据中提取一部分区域,这部分区域由定义的边界(或“clipper”)决定。在我们的案例中,这个边界将是我们想...
通过这些文件,我们可以推测开发者首先从"quadtest.map"和"demdata"读取地形信息,然后利用"quadtree.cpp"和"quadtree.hpp"构建四叉树结构。"geometry.hpp"和"geometry.cpp"中的函数用于处理3D几何信息。"quadtest....
4. **.mxd** 文件:这是ArcGIS的Map Document文件,保存了地图布局、图层、图例、比例尺等信息,用户可以通过打开.mxd文件来查看和编辑GIS地图。 5. **.pdf** 文件:这里可能是关于SLU(可能指的是土地使用单元)...
描述中提到的“显示矢量层 (file) 显示矢量层 (map)”是指在GIS软件中加载和查看存储在文件中的矢量数据,并将其叠加到地图上显示。这通常涉及到地图投影的选择,以确保不同来源的数据能够正确地对齐和融合。 接...
通过以上步骤,我们不仅制作了土地利用类型图,还完成了村庄名称标注、评估边界导入、自定义符号应用以及面积统计和导出,为土地复垦提供了详细的数据支持。在实际操作中,根据具体的数据格式和项目需求,可能需要对...
这可以通过比较地图的当前位置和边界值来实现。 ```actionscript if (matrix.tx > 0) { matrix.tx = 0; } else if (matrix.tx ) { matrix.tx = maxLeftBound; } if (matrix.ty > 0) { matrix.ty = 0; } else if...
31. **复制MapControl中的Map到PageLayoutControl**:在地图控件和布局控件之间移动地图内容。 32. **判断编辑状态**:检查IWorkspaceEdit接口的IsEditing属性,确认是否在编辑模式。 33. **用点创建Polygon**:...
- `CLIP`: 用一个覆盖作为剪切边界,裁剪另一个覆盖,仅保留剪切边界内的部分。 - `IDENTIFY`: 在地图上选择特定位置,获取该位置的详细属性信息。 4. 分析命令 - `SUMMARY`: 提供统计信息,如点、线、面的数量,...
10. **画岛图**:两种方法可以实现,一是利用Sketch工具完成外部和内部轮廓,二是通过Intersect和Clip工具处理两个图斑,实现岛的创建。 11. **连接外界属性数据**:JOIN工具允许将外部属性数据(如.XSL文件)与...
例如,可以使用“Draw”工具来绘制边框图形,或者使用“Buffer”工具创建具有一定距离的边界,再通过“Clip”或“Erase”工具与地图数据结合,形成花边效果。 5. **自定义工具**:如果内置工具不能满足需求,可以...
或者使用Intersect和Clip工具结合,创建交集并剪切。 11. **共享属性数据**:JOIN工具可以将外部属性数据(如.xsl文件)关联到图层,但关联依赖于原始数据。Excel数据需满足特定格式,如第一行包含字段名,且字段名...
- **获取图层**:使用`axMapControl2.Map.get_Layer`方法获取到地图控件中的第一层。 - **转换为特征图层**:将获取到的图层转换为`IFeatureLayer`接口。 #### 4.3 多边形裁剪逻辑 - **判断条件**:检查是否已有一...
31. **将MapControl中的Map复制到PageLayoutControl中**:通过IMap和IActiveView接口实现地图的复制和显示。 32. **判断是否出于编辑状态**:检查IWorkspaceEdit的IsEditing属性以确定是否在编辑模式。 33. **用点...
此外,利用`Intersect`和`Clip`工具可以创建基于多个图斑的复杂图形,而`Union`、`Merge`和`Split`等工具则用于图斑的组合、合并与分割,满足不同场景下的需求。 #### 10. 连接外界属性数据 ArcMap的`JOIN`功能...
另一种方法则是利用`Editor`工具栏中的`Intersect`和`Clip`工具,来创建和剪切图斑。 #### 十一、连接外界属性数据 在需要将外部属性数据(如`.xls`文件)与GIS数据关联时,可以使用`JOIN`工具。需要注意的是,...
arcgis工具总结 1. 要素的剪切与延伸 实用工具 TASK 任务栏 Extend/Trim feature 剪切所得内容与你画线的方向有关。 2. 自动捕捉跟踪工具 ...例如,使用包含(Contain)方法,即使湖泊的边界和包含该...
font.CreateFont(-24, 0, 0, 0, FW_NORMAL, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, _T("Arial")); dc.SelectObject(&font); CString text = ...