<style type="text/css">
#map {
width: 640px;
height: 475px;
border: 1px solid black;
}
.olControlPanel div {
display:block;
position: absolute;
top: 0px;
left: 190px;
width: 60px;
height: 23px;
margin: 5px;
}
.olControlPanel .olControlMouseDefaultsItemActive {
background-image: url("/openlayers/img/Pan.gif");
}
.olControlPanel .olControlMouseDefaultsItemInactive {
background-image: url("/openlayers/img/PanSelected.gif");
}
.olControlPanel .olControlZoomBoxItemInactive {
width: 60px;
height: 23px;
position: absolute;
top: 0px;
left: 250px;
background-image: url("/openlayers/img/ZoomInSelected.gif");
}
.olControlPanel .olControlZoomBoxItemActive {
width: 60px;
height: 23px;
position: absolute;
top: 0px;
left: 250px;
background-image: url("/openlayers/img/ZoomIn.gif");
}
.olControlPanel .olControlSelectFeatureItemInactive {
width: 60px;
height: 23px;
position: absolute;
top: 0px;
left: 310px;
background-image: url("/openlayers/img/InfoSelected.gif");
}
.olControlPanel .olControlSelectFeatureItemActive {
width: 60px;
height: 23px;
position: absolute;
top: 0px;
left: 310px;
background-image: url("/openlayers/img/Info.gif");
}
</style>
JS代码,核心部分。
<script src="/openlayers/OpenLayers.js"></script>
<script type="text/javascript">
<!--
//定义全局变量
var map, layer, selectControl, selectedFeature;
//关闭弹出窗口的函数
function onPopupClose(evt) {
selectControl.unselect(selectedFeature);
}
//构造弹出窗口的函数
function onFeatureSelect(feature) {
selectedFeature = feature;
popup = new OpenLayers.Popup.Anchored("chicken",
feature.geometry.getBounds().getCenterLonLat(),
new OpenLayers.Size(250,75),
"<div style='font-size:.8em'>" + feature.attributes['cq:LNAME'] +"</div>",
null, true, onPopupClose);
feature.popup = popup;
map.addPopup(popup);
}
//销毁弹出窗口的函数
function onFeatureUnselect(feature) {
map.removePopup(feature.popup);
feature.popup.destroy();
feature.popup = null;
}
//地图和页面加载函数
function init(){
//设置地图缩放范围和缩放等级,0级比例尺最小
map = new OpenLayers.Map( $('map'), { maxScale: 500, minScale: 500000, numZoomLevels: 5 });
//加载行政区图层,WMS栅格图像
layer = new OpenLayers.Layer.WMS( "District",
"http://192.98.151.17:8081/geoserver/wms", {layers: 'cq:GMAP_DISTRICT'} );
map.addLayer(layer);
//加载水系图层,WMS栅格图像
layer = new OpenLayers.Layer.WMS( "Water",
"http://192.98.151.17:8081/geoserver/wms", {layers: 'cq:GMAP_LAKE', 'transparent': true, format: 'image/png' } );
map.addLayer(layer);
//加载单位图层,WFS矢量数据,由openlayers在客户端绘制,注意:数量太多会导致速度缓慢
layer = new OpenLayers.Layer.WFS( "Unit",
"http://192.98.151.17:8081/geoserver/wfs", {typename: 'cq:GPOI_GOV'},
{
typename: 'unit',
featureNS: 'http://www.openplans.org/cq',
extractAttributes: true,
maxfeatures: 10,
textAttrToDisplay: 'lname'
} );
map.addLayer(layer);
//在地图上添加按钮和工具条
zb = new OpenLayers.Control.ZoomBox();
var panel = new OpenLayers.Control.Panel({defaultControl: zb});
selectControl = new OpenLayers.Control.SelectFeature(layer, {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect, hover: true});
panel.addControls([
new OpenLayers.Control.MouseDefaults(), zb, selectControl
]);
map.addControl(panel);
map.addControl(new OpenLayers.Control.PanZoomBar({zoomWorldIcon:false}));
map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false}));
map.addControl(new OpenLayers.Control.MousePosition());
//设置初始地图的中心坐标和缩放等级
map.setCenter(new OpenLayers.LonLat(106.5, 29.5), 3);
}
// -->
</script>
HTML代码
<body onload="init()">
<h1>OpenLayers Test</h1>
<div id="panel"></div>
<div id="map"></div>
<textarea style="display:none" id="serialize" cols="96" rows="10"/>
</body>
相关推荐
该代码基于ArcGIS API for JavaScript实现了图层缩放至某个范围
鼠标经过弹出层,鼠标经过弹出层,鼠标经过弹出层,鼠标经过弹出层
PS批量缩放选中图层不改变图片中心位置脚本,您可以将脚本放入Photoshop/Presets/Scripts文件夹并从File → Scripts菜单访问它。Photoshop CC 2019测试正常。
arcgis和supermap中多个图层合并为一个图层,也是地理信息系统数据处理常常要遇到的问题。
ArcGIS中用一个图层批量剪切多个批量
Arcgis获取多个图层叠加后相交的点、线信息,用于空间分析,图层包括shp文件、矢量数据文件,将两个图层进行叠加分析,将两个图层中空间关系能够相交的部分提取出来,单独生成一个图层,该图层同时拥有两个图层的...
图层旋转缩放效果的实现 博客地址:http://blog.csdn.net/dingxiaowei2013/article/details/11553555
MapGIS和ArcGIS将wt、wl、wp文件转为shp格式
Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题),大屏项目显示云南省3D的地图,可拖拽缩放、地图打点、点击图标弹框等等功能。 ## 使用 - 启动调试服务: `npm start` - 构建 dist: `npm run ...
在实际开发中我们通常会遇到同时显示多个图层,并且还要实时显示和隐藏各图层的需求,如同 ArcGIS 的图层列表那样,界面左侧显示图层列表,列出当前已加载的所有图层,同时每个图层前面有复选框可以控制图层的显示/...
基于ArcGIS engine 10.4.1做的一个将多个mxd图层合并到一个mxd的小工具,在debug里面有可以直接使用的exe文件
CAD插件-批量删除多个dwg指定图层 可批量删除dwg的指定图层,需批量删除图层的dwg与指定的图层txt放同一文件夹内
jquery 弹出放大图层 很轻易地实现了flash般的效果.
很好用的图层制作工具。之前有尝试过很多版本,有些功能不全,有些用着麻烦。这个工具界面简单功能也够用。
网页上列出小图,当鼠标放上去时 显示带有标题的放大之后的大图,并且大图跟踪鼠标移动,鼠标移出小图,大图层消失。
通过快捷方式一次调整多个图层的大小(不缩放) Sketch Resize是为创建的插件。 它为多个选定图层提供了不成比例的,无约束的调整大小。 它是通过快捷方式触发的,不需要到达或集中检查面板。 给定包含多个图层的...
antv l7 实现自定义地图 以及地图抬高图层 以及散点轮播显示弹窗 鼠标悬浮弹窗
GOOGLE图层制作工具kmlgenerator
需要大量、批量出图者的福音、批量出图工具集成:支持多个mxd文件批量出图、支持单个mxd文件批量分图斑出图(自动更改图件标题等要素)、支持多个mxd文件按照图层出图!
网优图层工具V7.0,可以制作站点图层,创建点,小区图层。图层格式自选,需要哪种即可制作哪种,方便易上手!