Openlayers 根据坐标点画点线圆多边形

console.log(geom.getCenter());

console.log(geom.getRadius());

alert(“圆形:”+geom.getCenter()+“,”+geom.getRadius());

} else {

const points = geom.getCoordinates();

console.log(points,“ddddddd”);

alert(“返回坐标:”+points);

}

map.removeInteraction(draw);

}, this);

map.addInteraction(draw);

}

}

addInteraction();

typeSelect.onchange = function () {

map.removeInteraction(draw);

addInteraction();

};

//向地图中添加点击处理程序以呈现弹出式窗口。

//map.on(‘click’,function (evt) {

//坐标

//var coordinate = evt.coordinate;

// console.log(coordinate);

//ol.proj.transform(coordinate, source, destination)来转换不同的坐标点,

// 比如,将地理坐标系108.4,23.7转换成墨卡托坐标系

//var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(

// coordinate,‘EPSG:3857’,‘EPSG:4326’

// ));

// content.innerHTML = ‘

  • ’+’

  • ’+“坐标系:”+’’+’’+hdms+’’+’’+’

  • ’+’

’;

//verlay.setPosition(coordinate);

// });

function drawgeometry(){

addInteraction();

}

var displayarr = [];

// 清除所有

function areaAllClear(){

if(displayarr.length>0){

for(var i=0; i<displayarr.length;i++){

source.removeFeature(displayarr[i][1]);

}

displayarr = [];

}

}

function clearOne(){

var str = 1;

areaClear(str);

}

// 清除指定

function areaClear(data){

var temparr;

if(data.indexOf(“,”)>-1){

temparr = data.split(“,”);

alert(‘str中包含bc字符串’);

}

var temparr = data.split(“,”);

if(temparr.length>0){

for(var i=0; i<temparr.length;i++){

for(var j=0; j<displayarr.length;j++){

if(temparr[i] == displayarr[j][0]){

source.removeFeature(displayarr[j][1]);

}

}

}

}

}

// 绘制圆形 [[13402105.463638451,4313876.565330492],[13407761.803731553,4316322.550235618],[13404589.66705772,4319418.249881168],[13401914.371067738,4316475.424292188]])

function drawcircle(){

var str = “13401952.589581877,4315481.742924481,2197.1491052936763”;

var pointarr = str.split(“,”);

var arr = [];

for(var i = 0;i<pointarr.length;i++){

arr.push(pointarr[i]-0);

}

console.log(arr[0]+“=”+arr[1]+“=”+arr[2]);

//var circle1 = new ol.Feature(new ol.geom.Circle([13401952.589581877,4315481.742924481],2197.1491052936763));

var circle1 = new ol.Feature(new ol.geom.Circle([arr[0],arr[1]], arr[2]));

source.addFeature(circle1);

displayarr.push([1,circle1]);

}

//绘制线段

