<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>客户端距离量算</title>
<script src='libs/SuperMap.Include.js'></script>
<script type="text/javascript">
var map, layer, vectorLayer,control,select,
host = document.location.toString().match(/file:\/\//)?"http://localhost:8090":'http://' + document.location.host,
url="http://supermap.com.cn:8090/iserver/services/map-changchun/rest/maps/长春市区图";
function init(){
map = new SuperMap.Map("map",{controls: [
new SuperMap.Control.ScaleLine(),
new SuperMap.Control.Zoom(),
new SuperMap.Control.Navigation({
dragPanOptions: {
enableKinetic: true
}
})]
});
layer = new SuperMap.Layer.TiledDynamicRESTLayer("长春", url, {transparent: true, cacheEnabled: true}, {maxResolution:"auto"});
layer.events.on({"layerInitialized":addLayer});
//存储文字 最终线样式 删除按钮 动态绘制过程中保存的内容
vectorLayer = new SuperMap.Layer.Vector("点和文字");
vectorLayerLine = new SuperMap.Layer.Vector("线");
vectorLayerX = new SuperMap.Layer.Vector("删除");
vectorLayerTmp = new SuperMap.Layer.Vector("临时");
//添加删除事件
select = new SuperMap.Control.SelectFeature(vectorLayerX, {onSelect: onFeatureSelect});
//激活删除事件
map.addControl(select);
}
//点击删除量算按钮
function onFeatureSelect(feature) {
vectorLayer.removeAllFeatures();
vectorLayerLine.removeAllFeatures();
vectorLayerX.removeAllFeatures();
select.deactivate();
}
function addLayer() {
map.addLayers([layer,vectorLayerLine,vectorLayer,vectorLayerTmp,vectorLayerX]);
map.setCenter(new SuperMap.LonLat(4503.62 , -3861.91), 0);
measureControls = {
//距离量算
line:new SuperMap.Control.Measure(
SuperMap.Handler.Path, {immediate:true}
)
};
//监听 measure 和 measurepartial 两个事件,量算完成时触发时
//量算完成时触发 measure 事件,当点被添加到量算过程中时触发 measurepartial
for(var key in measureControls){
control = measureControls[key];
control.events.on({
"measure": handleMeasure,
"measurepartial": handleMeasurements
});
//添加控件到 map 上
map.addControl(control);
}
}
function addLabel() {
vectorLayer.removeAllFeatures();
vectorLayerLine.removeAllFeatures();
vectorLayerTmp.removeAllFeatures();
vectorLayerX.removeAllFeatures();
control.activate();
}
//最终双击结束
function handleMeasure(event) {
control.deactivate();
vectorLayerTmp.removeAllFeatures();
//获取当前坐标点
var pointStart = new SuperMap.Geometry.Point(event.geometry.components[(event.geometry.components.length-1)].x,event.geometry.components[(event.geometry.components.length-1)].y);
//克隆坐标点 用于显示关闭按钮
var pointCopy = pointStart.clone();
//单位转换
var unitString = "";
if(event.units == "m") {
unitString = "米";
}else if(event.units == "km") {
unitString = "公里";
}else{
unitString = "";
}
var f = new SuperMap.Feature.Vector;
f.geometry = pointStart;
f.style= {label:"总长:" + event.measure.toFixed(1)+unitString,
fontColor:'red',
strokeColor: "red",
strokeOpacity: 1,
fillColor: "#ffffff",
labelXOffset:20,
labelYOffset:20,
pointRadius: 4};
//删除按钮
var fc = new SuperMap.Feature.Vector;
fc.geometry = pointCopy;
fc.style= {
externalGraphic: "./Error.png",
strokeColor: "red",
graphicWidth:16,
graphicHeight:16,
strokeOpacity: 1,
fillColor: "#ffffff",
graphicXOffset:10,
pointRadius: 4};
//保存之前绘制的节点用于显示其他样式
var points = [];
for(var i = 0;i < event.geometry.components.length; i++) {
points.push(new SuperMap.Geometry.Point(event.geometry.components[i].x, event.geometry.components[i].y));
}
var qu = new SuperMap.Geometry.LineString(points);
//保留线样式
var ff = new SuperMap.Feature.Vector;
ff.geometry = qu;
ff.style = {
strokeColor: "#FC854D",
strokeWidth: 2.5,
pointerEvents: "visiblePainted",
fillColor: "#FC854D",
fillOpacity: 1};
vectorLayerLine.addFeatures(ff);
vectorLayer.addFeatures(f);
vectorLayerX.addFeatures(fc);
//激活选择要素的控件
select.activate();
}
//绘制过程中单机和移动事件
function handleMeasurements(event) {
//获取传入参数 event 的 geometry 信息
var geometry = event.geometry;
<!-- //获取传入参数 event 的 type 信息(click指示的是点击事件,move指示的是移动事件) -->
var type=event.type;
//单位转换
var unitString = "";
if(event.units == "m") {
unitString = "米";
}else if(event.units == "km") {
unitString = "公里";
}else{
unitString = "";
}
if(type == 'click') {
//当==2时为起点
if(event.geometry.components.length == 2) {
var pointStart = new SuperMap.Geometry.Point(event.geometry.components[(event.geometry.components.length-1)].x,event.geometry.components[0].y);
var f = new SuperMap.Feature.Vector;
f.geometry = pointStart;
f.style= {
label:'起点',
fontColor:'red',
strokeColor: "red",
strokeOpacity: 1,
fillColor: "#ffffff",
labelXOffset:20,
labelYOffset:20,
pointRadius: 4};
vectorLayer.addFeatures(f);
}else {
//单机节点
var pointStart = new SuperMap.Geometry.Point(event.geometry.components[(event.geometry.components.length-1)].x,event.geometry.components[(event.geometry.components.length-1)].y);
var f = new SuperMap.Feature.Vector;
f.geometry = pointStart;
f.style= {
label: + event.measure.toFixed(1)+unitString,
fontColor:'red',
strokeColor: "red",
strokeOpacity: 1,
fillColor: "#ffffff",
labelXOffset:20,
labelYOffset:20,
pointRadius: 4};
vectorLayer.addFeatures(f);
}
}else {
//临时显示点信息
没有合适的资源?快使用搜索试试~ 我知道了~
仿百度地图,实现客户端量算
共60个文件
png:45个
js:7个
gif:3个
5星 · 超过95%的资源 需积分: 15 158 下载量 155 浏览量
2016-02-17
17:02:24
上传
评论 10
收藏 418KB RAR 举报
温馨提示
仿百度地图,使用iClient for JavaScript实现客户端量算
资源推荐
资源详情
资源评论
收起资源包目录
客户端量算.rar (60个子文件)
客户端量算
客户端量算demo.html 9KB
Error.png 4KB
theme
images
controlSkinWhite
zoom-plus-mini.png 1KB
overView.png 1KB
zoom-minus-mini.png 1KB
layer-switcher-maximize.png 2KB
minimize.png 1KB
zoom_street.png 3KB
zoom_province.png 3KB
zoom-maxextent-mini_one.png 3KB
west-mini.png 6KB
marker.png 5KB
shadow-popup-subject.png 6KB
zoombar_center.png 3KB
blank.gif 42B
controlSkinBlue
zoom-plus-mini.png 3KB
overView.png 3KB
zoom-minus-mini.png 3KB
layer-switcher-maximize.png 3KB
layer-switcher-minimize.png 3KB
minimize.png 3KB
layer-switcher-off.png 333B
layer-switcher-on_b.png 444B
south-mini.png 6KB
zoombar.png 3KB
marker-gold.png 5KB
close.gif 193B
cluster1.png 4KB
fillStyle
System 5.png 3KB
System 3.png 3KB
System 2.png 3KB
System 6.png 3KB
System 4.png 3KB
System 7.png 3KB
cursors
PanDown.cur 326B
Pan.cur 326B
slider.png 3KB
cluster3.png 3KB
zoom-maxextent-mini.png 6KB
cluster2.png 4KB
overview_replacement.gif 79B
east-mini.png 6KB
layer-switcher-on.png 467B
cloud-popup-relative.png 6KB
layer-switcher-off_b.png 409B
north-mini.png 6KB
shadow-popup-corner.png 3KB
cluster4.png 1KB
zoombar_glide.png 3KB
zoom_city.png 3KB
zoom_country.png 3KB
default
google.css 306B
style.css 7KB
libs
Lang
en.js 3KB
zh-CN.js 3KB
jquery-1.11.1.js 276KB
SuperMap-7.1-11828.js 564KB
toJSON.js 2KB
iConnectorBaidu.js 24KB
SuperMap.Include.js 2KB
共 60 条
- 1
supermapsupport
- 粉丝: 5303
- 资源: 668
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页