瓦片投影的谷歌地图。将距离转换为屏幕尺寸
我正在使用Google Maps Android V2中的CanvastileProvider. 我可以将LAT长点转换为屏幕像素. 但是,我想创建一种将距离转换为屏幕像素的方法.这将使我能够绘制X半径的圆.谁能帮忙吗? 下面的代码我已经从其他地方进行了屠宰和修改,因此归功于原始作者. /** * Converts between LatLng coordinates and the pixels inside a tile. */ public class TileProjection { public int x; public int y; private int zoom; private int TILE_SIZE; private DoublePoint pixelOrigin_; private double pixelsPerLonDegree_; private double pix
4 2024-02-16
编程技术问答社区
OSMDroid如何与私人供应商使用的网络地图服务(WMS)一起工作?
我试图将osmdroid与WMS合作,但我找不到使WMS工作的方法. 目标:osmdroid与WMS(投影EPSG:4326) 暂定:我跟随此并包括文件:WMSMAPTILEPROVIDERBASIC,WMSMAPTILEDONDLOADER,WMSTILESOURCE,MAPTILE,并将以下代码放入我的活动中: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the mapview holder LinearLayout mapHolder = (LinearLayout)
2 2024-02-06
编程技术问答社区
安卓:如何将当前位置标记为地图(静止图像)-源码,案例,实际,预期输出已添加
我创建了另一个问题(如何显示具有移动当前位置的地图(静止图像文件)) ,但它包含2(两个)问题,所以我需要隔离它. 我正在尝试创建一个可以引导一个人到达目的地的原型. 地方是一栋宽阔的建筑,有几层. 我可以获取/检索地图(静止图像). ,例如.当前:1F目的地:5F;因此,我可以获得第一,第二... 5楼(5张图像文件)的静止图像. 方案: 启动应用程序 输入当前位置(或可以使用当前位置自动设置)和目标 单击搜索路由按钮以搜索要使用的地图(静止图像)并标记当前位置和目标 移动/转到目标时更新当前位置 问题: 我可以通过WiFi/Cell Tower/IP地址获得当前位置协调,但不知道如何将其放入静止图像以标记当前位置. 您会共享概念/想法还是包含代码片段.我的论文很大的帮助. 对正确方向的任何指南都表示赞赏. 更新 实际示例,带有实际的预期输出,测试用例 (这里的密码已从Mapsforge获得) mercatorp
0 2024-01-30
编程技术问答社区
如何将2D网格点(x,y)映射到球体上作为3D点(x,y,z)。
我有一组2D网格点(x,y),我想将其映射到一个球上,为3D点(x,y,z). 我意识到,随着腹肌(y)的增加,我的网格贴片只会覆盖赤道附近的一部分球,因此将避免进行严重的翘曲. 我很难为此找到正确的方程式. 解决方案 从Wikipedia的文章中解释了有关Mercator投影的文章: Given a "mapping sphere" of radius R, the Mercator projection (x,y) of a given latitude and longitude is: x = R * longitude y = R * log( tan( (latitude + pi/2)/2 ) ) and the inverse mapping of a given map location (x,y) is: longitude = x / R latitude = 2 * atan(exp(y/R)) - pi/2 从
4 2024-01-08
编程技术问答社区
将墨卡托投影转换为等角投影的着色器?
我正在尝试使统一的着色器 Mercator投影纹理 作为来源,然后将其转换为 equiretectangular投射纹理 . 输入示例: 输出示例: 如果您查看上述示例的来源: // mercator float latClamped = clamp(lat, -1.4835298641951802, 1.4835298641951802); float yMerc = log(tan(PI / 4.0 + latClamped / 2.0)) / PI2; float xMerc = xEqui / 2.0; vec4 mercatorPos = vec4(xMerc, yMerc, 0.0, 1.0); 任何人都可以帮助扭转这一点,以便我可以从墨卡托地图作为源头转向等equirectangular(或者更好, azimuthal ). 正在寻找一种从x/y到经度(x)/纬度(y)和背面的2D纹理变形的方法. 我感谢您的投入. 解
14 2023-11-08
编程技术问答社区
当提供一个URL和特征字符串时有不同的结果
我正在使用openlayers 4.6和打字稿. 当我创建一个简单的矢量layer以渲染地图上的平淡的黑点时,我可能会提供一个URL,例如: export interface Options { features: string; url: string; text: string; font: string; textBaseline: string; fillColor: string; } ... constructor(private options: Options) { const { features, url, text, font, textBaseline, fillColor } = this.options; const format = new ol.format.GeoJSON(); this._layer = new ol.layer.Vector({ sou
6 2023-11-01
编程技术问答社区
GDAL重新投影错误:在方法'geometry_transform'中,类型为'osrcoordinatetransformationshadow *'的参数2
与GDAL 1.11.1一起使用Python 2.7.9,使用Miniconda进行包装管理 - 执行此坐标点的简单重新投入会导致下面描述的错误. 我对GDAL是相对较新的,所以我检查了一下from osgeo import ogr from osgeo import osr source = osr.SpatialReference() source.ImportFromEPSG(2927) target = osr.SpatialReference() target.ImportFromEPSG(4326) transform = osr.CoordinateTransformation(source, target) point = ogr.CreateGeometryFromWkt("POINT (1120351.57 741921.42)") point.Transform(transform) print point.ExportToWkt() 这是错误:
36 2023-10-25
编程技术问答社区
如何将一个距离从度数转换为米数?
我使用的是带有普通墨托映射的开放式层压器,我正在尝试通过在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
编程技术问答社区
地图中的圆圈在D3 V4中显示的位置不正确
我正在使用一个教程来学习如何在D3.v3中生成地图,但是我使用d3.v4.我只是想让一些圆圈出现在地图上(见下文).该代码工作起作用,除了圆圈在内华达州越过,应该在湾区.我想这是地图预测与预计坐标之间的不匹配.我不确定该地图所在的投影,但是我试图强迫它为Alberusa(请参阅评论我生成路径的命令),但这会导致整个地图消失.任何帮助将不胜感激! 在 var w = 960, h = 600; var projection = d3.geoAlbersUsa(); var path = d3.geoPath() //.projection(projec
22 2023-10-05
编程技术问答社区
将MSSQL中的网络地图(Leaflet,Openlayer, OpenStreetMaps, GoogleAPI, ...)的投影改为WSG48或其他格式。
我像这样在MSSQL服务器中有一些WKT/WKB数据,并希望在传单,OpenLayer,OpenStreetMaps或Googleapi的帮助下在地图上显示它们.我的数据看起来喜欢以下方式: POLYGON ((1736946.0983 5923253.9175, 1736895.6852 5923333.9451, 1736936.0082 5923356.6991, ......)) 以这种格式 EPSG:2193 如下所示 并想将它们转换为 WGS48 or EPSG:4326 我试图将它们添加到传单中,似乎我需要将这些数据转换为这样的适当格式: [[42.353770, -71.103606], [42.355447, -71.104475], [42.362681, -71.089830], [42.361829, -71.079230]] 不幸的是,我不确定如何进行此转换. 我有一些尝试这样的方法 [1.] [1
24 2023-09-24
编程技术问答社区
用d3.js绘制topojson文件(纽约市各区和人口普查区)。
这是这样的第一个topojson问题.我在渲染地图(纽约市自治市镇)方面遇到了问题,因此无法弄清楚原因.下面的代码只是带有不同的topojson文件的副本.我上传了文件在这里.以下是有关我如何创建文件的详细信息.现在,我只是在变得混乱.可能是因为Topojson文件,但我不知道怎么了. ps:我无法将其标记为topojson,因为在 之前尚未使用该标签 topojson文件 1)从这里 (在"自治市镇与社区区"下 2)用qGIS简化shapefile 3)用 转换为topojson ogr2ogr -f geoJSON nybb-geo.json nybb.shp topojson -o nybb.json nybb-geo.json html/js代码 .boundary { fill: none; stroke: #000; stroke
20 2023-08-31
编程技术问答社区
matplotlib.mlab.griddata非常慢,并且在输入有效数据时返回nan数组。
我正在尝试绘制一个不规则的网格数据集(原始卫星数据),并将相关的纬度和纵向与定期格栅的一组纬度和由basemap.makegrid()给出的纵向绘制.我正在安装mpl_toolkits.natgrid使用matplotlib.mlab.griddata>.以下是Ipython中whos用作输出的变量的列表,以及变量上的一些统计信息: Variable Type Data/Info ------------------------------- datalat ndarray 666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb) datalon ndarray 666x1081: 719946 elems, type `float32`, 2879784 bytes (2 Mb) gridlat ndarray 1200x1000: 1200000 elems, t
30 2023-08-22
编程技术问答社区
R ggplot 绘制具有圆角形状的地图栅格--如何删除投影区域外的数据?
我正在尝试在一个协调系统中投影的栅格中绘制栅格,该系统像大多数不是WGS84的投影一样遵循地球的曲率.问题在于,这些地方是在全球范围内不应绘制数据周围的全球包裹.我意识到GGPLOT不能做一个圆形/椭圆图,但是如何掩盖或自动删除全球以外的数据?我必须绘制超过100张地图,我不能手动做这件事,尤其是如果我想更改另一个投影. 有在这里答案似乎并不适用于每种情况,是否存在处理此问题的功能或软件包?我不认为R用户仅在WGS84中绘制地图? 我正在附加文件和代码以快速绘制地图.我不能使用Xlim,因为它会切断地图的某些部分,因为边界不是笔直的. #netcdf file https://ufile.io/fy08x33d library(terra);library(tidyterra) r=rast('Beck_KG_V1_present_0p5.tif') #background map r[r==0]=NA ggplot() +geom_spatraster(data=r)+sc
16 2023-08-13
编程技术问答社区
计算堆叠栅格对象的选定区域
由于我最近才开始使用R进行空间分析,而我是 无论如何,我都不是地理学家或空间数据专家,我有一个 - 我假定是相对简单的问题.我正在尝试计算 满足某些堆叠的栅格对象的一部分区域 状况. 更具体地说,是从深海的数据集中 南大西洋,我堆叠了两个栅格对象(深度和斜率) 在坐标系(WGS84)和X-Y(纬度)中进一步相同 位置.从堆叠的栅格对象中,我想 提取位于(说)1000和4000 m深度之间的部分 斜率超过10度.我想知道什么 范围是正方形的,我想将其添加到以前的 绘制地图.以下是一个可再现的示例: # Raster object containing depth values dpt
14 2023-08-13
编程技术问答社区
栅格图像似乎在使用小册子进行R的移位
我想使用R中的传单软件包绘制一些空间数据,但是与参考网格相比,生成的光栅图像似乎已经改变.我怀疑地图预测问题,但我不是该主题的专家,因此将不胜感激. 这是绘制地图的最小代码: library(leaflet) library(sp) library(raster) set.seed(111) # create dummy data -rectangular grid with random values m = 10 n = 10 x = seq(45,48,length.out = m) y = seq(15,18,length.out = n) X = matrix(rep(x, each = n), nrow = n) Y = matrix(rep(y, m), nrow = n) # collector dataframe points = data.frame(value = rnorm(n*m), lng = c(Y), lat = c(X)) ## cr
20 2023-08-13
编程技术问答社区
使用 xarray interpreject 重现数据数组?
我已经对 Interp功能我真的无法理解它.我认为这是一个重新投影,但实际上并不适合真实的示例. 他们的某人是否可以通过在Webmercator基准上重新投射此数据集来理解它? 类似示例: import xarray as xr from pyproj import Transformer ds = xr.tutorial.open_dataset("air_temperature").isel(time=0) fig, axes = plt.subplots(ncols=2, figsize=(10, 4)) lon, lat = np.meshgrid(ds.lon, ds.lat) shp = lon.shape # reproject the grid gcs_to_3857 = Transformer.from_crs(4326, 3857, always_xy=True) x, y = gcs_to_3857.transform(lon.ravel(), lat
10 2023-07-25
编程技术问答社区
如何找到正确的方法在三角形上投影点以在网格上画线?
我有网格,上面有2分 - a 和 b .每个点都位于网格的一些三角形上.主要目标是 - 绘制正确的线,使用2分在网格上.当要点在带有不同平面的三角形上时 - 我在线图方面存在问题. 我做什么: currenttriangle = A点所在的三角形. purrestriangle!= b: 的三角形 将B投影( bp )到Currenttriangle:移动 b 通过 -currenttriangle.Sormal *距离平面的距离. 从三角形找到出口 - abp 与三角形侧面的交点(将3D坐标转换为2D并找到相交点,然后使用Barycentric坐标获取3D相交点). ). ). ). 将结果位置移动到位置 b 找到一个新的CurrentTriangle. 问题是要正确地投影位置 b 正确地到电流的平面上.实际结果: 预期结果(红线): 解决方案 在世界空间坐标中工作(甚至更好,3D笛卡尔坐标与Origin the Camera Ce
22 2023-07-25
编程技术问答社区
函数 "提取 "是如何处理不同的投影的?
我需要使用函数提取物()使用相等尺寸正方形的网格单元从栅格中进行加权平均提取.我的多边形网格在UTM21N中,栅格在GCS WGS84基准D中.我是否必须在将栅格使用之前重新投影栅格()?还是该功能可以正确处理? 解决方案 You can find the source code of function extract for SpatialPolygons here.代码以以下片段开始: setMethod('extract', signature(x='Raster', y='SpatialPolygons'), function(x, y, fun=NULL, na.rm=FALSE, weights=FALSE, cellnumbers=FALSE, small=FALSE, df=FALSE, layer, nl, factors=FALSE, sp=FALSE, ...){ px
28 2023-07-25
编程技术问答社区
如何在R中批量裁剪光栅图层并改变投影?
我正在处理空间数据以准备进行分析 - 我在研究领域的期望范围内有一个DEM,尽管我在国家规模(US)上还有39个其他层.有没有办法与DEM同时裁剪所有这39层? 另外,我将以不同的投影中的其他层叠加输出.是否可以调整输出层的投影和像素大小? 我正在尝试尽可能多地使用免费软件进行我的数据操纵... 解决方案 我遇到了上面的问题,但是在r中写了一个函数以在批处理中完成所有这些功能 - 请参见下文. I had 39 climate data layers at the scale of the continental U.S. (from PRISM Climate Data group; http://www.prism.oregonstate.edu/), and wanted to clip them to the extent of a DEM, in southern California, reproject them, and export them for
26 2023-07-25
编程技术问答社区