arcgis利用经纬度计算多边形面积

你好 请问一直多个点的经纬度怎么计算这些点围成的面积,我用的是WGS84坐标系。
我计算出来的面积是0.00012,但是没有单位,不知道如何让他显示成平方米
数据如下:
30.5948166666666 122.1237166666660
30.5943666666666 122.1201500000000
30.5942833333333 122.1199666666660
30.5940833333333 122.1181833333330
30.5938666666666 122.1174166666660
30.5937333333333 122.1172833333330
30.5921833333333 122.1183333333330
30.5913833333333 122.1200333333330
30.5910333333333 122.1210000000000
30.5910666666666 122.1213166666660
30.5914500000000 122.1219166666660
30.5917500000000 122.1226833333330
30.5918166666666 122.1232666666660
30.5925000000000 122.1221000000000
30.5929333333333 122.1216666666660
30.5933500000000 122.1213500000000
30.5939000000000 122.1215333333330
30.5942333333333 122.1218333333330
30.5947333333333 122.1236333333330

0

2个回答

计算方法比较简单,主要是求出多边形外接矩形已米为单位面积和已经纬度为单位面积比值,然后用这个比值乘以多边形经纬度为单位面积,即可得出这个多边形以米为单位面积。

double GetArea(const vector& ls)
{
if (ls.size() < 4)
return 0;

double sum = 0;

for (size_t i=0; i<ls.size()-1; ++i)
{
    const Coordinate& p = ls[i];
    const Coordinate& q = ls[i+1];
    sum += (p.x + q.x) * (q.y - p.y);
}

return sum/2;

}

double GetPrjArea(const vector &ls)
{
if (ls.size() < 4)
return 0;

double dArea = GetArea(ls);
dArea = abs(dArea);
if (dArea == 0)
    return 0;

double xmin, ymin, xmax, ymax;
xmin = xmax = ls[0].x;
ymax = ymin = ls[0].y;

for (size_t i=1; i<ls.size(); ++i)
{
    const Coordinate& p = ls[i];
    xmin = min(xmin, p.x);
    ymin = min(ymin, p.y);
    xmax = max(xmax, p.x);
    ymax = max(ymax, p.y);
}

Coordinate p1, p2;
p1.x = xmin;
p1.y = (ymin+ymax)/2;
p2.x = xmax;
p2.y = (ymin+ymax)/2;
double dx = GetPrjDistance(p1, p2);

p1.x = p2.x = xmin;
p1.y = ymin;
p2.y = ymax;
double dy = GetPrjDistance(p1, p2);
dy *= dx;

dx = (xmax-xmin)*(ymax-ymin);
dy /= dx;
dArea *= dy;
return dArea;

}

做了简单的测试,用此方法计算出来的面积和投影变换后计算的面积误差大约为1/1000,基本上满足一些要求精度不是很高的应用

0

计算方法比较简单,主要是求出多边形外接矩形已米为单位面积和已经纬度为单位面积比值,然后用这个比值乘以多边形经纬度为单位面积,即可得出这个多边形以米为单位面积。

double GetArea(const vector& ls)
{
if (ls.size() < 4)
return 0;

double sum = 0;

for (size_t i=0; i<ls.size()-1; ++i)
{
    const Coordinate& p = ls[i];
    const Coordinate& q = ls[i+1];
    sum += (p.x + q.x) * (q.y - p.y);
}

return sum/2;

}

double GetPrjArea(const vector &ls)
{
if (ls.size() < 4)
return 0;

double dArea = GetArea(ls);
dArea = abs(dArea);
if (dArea == 0)
    return 0;

double xmin, ymin, xmax, ymax;
xmin = xmax = ls[0].x;
ymax = ymin = ls[0].y;

for (size_t i=1; i<ls.size(); ++i)
{
    const Coordinate& p = ls[i];
    xmin = min(xmin, p.x);
    ymin = min(ymin, p.y);
    xmax = max(xmax, p.x);
    ymax = max(ymax, p.y);
}

Coordinate p1, p2;
p1.x = xmin;
p1.y = (ymin+ymax)/2;
p2.x = xmax;
p2.y = (ymin+ymax)/2;
double dx = GetPrjDistance(p1, p2);

p1.x = p2.x = xmin;
p1.y = ymin;
p2.y = ymax;
double dy = GetPrjDistance(p1, p2);
dy *= dx;

dx = (xmax-xmin)*(ymax-ymin);
dy /= dx;
dArea *= dy;
return dArea;

}