function drawLines(){

var str = “13402105.463638451,4313876.565330492,13407761.803731553,4316322.550235618,13404589.66705772,4319418.249881168,13401914.371067738,4316475.424292188”;

var distrivtarr = str.split(“,”);

var pointarr = [];

for(var i=0; i<distrivtarr.length-1;){

pointarr.push([distrivtarr[i]-0,distrivtarr[i+1]-0]);

console.log(i+“=====”+distrivtarr[i]+“,”+distrivtarr[i+1]);

i=i+2;

}

// var line = new ol.geom.LinearRing(pointarr);

var LineString1 = new ol.Feature(new ol.geom.LineString([[13402105.463638451,4313876.565330492],[13407761.803731553,4316322.550235618],[13404589.66705772,4319418.249881168],[13401914.371067738,4316475.424292188]]));

var LineString2 = new ol.Feature(new ol.geom.LineString(pointarr));

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

vcTg2V-1710837033774)]
[外链图片转存中…(img-9mC478Yo-1710837033775)]
[外链图片转存中…(img-sxejTp6k-1710837033775)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-xOAzzuMA-1710837033776)]

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenLayers 5 是一个开源的 JavaScript 库,用于创建交互式地图应用。要实现在地图上绘制坐标点之间的连线,可以按照以下步骤进行: 1. 首先,在 HTML 文件中导入 OpenLayers 库和样式文件: ```html <link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" /> <script src="https://openlayers.org/en/v5.3.0/build/ol.js"></script> ``` 2. 创建一个地图容器的 div 元素: ```html <div id="map" style="width: 400px; height: 300px;"></div> ``` 3. 在 JavaScript 文件中,创建一个用于显示地图的 map 对象: ```javascript var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: ol.proj.fromLonLat([0, 0]), zoom: 2 }) }); ``` 4. 创建一个矢量图层和一个矢量源对象: ```javascript var vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector() }); map.addLayer(vectorLayer); var vectorSource = vectorLayer.getSource(); ``` 5. 为地图添加单击事件,获取点击位置的坐标: ```javascript map.on('click', function(event) { var coordinate = event.coordinate; // 在此处可以将坐标点添加到 vectorSource 中 }); ``` 6. 在单击事件的回调函数中,创建一个点要素并添加到矢量源对象中: ```javascript var pointFeature = new ol.Feature({ geometry: new ol.geom.Point(coordinate) }); vectorSource.addFeature(pointFeature); ``` 7. 如果要连接这些坐标点,可以使用 ol.geom.LineString 创建一个线要素,然后添加到矢量源对象中: ```javascript var lineStringFeature = new ol.Feature({ geometry: new ol.geom.LineString(coordinates) }); vectorSource.addFeature(lineStringFeature); ``` 最后,你将在地图上看到所有的坐标点以及它们之间的连线。这是使用 OpenLayers 5 实现坐标点划线的基本步骤。可以通过进一步自定义样式和处理事件来增加功能。 ### 回答2: OpenLayers 5是一个开源的JavaScript库,可用于在Web上实现地图功能。如果要在地图上绘制坐标点之间的连线,可以按照以下步骤进行: 1. 初始化地图:首先,需要在页面上创建一个地图容器,然后初始化地图对象。可以指定地图的中心坐标、缩放级别等属性。 2. 添加图层:接下来,创建一个矢量图层,并将其添加到地图中。这样可以在地图上绘制矢量要素,如点、线、面等。 3. 创建点要素:使用OpenLayers的Point类,可以创建一个点要素,其中包含要绘制的坐标点的经纬度信息。 4. 创建线要素:使用OpenLayers的LineString类,可以创建一个线要素,其中包含要绘制的点的坐标序列。 5. 绘制要素:将点要素添加到图层中,再将线要素添加到图层中。这样,地图上就可见了这些要素。 以下是一个示例代码片段,展示了如何在OpenLayers 5中实现坐标点划线的功能: ```javascript // 初始化地图 var map = new ol.Map({ target: 'map-container', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: ol.proj.fromLonLat([0, 0]), zoom: 10 }) }); // 创建矢量图层 var vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector() }); map.addLayer(vectorLayer); // 创建点要素 var point1 = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon1, lat1])) }); var point2 = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon2, lat2])) }); // 创建线要素 var lineFeature = new ol.Feature({ geometry: new ol.geom.LineString([ ol.proj.fromLonLat([lon1, lat1]), ol.proj.fromLonLat([lon2, lat2]) ]) }); // 添加要素到图层 vectorLayer.getSource().addFeature(point1); vectorLayer.getSource().addFeature(point2); vectorLayer.getSource().addFeature(lineFeature); ``` 以上代码中的`map-container`是在HTML页面上用来容纳地图的一个元素,`lon1`、`lat1`、`lon2`和`lat2`是两个坐标点的经纬度值。通过将点要素和线要素添加到矢量图层中,即可在地图上看到这些要素,实现坐标点的划线功能。 ### 回答3: 使用OpenLayers 5实现坐标点划线的方法如下: 首先,创建一个地图容器,可以使用HTML中的一个div元素作为容器: ```html <div id="map" style="width: 100%; height: 500px;"></div> ``` 然后,在JavaScript中,创建一个OpenLayers地图实例并将其显示在地图容器中: ```javascript var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: ol.proj.fromLonLat([0, 0]), zoom: 4 }) }); ``` 接下来,创建一个用于存储坐标点的数组: ```javascript var coordinates = [ [0, 0], // 第一个点的经纬度 [10, 10], // 第二个点的经纬度 [20, 20], // 第三个点的经纬度 // ... ]; ``` 然后,使用OpenLayers的Vector模块创建一个特征集合,并将坐标点添加到特征集合中: ```javascript var features = new ol.Collection(); var feature = new ol.Feature({ geometry: new ol.geom.LineString(coordinates) }); features.push(feature); ``` 再创建一个用于显示特征集合的矢量层: ```javascript var vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector({ features: features }) }); ``` 最后,将矢量层添加到地图上,就可以在地图上显示坐标点的划线了: ```javascript map.addLayer(vectorLayer); ``` 需要注意的是,以上代码只是一个简单示例,实际应用中您可能需要根据具体需求调整参数和添加其他功能。此外,还需要确保引入了OpenLayersJavaScript文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值