supermap 学习系列(三)——在地图上绘制线段(鼠标放在上面时改变其颜色)
2014-02-26 17:17
375 查看
学习笔记,方便以后查询。
效果图如下:
初始地图(两条线段不是很明显)
放大地图,鼠标放在线段上:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="json_parse.js"></script> <script src="toJSON.js"></script> <script src="libs/SuperMap.Include.js"></script> <script type="text/javascript"> var selectStyle = { fillColor: "#ffcc33", strokeColor: "#ccff99", strokeWidth: 2, graphZIndex: 1 }; var map, layer, vectorLayer, control, selectFeature; // 设置访问的GIS服务地址 var url = "http://localhost:8090/iserver/services/map-ChinaTestWorkPlace/rest/maps/ChinaTest"; function GetMap() { // 创建地图对象 map = new SuperMap.Map("map"); //control = new SuperMap.Control.MousePosition(); //该控件显示鼠标移动时,所在点的地理坐标。 //map.addControl(control); //添加控件 // 创建图层对象 layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url, { transparent: true, cacheEnabled: true }, { maxResolution: "auto" }); layer.events.on({ "layerInitialized": addLayer }); vectorLayer = new SuperMap.Layer.Vector(); } // 加载图层 function addLayer() { // 向Map添加图层 map.addLayers([layer, vectorLayer]); map.setCenter(new SuperMap.LonLat(116.409749, 39.912344), 1); //添加大头针标记 var markerlayers = new SuperMap.Layer.Markers("Markers"); map.addLayer(markerlayers); var marker = new SuperMap.Marker(new SuperMap.LonLat(116.409749, 39.912344)); markerlayers.addMarker(marker); //例如点击marker弹出popup marker.events.on({ "mouseover": openInfoWin, "mouseout": closeInfoWin, "click": clickHandler, "scope": marker // 还不清楚这行代码是什么意思! 如果有大神赐教,我不甚感激! }); // 添加两条线段 var points1 = [new SuperMap.Geometry.Point(116.409749, 39.912344), new SuperMap.Geometry.Point(114.358451, 38.29168)]; var points2 = [new SuperMap.Geometry.Point(116.409749, 39.912344), new SuperMap.Geometry.Point(117.155649, 39.166468)]; var riverLine1 = new SuperMap.Geometry.LineString(points1); var riverLine2 = new SuperMap.Geometry.LineString(points2); lineFeature1 = new SuperMap.Feature.Vector(riverLine1); lineFeature2 = new SuperMap.Feature.Vector(riverLine2); vectorLayer.addFeatures([lineFeature1, lineFeature2]); selectFeature = new SuperMap.Control.SelectFeature(vectorLayer, { onSelect: onFeatureSelect, onUnselect: onUnFeatureSelect, hover: true }); selectFeature.repeat = true; selectFeature.toggle = true; map.addControl(selectFeature); selectFeature.activate(); } var infowin = null; function openInfoWin() { closeInfoWin(); var marker = this; var lonlat = marker.lonlat; var contentHTML = "<div style='font-size:.8em; opacity: 0.8; overflow-y:hidden;'>"; contentHTML += "<div>Hello Word</div></div>"; var popup = new SuperMap.Popup.FramedCloud("popwin", new SuperMap.LonLat(lonlat.lon, lonlat.lat), null, contentHTML, null, true); infowin = popup; map.addPopup(popup); } function closeInfoWin() { if (infowin) { try { infowin.hide(); infowin.destroy(); } catch (e) { } } } function clickHandler() { closeInfoWin(); var marker = this; alert("Hello Word,我被点击了!"); } function onUnFeatureSelect(feature) { feature.style = style; vectorLayer.redraw(); } function onFeatureSelect(feature) { var f = new SuperMap.Feature.Vector; f.geometry = feature.geometry.clone(); f.style = style; vectorLayer.addFeatures(f); } </script> </head> <body onload="GetMap()"> <div id="map" style="height: 640px; width: 720px; border: 1px solid red; margin-left: auto; margin-right: auto;"></div> </body> </html>
效果图如下:
初始地图(两条线段不是很明显)
放大地图,鼠标放在线段上:
相关文章推荐
- opencv学习-鼠标画彩色图(改变绘制颜色和线宽)
- supermap学习系列(六)——上一篇的另一种版本(鼠标单击或者移动,高亮显示并弹出对话框)
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字 - 流星絮语 JAVA学习笔记 - CSDNBlog
- supermap 学习系列(一)——加载地图(rest方式)
- WEBGL学习【十三】鼠标点击立方体改变颜色的原理与实现
- supermap学习系列(七)——用户自己在地图上添加点、线、面标注
- MKMapVIew学习系列2 - 在地图上绘制出你运行的轨迹
- 【学习笔记01】:hover为DIV添加鼠标悬停时改变颜色的效果
- JavaSE基础 awt Button 鼠标放在按钮上背景颜色改变,鼠标离开背景颜色恢复
- supermap 学习系列(二)——添加标注(鼠标点击弹出窗口)
- 当鼠标放在div上时改变背景颜色
- supermap学习系列(五)——上一篇的续集(鼠标单击或者移动,高亮显示并弹出对话框)
- supermap 学习系列(四)——鼠标到哪里亮哪里(高亮显示)
- 鼠标放在button按钮颜色改变、、input按钮怎么添加超链接
- 鼠标放在文章标题上,下划线改变颜色
- 鼠标放在文章标题上,下划线改变颜色
- DataGrid行颜色随鼠标点击改变
- [Cocoa]_[初级]_[鼠标移动到NSButton上面和移开NSButton时,控件背景颜色的变化]
- 当鼠标移动时,改变datagrid中的颜色
- 使用鼠标点击事件改变标题颜色