做了简单的测试,用此方法计算出来的面积和投影变换后计算的面积误差大约为1/1000,基本上满足一些要求精度不是很高的应用

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
经纬度坐标下的球面多边形面积计算公式
<br />// calculate Area<br />        public static double calcArea(ArrayList PointX, ArrayList PointY, string MapUnits)<br />        {<br />            int Count = PointX.Count;<br />            if (Count > 2)<br />            {<br />                double
关于经纬度得到的多边形面积。
(两个点)半正矢公式 计算(Haversine formula): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
经纬度坐标下求多边形的面积
经纬度坐标下求多边形的面积,mapinfo的值作为参考,试了几种投影都不行,原来应该计算球面坐标的面积。 最后采用了boost库的方法求面积。 对boost不熟悉的可以参考一下: #include #include #include namespace bg = boost::geometry; #define MAPINFO_SEMIMAJOR   6370997.0 typedef
arcgis 计算经纬度面积及长度
用一副遥感影像作为底图配准后进行矢量化,想要求出上面每个图斑面积的大小 方法1: 首先应该把地理坐标(经纬度)转换为投影坐标。然后打开多边形的attribute table, 里面有一个功能叫calculate geometry  方法2: 打开要计算的shape文件的属性表,添加一个叫area的字段,然后选择area这个字段,右击,calculate,打开对话框后,点ad
ARCGIS计算雨量站控制的泰森多边形面积权重
ARCGIS计算雨量站控制的泰森多边形面积权重 (日期:2019-01-23) 准备内容: 已经将流域的具体位置找出,如下图所示:以湖南为例   第一步:导入雨量站shp图层:   第二步:导入三级套市,四级套县shp图层,注意:地理坐标要与原图层保持一致,右键图层-》属性-》坐标系-》搜索3857对应的坐标系-》确定。      第三步:建立泰森多边形准备工作: 针对sh...
js根据经纬度计算多边形面积
js经纬点计算面积;简单准确
利用坐标求任意多边形面积
#include int main () { int i,j,n; int x[100],y[100]; while (scanf ("%d",&n),n) { float sum=0.0; for (i=0;i<n;i++) { scanf ("%d",&x[i]); scanf ("%d",&y
ArcGIS使用GGA语句计算地块面积
ArcGIS使用GGA语句计算地块面积
根据各点坐标计算多边形面积
根据各点的坐标,计算多边形面积的小程序,fortran2013版
js计算点是否在多边形范围内
对文档的代码进行了重新排版,增加了测试用例。js判断点是否在多边形范围内,不会包括在多 边形边上的点
arcgis经纬度坐标的shape面层计算面积的详细步骤
经纬度坐标的shape面层计算面积的详细步骤 (1)运行ArcGis/ArcToolsBox,选择Projections/Define Projection Wizard(shapeFiles,geodatabase)定义地理坐标。
地球椭球面上多边形面积量算(C++代码)
昨天突然测试的时候发现以前产品中写的地球椭球面上面积计算的代码有点问题,于是今天就彻底修正,从QGIS中抠出代码来用C++重写了一下,新代码可以比较准确计算椭球面上多边形的面积,这个基础函数对空间量算功能中的面积量测非常重要,在这里共享出来供大家参考甚至直接拿过去用。       头文件如下: /** * @file DistanceArea.h * @brief
百度地图中多边形覆盖物的面积计算
多边形面积计算
利用ArcGIS实现GPS多边形面积、周长计算
基于ArcGIS Runtime 类库,实现了GPS采样点形成的多边形面积、周长的计算。
arcpy之计算要素长度及面积
arcpy添加字段并通过字段计算器计算长度及面积。长度:arcpy.AddField_management(shp,"LengthKM","DOUBLE","","","","","NULLABLE","NON_REQUIRED","")arcpy.CalculateField_management(shp, "LengthKM", "!shape.geodesicLength@KILOMETERS!", "
hdoj 2036 已知坐标求多边形面积
已知多边形各点坐标,求多边形的面积   改革春风吹满地   Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41428    Accepted Submission(s): 21220     Problem Descrip...
已知多边形各点平面坐标,Python实现求面积
  在物联网环境中,或者工业自动化生产过程中,把获取到数据结果放置到坐标系中,按规则生成图表,为技术人员、管理人员提供可供分析的图表,例如下面平面坐标(x,y): x = [0.00,0.00,0.01,0.01,0.02,0.04,0.05,0.07,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.32,0.37,0.42,0.46,0.52,0.57,0.62,0....
根据经纬度坐标计算两点间几何距离
根据地球上两点间GPS经纬度坐标,计算两点间几何距离。源代码如下:注:传入的参数为ArcGis计算出的DOUBLE值,如果希望传入参数为度分秒就需要改造了。计算结果单位为米。经过我自己的验证,误差很小。public class Distance...{    private static final double EARTH_RADIUS = 6378137;    private
sql server arcgis计算点是否在范围内
範例 下列範例會具現化 geometryGeometryCollection,其中包含 SRID 1 中具有 Point 執行個體和 Polygon 執行個體的 Z 值。 DECLARE @g geometry; SET @g = geometry::STGeomCollFromText('GEOMETRYCOLLECTION(POINT(
根据经纬度点计算区域面积
经纬度点组成一个区域,要求数据是顺序排列,顺时针或逆时针都可以。 步骤拆分: 1、根据分号对经纬度数据拆分成一组一组的数据 2、计算点数 3、将每个点的经纬度组合形成列表形式 4、计算 第一点的纬度*(最后一个点的经度-第一个点的经度) 注:round函数,最后一个6是小数点后保留的位数 temp[0][1]表示temp列表中第一个列表中的第1个位置,即第一个点的纬度 temp[dat...
GIS中通过两点经纬度确定方位角与方位
确定逆向地理编码时服务商对地址的方位没有清楚的描述,导致偏远的地区没有明确的描述,此算法通过两个坐标的相对位置计算出了方位角得到方位,可以清楚的描述 A地址距离B地址南北方向5000米,类似这样的说明。 此代码为后端C#代码,也是就是这个,灵魂已有,各自实施。 public static class LatLonGetDirection { ///
python计算任意多边形面积
看了一些方法网上的资料,也自己倒腾了一些想法。 然后看到这个大神的博客(《计算任意多边形的面积》),我就服气了。 我把代码转换为python: # 计算任意多边形的面积,顶点按照顺时针或者逆时针方向排列 def compute_polygon_area(points): point_num = len(points) if(point_num &amp;lt; 3): return 0.0...
java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用
java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用!
ArcGIS上根据经纬度求地球表面两点间距离的实现
public static double DistanceOfTwoPoints(double lng1,double lat1, double lng2, double lat2, GaussSphere gs)         {                         double a = Rad(lat1) - Rad(lat2);             double b
Python计算任意多边形面积算法
多边形面积求解的方法很多,其中比较多见的就是增加一个点P,然后分别连接多边形各个定点与P点,然后计算每个三角形的符号面积(面积有正负之分),求和就可以计算出面积。       鉴于上面的方法,我们也可以用另外一种更简单的方法,将P点直接放在V0点,那么我们要求的面积就是V0V1V2,VoV2V3,...,V0Vn-2Vn-3的面积和。此处注意,如果我们假设逆时针的三角形(如上图V0V
[计算几何] 计算多边形面积
题目描述  给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的。要求计算多边形的面积。   多边形被放置在一个X-Y的卡笛尔平面上,它所有的边都平行于两条坐标轴之一。然后按逆时针方向给出各顶点的坐标值。所有的坐标值都是整数(因此多边形的面积也为整数)输入格式输入文件第一行给出多边形的顶点数n(n≤100)。接下来的n行每行给出多边形一个顶点的坐标值X和Y(都为整数并且用空格隔开)。顶
ArcGIS For JS 距离与面积量算的三种方法
在用ArcGIS For JS开发地图过程中,距离与面积的量算功能是比较常用的,下面我们来看看实现量算功能的三种方法。 1.GeometryService GeometryService是ArcGIS For JS提供的一种服务,需要依赖ArcGIS发布的几何服务  (1)定义geometryService var geometryService =
arcgis javascript 利用geometry服务测面积错误
利用geometry测面积,但是得到的结果与真实值相差很大。 api例子上的做法是: function getAreaAndLength(geometry) { map.graphics.clear(); console.log(geometry) var graphic = map.graphics.add(new esri
根据经纬度点求面积
根据经纬度计算的面积,需要一个转化,才能和高德地图显示的面积是一致的。原理就是简单多边形求面积公式:data = &quot;115.989099,39.646023;115.987394,39.645988;115.987371,39.647407;115.986684,39.647423;115.986602,39.648088;115.989095,39.648151;115.989188,39.64...
多边形面积计算公式
function polygonArea(points) { var i, j; var area = 0; for (i = 0; i < points.length; i++) { j = (i + 1) % points.length; area += points[i].x * points[j].y; area -= points[i].y * points[j].x
计算多边形面积(JAVA)
import java.util.*; class point{ public int x; public int y; point(){ this.x=0; this.y=0; } } public class caculateArea { public static float caculate(point vertex[],int pointNum) {
计算多边形面积
计算多边形面积计算多边形面积计算多边形面积计算多边形面积计算多边形面积
SuperMap Objects .NET计算经纬度面积
将数据集中显示为度的面积单位转换为常用的平方米单位制,并将转换后数据更新到数据集属性表中
根据两点间经纬度坐标(double值),计算两点间距离,单位为米
//地球平均半径 private static final double EARTH_RADIUS = 6378137; //把经纬度转为度(°) private static double rad(double d){ return d * Math.PI / 180.0; } /** * 网羽中心 3...
已知坐标求多边形面积
思路   已知三角形坐标求
arcgis根据两个点经纬度,计算两点之间的距离
public void jishuanlong(){ //查询 //计算并保存 double lng1=119.281394256422; double lat1=36.68916380103680; double lng2=115.38126864; double lat2=35.24237235; double a = Rad(lat1) - Rad(lat2);        ...
matlab计算任意多边形面积
已知多边形的各个点坐标,且点按瞬时间或逆时间顺序排列,求多边形面积。首先根据计算多边形面积的计算公式,用向量法计算比较方便。两向量叉乘为这俩向量组成的三角形面积的两倍,所以多边形面积公式为: S = 0.5 * (OA 叉乘 OB +OB 叉乘 OC +…O** 叉乘 OA) matlab代码实现:第一步:取得坐标点数据,读取excel 第二步:计算向量叉乘 第三步:求和即面积主函数:c
用C++计算球面多边形的面积
假设给定一条由经纬度确定的闭合球面路径,计算其包围的球面面积。要求精度高,通过MATLAB来验证。
GIS技术 计算经纬度、距离、方位角
(原文地址:http://www.cnblogs.com/leejuan/p/5552460.html) 1.根据两点经纬度计算其间距离,发现有3种公式,结果区别不是很大。 2.根据一点的经纬度与到另外一点的距离、方位角,计算另一点的经纬度,误差不是很大。 [java] view plain copy /**   *    * 计
高德 面积计算公式 js版
高德 面积计算公式 js版 计算一个经纬度围成的实际面积,下面是js方法 var ring = [ [116.169465,39.932670], [116.160260,39.924492], [116.186138,39.879817], [116.150625,39.710019], [116.18319...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 利用数据库建课程表 利用大数据进行机器学习