如何将一个距离从度数转换为米数?
我使用的是带有普通墨托映射的开放式层压器,我正在尝试通过在LATLONG中找到点网格来采样边界框. Bbox用拉特隆表示,例如 48.1388,-15.3616,55.2057,-3.9359 我可以在度中定义一个距离(例如x:2.5,y:2.4),并从那里弄清楚点. 但是,我想以米的(例如50000)来表达此距离,以将其与用户心态相关联(人们了解仪表,而不是学位). 如何转换此距离?我知道如何重新分辨一个点,但没有距离. 感谢您的任何提示! mulone 解决方案 使用 haversine公式获得lat/long的两个点之间的距离.假设地球是一个球体(在大多数情况下,"足够好"). javaScript实现了它(从在这里)看起来像这样: var R = 6371; // km var dLat = (lat2-lat1).toRad(); var dLon = (lon2-lon1).toRad(); var a = Math.sin(dLat/2
12 2023-10-25
编程技术问答社区
坐标:从WGS84转换到一个*特定的UTM区域
有很多免费工具可以从UTM转换为LAT/Long.足够好,但是我需要另一个方式去;从WGS-84到LAT/长格式. ,但比这更复杂; 'couse我需要结果位于UTM-33(北欧)区域. 这听起来像是一个坏主意.为什么我想将区域"强加"到33n,当地理点可能放在另一个区域时... 好;问题是我已经有一个数据库,其中挪威每个地址的UTM33坐标物. 那些熟悉UTM @北欧的人知道挪威跨越了几个区域. 31至36 . (好吧,也许我们只跨度为32到36,这是区域32V奇怪宽度的原因,但这是另一个讨论). 因此,回到我的问题:我所有的地址已经以utm-33格式给出(超出范围时为负值).我该如何继续将我的lat/long进入UTM-33? 我需要PHP中的解决方案,并且在与" GPoint"进行了很多调试之后,我发现它无法正常工作... (gpoint非常适合从/转换为UTM,但它将始终返回"正确"区域块中的UTM X/Y-PAIR.我不想要!我需要始终在区域
32 2023-07-01
编程技术问答社区
如何在python或Javascript中从UTM转换为LatLng
我有一堆具有UTM形式的坐标的文件.对于每个坐标,我都有越野,北边和区域.我需要将其转换为latlng,供与Google Map API一起使用,以在地图中显示信息. 我找到了一些在线计算器可以执行此操作,但没有实际的代码或库. http://trac.osgeo.org/proj4js/演示不包括UTM投影. 我仍然对整个GIS域很新鲜,所以我想要的是Ala: (lat,lng) = transform(easting, northing, zone) 解决方案 我最终从IBM中找到了解决该问题的Java代码:仅供参考,这是我对我需要的方法的实现: import math def utmToLatLng(zone, easting, northing, northernHemisphere=True): if not northernHemisphere: northing = 10000000 - northing a
14 2023-06-22
编程技术问答社区
如何在Proj4js中使用OpenLayers 3
我正在研究地图查看器项目,并在此之前使用了2.现在,我必须使用OpenLayers 3,而Map Viewer应用程序应该支持许多不同的预测,因为我有来自不同来源和预测的WMS和WFS层.我发现了使用openlayers2和proj4js的示例.但是我找不到使用ol3和proj4js的明确示例.您的建议是什么? 解决方案 似乎有时,就像在使用webpack中使用openlayers 3和proj4时一样,需要明确告诉ol3在哪里可以找到它: import * as proj4 from "proj4"; import * as ol from "openlayers"; ... ol.proj.setProj4(proj4); 当一切都很好时,定义投影后,ol.proj.get应返回: proj4.defs("EPSG:28992", "..."); if (!ol.proj.get('EPSG:28992')) { console.error("Fail
18 2023-06-16
编程技术问答社区
墨卡托经度和纬度计算到裁剪过的地图(英国)上的x和y
我有这个图像.这是英国的地图(不包括南爱尔兰): 我成功地设法获得了纬度和经度,并通过占用英国的最左侧经度和最右边的经度,并利用它们来弄清楚将点放在地图上的位置. . 这是代码(用于processing.js,但可以用作JS或其他任何代码): // Size of the map int width = 538; int height = 811; // X and Y boundaries float westLong = -8.166667; float eastLong = 1.762833; float northLat = 58.666667; float southLat = 49.95; void drawPoint(float latitude, float longitude){ fill(#000000); x = width * ((westLong-longitude)/(westLong-eastLong)); y = (heig
22 2023-06-16
编程技术问答社区
Gall-Peters投影的proj4js投影代码是什么?
proj4js库是否支持胆囊投影?我似乎找不到它的投影首字母缩写? 解决方案 您要查找的代码是圆柱相等区域的" CEA". 实际定义将是: "+proj=cea +lon_0=0 +x_0=0 +y_0=0 +lat_ts=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs" 将LAT_TS的价值更改为44.138对严格的Peter预测,尽管正如您的标题所暗示的那样,Gall和Peters的预测几乎是相同的(我不会涉足 * *政治论据,谢谢!)./p> 有些人更喜欢相似的贝尔曼,但lat_ts为30.这会产生较少的赤道区域(彼得斯声称他试图修复的事情!). .
12 2023-06-12
编程技术问答社区
纬度/长度转换为X/Y坐标
我有纽约纽约市的纬度/长期价值; 40.7560540,-73.9869510和地球的平坦图像,1000px×446px. 我希望能够使用javaScript,lat/long转换为x,y坐标. 因此,x,y坐标形成图像的左上角; 289,111 要注意的事情: 不必担心要使用什么预测的问题,请自己制作 假设或与您所知道的 可能起作用 x,y可以形成图像的任何角度 奖励积分 PHP中的相同解决方案(但是我 真的需要JS) 解决方案 JS中的基本转换功能是: MAP_WIDTH = 1000; MAP_HEIGHT = 446; function convert(lat, lon){ var y = ((-1 * lat) + 90) * (MAP_HEIGHT / 180); var x = (lon + 180) * (MAP_WIDTH / 360); return {x:x,y:y}; } 这将返回左上方的像素数.
30 2023-05-26
编程技术问答社区
更改OpenLayers地图中的投影
我想将" EPSG:4326"设置为openlayers映射的投影,但是当我尝试时,我总是会得到" EPSG:900913". function init() { var options = { projection: new OpenLayers.Projection("EPSG:4326") // ignored }; map = new OpenLayers.Map('map', options); var layer = new OpenLayers.Layer.OSM.Osmarender("Osmarender"); map.addLayer(layer); ... alert(map.getProjection()); // returns "EPSG:900913" ... } 基本地图是开放的街道地图. 如何将投影设置为EPSG:4326? 解
68 2023-05-11
编程技术问答社区
OpenLayers预测
我可以成功地做: point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); 以Google格式(以米为单位)的点,但是当我想进行反面时: point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); 到4326(常规LAT/LON格式)的点,我有一些问题. 当我进行转换时,任何负值似乎都会变成NAN(不是数字).我不明白的反向转换有什么吗? 编辑:更糟糕的是,当我没有负值时,坐标似乎熄灭了.我通过在屏幕上绘制一个正方形,然后将这些坐标保存到数据库中,然后再加载它们来获得坐标.我可以在非洲尖端附近画一个正方形(正坐标),然后当它加载它在大西洋的非洲顶部附近.我肯定做错了.... 编
24 2023-05-11
编程技术问答社区
如何在Openlayers中将矢量图层坐标转换为地图经纬度
我很困惑.我有一个观点: x= -12669114.702301 y= 5561132.6760608 我从用drawFeature控制器在矢量层上绘制正方形而获得的. 数字似乎...嗯...笨拙,但是它们似乎可以工作,因为如果我以后用所有相同点绘制一个正方形,那就处于相同的位置,所以我认为它们必须正确. 问题是当我尝试将此点转换为纬度和经度时. 我正在使用: map.getLonLatFromPixel(pointToPixel(points[0])); 其中点[0]是一个几何点,而尖端函数函数采用任何点并将其变成像素(因为getlonlatfrompixel需要像素).它通过简单地拿出点的x并将其制作为像素x,等等. . 我得到的纬度和经度在于: lat: -54402718463.864 lng: -18771380.353223 这显然是错误的.我真的很困惑.我尝试使用: 投影此对象 .transform(new Ope
36 2023-05-11
编程技术问答社区
使用EPSG:25832投影对Leaflet中的TMS瓦片进行垂直排列
我在25832中使用proj4leaflet的传单与瓷砖一起使用.应用程序非常简单:我试图将EPSG中的瓷砖覆盖:25832:25832上的omniscale BaseMap.我从TILEMAP META信息中复制了单独的决议和来源.我面临的问题是,地图没有对齐,一旦我放大了瓷砖,就不会按正确的顺序放置.我感谢这里的任何支持(顺便说一句,此是使用openlayers的工作示例). 我想我在这里做错了什么: // Set resolutions var resolutions = [156367.7919628329,78183.89598141646,39091.94799070823,19545.973995354114,9772.986997677057,4886.4934988385285,2443.2467494192642,1221.6233747096321,610.8116873548161,305.40584367740803,152.702921838704
76 2023-04-22
编程技术问答社区
纬度/lon转换为x/y坐标
我有一个OpenStreetMap图像. 左上角是LAT:80 LON:-169 右下角是LAT:-56 LON:190 图像具有宽度:2618和高度:1513 如何将给定的LAT/LON-COORDINES转换为图片x/y-coordinates? 我自己尝试过,但不知道如何转换坐标. 我希望有人可以回答我的问题. 解决方案 所要求的问题几乎是荒谬的.要求的区域几乎覆盖了整个世界,从80n 169w到56s 190e.从170W到169W,杆将杆杆置于杆子,在80n以北的北极周围,在56秒南部的南极周围有一个较大的磁盘.从地球的大区域到屏幕,没有一个最佳的投影.请参阅地理坐标和也就是说,如果输入合理,这是一个合理的问题. 对于赤道附近的非常小的区域,一个简单的投影是将纬度映射到y和x.​​当您远离赤道时,由于程度的长度下降,这会引入一个小的失真随着纬度接近两极的经度.对于足够大的赤道对称区域,这将使顶部边缘的长度与底部边缘明显不同. 一个更好的投影
54 2023-03-03
编程技术问答社区
将纬度/经度转换为阿尔伯塔10TM投影图
我需要将纬度/经度坐标转换为艾伯塔省10 TM投影中的升级/北坐标. 10 TM投影与UTM相似,但它是加拿大艾伯塔省的自定义预测.我认为(经过一些努力)我可以自己编码,但宁愿如果已经完成了方向盘. 解决方案 Grab proj制图投影库 - 开源库库. 建议的10TM参数: +proj = tmerc +lon_0 = -115 +k_0 = 0.9992 +x_0 = 500000 +datum = nad27 根据 如果您的10TM,将ELLPS更改为GRS80 数据引用了NAD83基准 (而不是NAD27/CLRK66).您可以 还需要更改错误的北部 (y_0)为-5000000,如果您的10吨 艾伯塔省的坐标小于 5,000,000(Altalis"标准"). 我应该提到proj.4是库要获得任何类型的地理坐标系转换.它几乎没有转变. 我还建议阅读 Map Projections-A工作手册(平装书)John Snyder 如果您喜
40 2023-03-03
编程技术问答社区
试图在Leaflet中使用EPSG:3857
我试图使传单使用EPSG:3857作为输入坐标系.我使用porj4lesflet来实现这一目标.我已经定义了这样的地图实例: var map = L.map('map', { center: [8378860.13, 1481133.311008498], zoom: 7, crs: new L.Proj.CRS( 'EPSG:3857', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs', { resolutions: [ 8192, 4096, 2048, 1024, 512, 256, 128 ], origin: [0, 0] } ) }); 当我尝试运行此操作时,我会得到TypeError: c
50 2023-01-25
编程技术问答社区
如何在Webkit中调用参数化的javascript函数?
我正在尝试将2个参数传递给JavaScript函数.这个代码webview.loadUrl("javascript: function_to_call();");工作很好,没有参数,但我无法使用参数. 这是JavaScript Junction: function changeLocation(_lon , _lat){ var zoom=16; var lonLat = new OpenLayers.LonLat( _lon , _lat ).transform( new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); map.setCenter (lonLat, zoom); } ,这就是我从java调用它的方式: webView.loadUrl("javascript:changeLocation( -0
70 2022-11-07
编程技术问答社区
PROJ.4图书馆和OSGB36
希望你很好 我试图使用Proj.4库将LAT/长坐标转换为OSGB36 X和Y. 其他人成功做到了吗?我需要填充srcprj4string和destprj4string变量,例如 字符串srcprj4string =" +proj = longlat +ellps = wgs84 +datum = wgs84 +no_defs"; 字符串destprj4string =" +proj = utm +Zone = 11 +ellps = grs80 +datum = nad83 +unit = m"; 但我无法弄清楚osgb36的destprj4string应该是什么 - 我知道基准应该是 +datum = osgb36,但是我尝试的一切都无法正常工作 有什么想法? 非常感谢 leddy 解决方案 得到它: string srcPrj4String = "+proj=longlat +ellps=WGS84 +towgs84=0,0
24 2022-10-10
编程技术问答社区
Proj4Leaflet在Leaflet中从4326转换到3857
从上周开始,我正在研究 Leaflet,这个问题让我很生气. 数据库返回坐标以创建 Leaflet 标记(使用默认 Map.CRS EPSG3857),因此我决定使用 proj4js 将数据库坐标 4326 转换为 3857: var iarCoordinate = [-76.495207812, 3.429960207], obSource = new proj4.Proj('EPSG:4326'), obDest = new proj4.Proj('EPSG:3857'), obResult = new proj4.Point(iarCoordinate); proj4.transform(obSource, obDest, obResult); //obResult = [-8515407.581757482, 382049.6844491562] 这些[-8515407.581757482, 382049.6844491562]
1416 2022-07-25
编程技术问答社区
如何使用PROJ将WGS84中的坐标转换为投影中的坐标。4.
我在 WGS84 中有一个 GPS 坐标,我想使用 PROJ.4 在 Java 中或 Proj4js 在 JavaScript 中. 很难找到 PROJ.4 的文档以及如何使用它.如果你有一个好的链接,请将它作为评论发布. SWEREF99 TM 的 PROJ.4 参数是 +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsp> 我尝试使用 PROJ.4 Java 库 来转换 Lat: 55° 00’ N, Long: 12° 45’ E 并尝试使用此代码: String[] proj4_w = new String[] { "+proj=utm", "+zone=33", "+ellps=GRS80", "+towgs84=0,0,0,0,0,0,0", "+units=m", "+no_defs" }; Projection proj = ProjectionFa
4074 2022-07-19
编程技术问答社区