openLayers2 画图标
来源:互联网 发布:软件著作权登记申请表 编辑:程序博客网 时间:2024/06/06 01:25
openLayers2 画图标
介绍:这里主要是实现可以手动在地图上添加图标的方法.画出来的图标可以点击弹出提示信息.
直接上代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>创建一个简单的电子地图</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <!-- 加载OpenLayers类库 --> <script src="../ol2/OpenLayers.js"></script> <style type="text/css"> html,body{width: 100%; height: 100%; margin: 0; padding: 0;} </style> <!-- 关键代码在这里了 --> <script type="text/javascript"> var map; var markers ; var drawPoint,pointLayer; function init(){ // 使用指定的文档元素创建地图 map = new OpenLayers.Map("map"); // 创建一个OpenStreeMap raster layer // 把这个地图增加到map中 var osm = new OpenLayers.Layer.OSM(); map.addLayer(osm); // 设定视图缩放地图程度为最大 map.zoomToMaxExtent(); map.addControl(new OpenLayers.Control.LayerSwitcher());//图层控制 map.addControl(new OpenLayers.Control.MousePosition());//鼠标坐标 } function PD(element) { pointLayer = new OpenLayers.Layer.Vector("Point Layer"); map.addLayer(pointLayer); drawPoint = new OpenLayers.Control.DrawFeature(pointLayer,OpenLayers.Handler.Point); map.addControl(drawPoint); drawPoint.activate(); //监听 featureadded 事件,当添加要素时会触发此事件 drawPoint.events.on({"featureadded": drawCompleted}); } //定义 drawCompleted 函数,触发 click 事件会调用此函数 //事件参数 eventArgs 包含了绘制的要素 feature 信息 {feature: featureObj} function drawCompleted(eventArgs) { // 获取传入参数 eventArgs 的几何信息 var geometry = eventArgs.feature.geometry; /* geometry = new OpenLayers.Geometry.Point(129,30); geometry.transform( new OpenLayers.Projection('EPSG:4326'), new OpenLayers.Projection('EPSG:900913') ); */ //alert(geometry.x+","+geometry.y); drawPoint.deactivate(); addmarker(new OpenLayers.LonLat(geometry.x,geometry.y)); pointLayer.destroy(); } function addmarker(p) { markers = new OpenLayers.Layer.Markers( "Markers" ); map.addLayer(markers); size = new OpenLayers.Size(21, 25); calculateOffset = function(size) { return new OpenLayers.Pixel(-(size.w/2), -size.h); }; var icon = new OpenLayers.Icon( '../imgs/1.jpg', size, null, calculateOffset); var make=new OpenLayers.Marker(p, icon) markers.addMarker(make); //markers.addMarker(new OpenLayers.Marker(p,icon.clone())); var popup = new OpenLayers.Popup.FramedCloud("Popup", p, null, '<a target="_blank" href="http://openlayers.org/">We</a> ' + 'could be here.<br>Or elsewhere.', null, true // <-- true if we want a close (X) button, false otherwise ); map.addPopup(popup); } </script></head><body onload="init()"> <div id="tools"> <button id="PointDraw" onclick="PD()" value="on">画点</button> </div> <div id="map" style="width: 100%; height: 100%;"></div> ![代码效果图] <img src="http://img.blog.csdn.net/20170718160834264?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgxMjIxNzc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ></img></body></html>
阅读全文
0 0
- openLayers2 画图标
- openlayers2 vector
- openlayers2 笔记
- OpenLayers2---Features
- 画图标
- openlayers2中selectcontrol用法
- Openlayers2唯一值渲染
- openlayers2渐变色渲染
- OpenLayers2---WMS服务
- OpenLayers2 --- Feature Event
- Openlayers2中统计图的实现
- Openlayers2卷帘功能的实现
- Openlayers2中聚类的动态实现
- Openlayers2中vector扩展FeatureLayer
- Android画图标
- 画图:
- 画图
- 画图
- python 如何设置多线程
- 仿京东淘宝等首页广告弹窗广告 dialog
- C++重点知识整理
- SyntaxError: Non-ASCII character '\xe4'错误
- Android之android.os.NewWorkOnMainThreadException解决办法
- openLayers2 画图标
- mysql主从复制(版本不一致)
- IE8浏览器的rgba
- 配置ionic环境
- leetcode 447. Number of Boomerangs
- TypeScript 2 : 获取当前日期及前后范围日期【Array】
- get方法传递参数时中文乱码的解决方法
- HTML特殊符号
- Linux环境下静态库的生成和使用 (.a文件)