坐标之间的距离 Python与R的计算时间对比
我试图在 wgs84 椭圆形 - 不是其他答案中所解释的那样,在 wgs84 椭圆形的范围内计算距离.我想在Python中这样做,但是相对于R的计算时间很长.我的Python脚本需要将近23秒,而R中的等效脚本需要0.13秒.有任何建议加速我的Python代码吗? python脚本: import numpy as np import pandas as pd import xarray as xr from geopy.distance import geodesic from timeit import default_timer as timer df = pd.DataFrame() city_coord_orig = (4.351749, 50.845701) city_coord_orig_r = tuple(reversed(city_coord_orig)) N = 100000 np.random.normal() df['or'] = [city_coo
4 2023-05-24
编程技术问答社区
OpenLayers在调用setCenter后,地图仍在0,0的位置上。
我试图通过Method setCenter设置地图中心,但仍然无法正常工作.地图没有移动. 我尝试使用从投影到映射投影而没有成功的转换. 这是代码的一部分.谢谢. var lon = 15.869378; //WGS LL84 var lat = 49.528964; var zoom = 5; var map, layer; function init(){ map = new OpenLayers.Map('map'); layer = new OpenLayers.Layer.TMS("Name", "[URL]", { 'type':'png', 'getURL':get_my_url });
0 2023-05-11
编程技术问答社区
IOS上外部GPS数据的WGS84 Geoid高度高度偏移量
对于我正在编写的应用程序,我们正在将iOS设备与外部传感器接口,该传感器通过本地WiFi网络输出GPS数据.这些数据以"原始"格式相对于高度出现.通常,所有GPS高度都需要根据当前位置具有与WGS84地质高度相关的校正因子. 例如,在下面的地理控制点(HV9830* NAD 83(2011) POSITION- 38 56 36.77159(N) 077 01 08.34929(W) ADJUSTED HV9830* NAD 83(2011) ELLIP HT- 42.624 (meters) (06/27/12) ADJUSTED HV9830* NAD 83(2011) EPOCH - 2010.00 HV9830* NAVD 88 ORTHO HEIGHT - 74.7 (meters) 245. (feet) VERTCON HV9830 ____________________________________________________________________
2 2023-05-05
编程技术问答社区
将经纬度坐标(WGS)转换为具有等距轴的网格(在给定区域内)。
我在拖车数据集中有很多地理坐标,并想运行最近的邻居搜索. 我遇到了" rann"软件包,函数nn2(x,y)运行非常快. 现在存在问题,当然,伦敦地区的北部学位比西方的学位更长. 我现在的想法是将位置坐标转换为某个网格,在x的方向上的一个步骤与y方向的一个步骤几乎相同.该地区是伦敦(中心-0.1045,51.489).我该如何执行此转换? library(RANN) xyunf
2 2023-04-20
编程技术问答社区
将本地平面坐标转换为WGS84坐标的概述
假设我使用以米为单位的本地平面坐标绘制了一个小区域.例如一个矩形仓库,为300m x 450m.我使用一些GPS设备找到仓库一个角落的WGS 84 LAT/LON. 如何将飞机坐标投影到WGS 84 Geoid上,以找到仓库其他3个角的LAT/LON值? 我知道这是一个复杂的问题,因为值在地球的不同部分各不相同.我需要先处理一些本地坐标系统,还是可以以某种方式使用我已知的点之间的关系将其直接转移到WGS84? ? 我对这种问题没有很多经验,所以如果我的问题的某些部分没有任何意义,请原谅我. 解决方案 您的问题是完全合理的,但是解决方案远非微不足道. 该解决方案取决于您的本地坐标系是南北对齐的(相对容易)还是完全任意(更难). 您的本地系统准确地对齐: 将已知的LAT/LON坐标转换为笛卡尔坐标(Easting,Northing). 确定(1)和该点的局部坐标之间的X和Y差异. 将此坐标差应用于3个Corners局部坐标中的每个坐标. 转
12 2023-03-31
编程技术问答社区
将LLA转换为XYZ
您可以帮助我将LLA转换为XYZ坐标. 我正在使用 earthRadius = 6378.137; var x = earthRadius * Math.cos(lat)*Math.cos(lon); var y = earthRadius * Math.cos(lat)*Math.sin(lon); var z = earthRadius * Math.sin(lat); 这种转换为XYZ坐标的方法.但这没有给出我想要的正确结果. 地球定义为WGS84对象. 解决方案 完成坐标转换(Python代码): geodetic -> ECEF(固定地球的地球中心),距地球中心的距离 ECEF -> ENU(东北),获得局部典型x-y轨迹: import pyproj, math R = 6378137 f_inv = 298.257224 f = 1.0 / f_inv e2 = 1 - (1 - f) * (1 - f) # Sample (La
68 2023-03-31
编程技术问答社区
将X,Y像素转换为经度和纬度
我有一个图像8640x11520像素从地图的一部分以真实的比例为单位.我需要将我的x,y点转换为协调,任何人都有一个想法来找出它? var mapWidth = 8640; var mapHeight = 11520; var mapLatitudeStart = 28.349768989955244; var mapLongitudeStart = -81.55803680419922; var maxLatitude = 28.349806758250104; var maxLongitude = -81.541128; var pointNeedConversion = {'x': 4813.10 'y': 2674.84}; var pointLatitude = ?? 解决方案 当您映射到lat/long时,请当心,您无法使用线性比例进行此操作,相反,您必须检查在地图上应用什么样的投影,然后相应转换坐标. 通常地图是 wgs84投影. 这项任务并不
6 2023-03-31
编程技术问答社区
如何在Lua中把GPS坐标转换为十进制?
我需要使用LUA将GPS坐标从WGS84转换为十进制. 我确定它是之前已经完成的,所以我正在寻找代码段的提示. 更正的问题:代码将dms(deg秒秒)转换为deg((十进制)度)的代码? 示例: 维也纳:DMS:48°12'30" N 16°22'28" e 或者 苏黎世:DMS:47°21'7" N 8°30'37" E 我发现的困难是从这些字符串中获取数字. 特别是如何处理符号(°)分钟(')和秒(")的标志. 这样我就有一个表坐标{}每个坐标来处理. coord {1} [48] coord {2} [12] coord {3} [30] coord {4} [N] coord {5} [16] coord {6} [22] coord {7} [28] coord {8} [E] 建议,谢谢. 解决方案 解析字符串latlon = '48°12'30" n 16°22'28" e'到DMS+标题组件: 这是您的字符串(请注意逃脱的单
10 2023-03-31
编程技术问答社区
需要精确的平行扫描算法来进行(GPS)引导
我写了一个Delphi程序,该程序生成了一个GPX文件作为"穷人指导系统"的输入,用于空中喷雾. 总的来说,它使用GPX文件作为输出产生路线(并行围墙). 该路线的引擎基于" Vincenty"算法,该算法适用于任何WGS84计算,但 我无法获得topografix专家产生的电网的准确性(要求). 我在椭圆形上假设一个2D计算: 1)从开始rtept(路由点),计算下一个给定轴承和任意距离(长度)的RTEPT. 2)计算下一个rtept分别针对先前的轴承(90°转)和另一个任意距离(swath距离). 3)重做1)最后一个rtept作为起点,但在相反的方向上,依此类推. 它怎么了? 解决方案 您不描述Vincenty的地球椭圆形模型的Pascal实现,因此以下是猜测: 该模型利用了许多几何trig函数 - atan2, cos,sin等.取决于您是否使用内部Delphi功能 或您自己的版本,有可能缺乏精度 在计算中.您使用的PI值的
12 2023-03-23
编程技术问答社区
如何将球面速度坐标转换为软式坐标
我在高度,经度,高度上具有速度向量,我想将其转换为笛卡尔坐标,VX,VY,VZ.格式来自WGS84标准. 这是公式 //------------------------------------------------------------------------------ template TVectorXYZ WGS84::ToCartesian(T latitude, T longitude, T elevation) //------------------------------------------------------------------------------ { double sinlat, coslat; double sinlon, coslon; sincos_degree(latitude, sinlat, coslat);
4 2023-03-19
编程技术问答社区
WGS84中2个 "线性 "运动物体之间的碰撞检测
[Spektre的完整重新编辑]根据评论 我有两个起点和3D(WGS84)中的速度向量,我该如何在某些指定的时间内检查它们是否在3D中碰撞? 样本输入: // WGS84 objects positions const double deg=M_PI/180.0; double pos0[3]={17.76 *deg,48.780 *deg,6054.0}; // lon[rad],lat[rad],alt[m] double pos1[3]={17.956532816382374*deg,48.768667387202690*deg,3840.0}; // lon[rad],lat[rad],alt[m] // WGS84 speeds in [km/h] not in [deg/sec]!!! double vel0[3]={- 29.346910862289782, 44.526061886823861,0.0};
2 2023-03-19
编程技术问答社区
从WGS84到谷歌地图位置再返回的Java代码
搜索一些示例代码以将WGS84坐标系中的一个点转换为Google Maps(Pixel位置)中的地图位置,也支持缩放级别. 如果对代码进行了很好的评论,则也可以使用其他语言. 您也可以将我指向开源Java项目:) 找到了一些资源: openlayer 实现. 出色的 java地图投影库来自JH Labs.这是一个纯Java Proj.4端口.从WGS84到米的投影.从那里将仪表转换为瓷砖像素很简单. 解决方案 /a>在Mapki.com上(Google Map Developers的绝佳资源) 其他解决方案 这是从openlayers提取的JavaScript中的函数 function toMercator (lon, lat) { var x = lon * 20037508.34 / 180; var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI
8 2023-03-18
编程技术问答社区
wgs点与wgs定义的线段的距离
我搜索了,但找不到完整的答案. 在C#中,如果可能的话. 我需要WGS点和WGS点定义的线段之间的最短距离(恰好是地球). float DistanceInKilometres(PointF LineStartA, PointF LineEndB, PointF ThePoint) 编辑:也许插图会有所帮助 请注意,这是一个理想的例子. "点"也可以在球体表面上的任何地方,段开始端.显然,我不是在寻找通过球体的距离.数学不是我更强大的一面,所以我不明白范围或 cartesian .也许我还应该注意,路径AB,可能是最短的,并且距离?,也可能最短. 解决方案 您可以使用余弦的球形定律: 您必须使用地球半径进行计算: Earth_radius_km = 6371; 在这里,从我对osmmercator.java的贡献,来自openstreetmap.org: /** * Gets the distance using Spherical la
14 2023-02-11
编程技术问答社区
在Cesium实体的位置上放置一个HTML元素'。
我需要根据剖腹实体的位置来定义HTML元素的位置.我使用了鼠标位置(Cesium.Cartesian3.clone(movement.endPosition)),该位置在窗口坐标中,作为测试,并且可以工作.因此,我需要获得实体位置,将其转​​换为WGS84坐标,将它们转换为窗口坐标,然后将其用于element.style.left = window_coord.x和element.style.top = window_coord.y. 因此,我得到实体.位置和x,y和z值是正确的.但是,当我想将它们转换为WGS84坐标时,出现了问题,我会为LAT,LON和Height提供NAN. 这些是我尝试过的变体,两者都会导致NAN的LAT,LON和Height: var carto = Cesium.Ellipsoid.WGS84.cartesianToCartographic(entity.position); or var carto = Cesium.Cartographic.
14 2023-01-15
编程技术问答社区
将WGS84转换为长/短纬度
嗨 我有点麻烦弄清楚如何在坐标类型之间转换.我有一个具有以下描述的坐标集列表 "坐标始终在WGS84系统中.所有坐标A表示为整数 坐标值乘以1,000,000的值x和y." 一个例子: 559262 6319512 嗯,我需要将这些转换为long/lat(和back),所以我可以在Google地图(Android)中使用这些.但这并不像接缝那么容易.我一直在搜索,确实找到了一些代码来执行此操作,但它没有接缝正常工作.任何可以提供这样做的代码的人?如果可能的话,我想避免一个大地理框架(它必须在Android应用程序中使用). 谢谢. 最好的问候,kenneth 编辑: 我自己找到了一个解决方案.我下载了这里描述的类: http://www.ibm.com/developerworks/java/library/j- coordconvert/ ,它工作正常.希望有人能发现它很有用. 我很抱歉在做作业之前发布.感谢所有发布的人 解决方案
74 2022-10-31
编程技术问答社区
安卓GPS定位的getAltitude()是如何工作的?
hi 我尝试实现一个简单的GPS跟踪器.因此被使用 lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this); 然后我使用了 public void onLocationChanged(Location location) { 读取我当前位置的高度的方法. ,但我真的不知道哪个位置.getaltitude()返回.该文件说它返回了高度.但这是米吗?还是feets?如果我将手机放在我旁边的桌子上,则此值在500和-500之间更改? 这是如何真正起作用的? 解决方案 您获得的高度值来自 gps(wgs84) a href =" http://en.wikipedia.org/wiki/reference_ellipsoid" r
48 2022-10-24
编程技术问答社区
使用WGS84-ellipsoid的距离
考虑点P1(60°N,20°E,0)和P2(60°N,22°E,0) 地球的表面 当点P1和P2之间的最短距离是什么? 地球是使用WGS-84椭球? 建模的 解决方案 不幸的是,Vincenty的算法无法收敛一些输入. geographiclib 提供了一种替代方案,始终会收敛(and) 也更准确).提供了C ++,C,Fortran,JavaScript,Python,Java和Matlab中的实现.例如,使用 matlab package : format long; geoddistance(60,20,60,22) -> 111595.753650629 其他解决方案 在对您的问题的评论中指出的那样,您应该使用Vincenty的公式来解决反问题. 回答您的问题是:111595.75米(或60.257海里). javascript实现了文森蒂的反向公式,从 http://jsperf.com/vincs-vs-haversine-teStance
8 2022-10-23
编程技术问答社区
为maptiler创建世界文件
我有一个图像21810x14872,该图像一个带有坐标区域的盒子: 顶,左角纬度经度:23.635069763547662,58.09107365049769 底部,右角纬度经度:23.598520470202025,58.14957297881731 或使用wgs84 northing,恢复: 顶部,左角宽松,北方:617289.588,2610249.342 底部,右上角,北底:611289.588,2614249.428 我的图像使用WGS84的投影.如何使用上述描述创建用于MAPITILER的世界文件. 谢谢你. 解决方案 在Maptiler(只需在Maptiler中选择" Mercator Tiles",然后在文件中拖动并删除您的坐标系(默认为WGS84 GEODETIC LATUTIDE/经度),然后在分配位置单击"边界"框上.当您可以直接输入四个数字时,对话框将打开. Maptiler预览右下角的小地图窗口中的覆盖区域. 请参阅这
10 2022-10-21
编程技术问答社区
使用geotools api计算WGS84 crs中线段和点之间的最短距离
在Geotools中,您可以使用几何类别的距离函数在两个几何形状之间找到距离.几何学有一个点子类,但没有线段子类的几何形状子类.但是,有Linesegent类源自Linestring,它不是几何类别的子类.我尝试使用JTS,但它似乎是JTS仅适用于笛卡尔坐标系. 问题:如何在linesement和wgs84 crs中找到最短的距离(以米为单位). 请注意:我知道有答案可用于执行此操作而无需使用Geotools.由于我们在项目中使用了地理工具,并且代码可维护性非常重要,因此我想在Geotools中进行. 解决方案 简单的解决方案(假设您的观点是 close 是使用JTS来找到最接近的点(暂时忽略地球的曲率),然后使用 geodeticcalculator 找到两点之间的距离.很好. 如果您需要更准确性,则需要重新投影并指向平面投影,并直接使用JTS进行该投影中的所有计算. ps linestring扩展了几何形状(检查您拥有的几何形状). 其他解决方案
94 2022-10-10
编程技术问答社区
WGS74和WGS84坐标系之间的转换
我正在研究GSHHS数据库的栅栏,基本上将海岸线多边形和河流转换为栅格. 河流和海岸数据库是两个不同的文件. 我注意到在河流和海岸之间在显然应对齐的地方之间的数百米.我在 readme 中,我注意到的一件事是河数据库是使用WGS 72的其他来源生成的.差异应在主要子午线和地球初级轴尺寸的差异中. 我在互联网上搜索了两组之间的转换,找不到. 答案我需要: 我该如何转换它们? 或替代 如何解决GSHHS数据库中的未对准? 解决方案 这是将WGS 72坐标转换为WGS 84坐标的公式和参数 公式 Δφ" =(4.5cosφ)/(a sin 1") +(Δfsin2φ)/(sin 1")(单位= arc秒) δλ" = 0.554(单位=弧秒) ΔH= 4.5sinφ +aΔfsin2φ-Δa +Δr(单位=米) Δφ=Δφ" x 1"(单位=弧度) δλ=δλ" x 1"(单位=弧度) 参数 ΔF= 0.3121
12 2022-10-08
编程技术问答社区