OpenLayers根据两点连线

本文介绍如何利用OpenLayers库在地图上绘制从一点到另一点的直线连接。通过下载OpenLayers库并应用相关方法,可以实现在地图上的动态连线效果。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>根据经度纬度连线</title>
    <link rel="stylesheet" href="OpenLayers-2.13/theme/default/style.css" type="text/css">
	<script src="OpenLayers-2.13/lib/OpenLayers.js" type="text/javascript"></script>
  </head>
  <body>
  	<div id="map" class="smallmap"></div>
  	<script type="text/javascript">
  		/*
  		OpenLayers.Feature.Vector构造方法有三个参数:geometry、attributes、style。
  		geometry:此功能表示的几何图形。
  		OpenLayers.Geometry.fromWKT:给定一个给定的文本字符串的几何结构。它的参数为String,一个表示已知文本的几何结构的字符串。
  		OpenLayers.Geometry.LineString:一个线是一条曲线,一旦两点已被添加到它,不能少于二点长。构造方法为points,用于生成线点的数组。
  		*/
  		var points="-90 90,90 -90,100 50,150 80.66666";
  		var features=[
  			new OpenLayers.Feature.Vector(
  				OpenLayers.Geometry.fromWKT("LineString("+points+")"
OpenLayers是一个强大的JavaScript库,用于创建交互式地图。要在两点之间绘制一个三角形,你可以利用它的矢量图层(Vector Layer)和几何对象(Geometry),例如SimpleGeometry或Polygon。以下是一个基本步骤: 1. 首先,你需要创建一个`VectorSource`,这将是你的数据源: ```javascript const vectorSource = new ol.source.Vector({ // 你可以在这里添加数据点,比如两个点 }); ``` 2. 创建两个点Feature,并将它们添加到source中: ```javascript const point1 = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon1, lat1])), }); vectorSource.addFeature(point1); const point2 = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([lon2, lat2])), }); vectorSource.addFeature(point2); ``` 3. 创建一个`Triangle`几何,通常由三个点组成,这里我们可以计算三点连线: ```javascript // 计算第三点坐标 const point3 = ol.extent.getCenter([ ol.proj.transform([lon1, lat1], 'EPSG:4326', 'EPSG:3857'), ol.proj.transform([lon2, lat2], 'EPSG:4326', 'EPSG:3857') ]); const triangle = new ol.geom.Polygon([[point1.getGeometry().getCoordinates(), point2.getGeometry().getCoordinates(), point3]]); ``` 4. 将这个三角形添加到一个新的Feature并添加到source中: ```javascript const triangleFeature = new ol.Feature({geometry: triangle}); vectorSource.addFeature(triangleFeature); ``` 5. 最后,在地图上添加矢量图层来显示三角形: ```javascript const layer = new ol.layer.Vector({ source: vectorSource, }); map.addLayer(layer); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值