我正在使用mapdotnet服务为我们的gis应用程序加载shapefile,而这个mapdotnet服务需要proj4细节.我从spatialreference.org获取它们,但是对于这个投影,proj4的细节是空白的.如何从.prj文件或shapefile中获取proj4详细信息?
下面是shapefile的.prj:
PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",300812.797],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",45.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",45.87228112638889],UNIT["Foot_US",0.3048006096012192]]
Run Code Online (Sandbox Code Playgroud) 我有这个图像:
我不知道究竟是什么样的投影,我猜是形状的equirectangular或mercator.这是态度指标的纹理,b.
我想根据由两个角度(航向和俯仰)定义的方向向量绘制正投影,b或者可能是一个普通透视投影(哪个看起来更好).此方向定义球体上的一个点,此点应该是投影的中心.
我希望它从飞行员的角度来看,因此只应绘制一半的球体.
我使用python,我还没有选择图形库,但我可能会使用pygame.
我找到了相关的东西:http://www.pygame.org/project-Off-Center+Map+Projections-2881-.html但是它使用的是OpenGL而我没有使用它的经验,但我可以尝试,如果需要的话.
我该怎么办?我可能可以通过计算计算公式中的每个像素来手动绘制它,但我认为有一些库工具可以有效地做到这一点(硬件加速可能?).
鉴于我有给定地理特征和特定投影的 topoJSON 数据。
我应该如何居中和缩放地图以适合其父对象?
看来我可以使用projection.rotate()、projection.translate()或projection.center()来使地图居中:
https://github.com/d3/d3-3.x-api-reference/blob/master/Geo-Projections.md
有什么区别以及规模如何影响不同的功能?
我希望将纹理投影到 ThreeJS 中的网格表面。
https://www.lanyardmarket.com/en/printed-tshirt
此链接实现了我正在寻找的结果,但我不确定他们是如何实现的。
.
我会在研究时更新这篇文章,但是如果有人知道如何将 ThreeJS 纹理投影到我很想知道的网格上。
谢谢
我玩过d3js (v5)地图,我正在尝试生成这张地图(截图来自一个随机网站), 对于我的特殊情况,不需要呈现南极洲。
我在这里阅读了文档:https : //github.com/d3/d3-geo#projections,并按照说明使用了 geoMercator,得到了这张平面地图,由于某种原因,该地图在北上角被截断。
获取第一张地图布局的正确方法是什么?有什么建议?
我知道我可以使用投影映射两个对象类型LINQ,如下所示:
var destModel = from m in sourceModel
select new DestModelType {A = m.A, C = m.C, E = m.E}
Run Code Online (Sandbox Code Playgroud)
哪里
class SourceModelType
{
string A {get; set;}
string B {get; set;}
string C {get; set;}
string D {get; set;}
string E {get; set;}
}
class DestModelType
{
string A {get; set;}
string C {get; set;}
string E {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想制作类似通用的东西来做这件事,我不知道具体处理我正在处理的两种类型.所以它会走"Dest"类型并匹配匹配的"Source"类型..这可能吗?另外,为了实现延迟执行,我希望它只返回一个IQueryable.
例如:
public IQueryable<TDest> ProjectionMap<TSource, TDest>(IQueryable<TSource> sourceModel)
{
// dynamically build the LINQ projection based on the properties in …
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个涉及英国地图和所有约650个选区的可视化.我按照这个优秀的教程http://bost.ocks.org/mike/map/绘制了地图,效果很好.然而,我能为选区找到的唯一来源是军械测量(自然地球有县但没有选区).问题是操作系统选区文件不包含它们相同类型的坐标(您可以告诉我,我不是GIS专家),他们使用横向墨卡托投影.以下是我要转换的数据的.prj文件的属性:
PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",-100000],PARAMETER["Central_Meridian",-2],PARAMETER["Scale_Factor",0.999601272],PARAMETER["Latitude_Of_Origin",49],UNIT["Meter",1]]
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在D3中将其转换为投影?我安装了ogr2ogr和TopJson但不确定这些是否可以做到这一点我无法在任何地方找到信息,因为我没有足够的基础知识.
TIA
我正在尝试在我的祖国奥地利的 SVG 地图上投影一组点([long, lat] 元组):
https://commons.wikimedia.org/wiki/File:Austria-geographic_map-blank.svg
维基媒体上对 SVG 文件的描述给出了投影名称和地图边界:
Lambert Conformal Conic,WGS84 数据
地图的地理范围:西:17.2° W
东:9.3° W
北:49.2° N
南:46.0° N
虽然我很天真,但我认为这些信息足以用 D3 创建正确的投影。
这是我首先尝试的:
let gcc = d3.geoConicConformal()
.fitSize([width, height], bbox)
Run Code Online (Sandbox Code Playgroud)
哪里bbox
是表示上面给出的地图边界的 GeoJSON 多边形。
不幸的是,结果不是正确的预测:
现在,通过阅读 D3 文档,我可以猜测我必须为投影指定更多参数,例如两个标准平行线。不幸的是,我不知道它们是什么,并且在地图的西部和东部边界周围尝试各种值都没有奏效。我认为它们可以从我对地图的了解中推导出来,或者可能不是?
其次,让我感到困惑的是,投影不仅旋转错误,而且缩放也不正确——我认为使用.fitSize
会解决这个问题。
任何人都可以给我任何关于正确设置兰伯特圆锥共形投影的指示吗?
给定 Leaflet 缩放级别 (0..22),我将如何计算 geoMercator 投影的 D3 缩放值?当 zoom=0 时,整个世界都适合在单个图块 (256x256) 内。在瓦片中,世界大小是 2^zoom x 2^zoom 瓦片。
我按照指南在 d3js 中创建了美国的基本地图
指南链接 - http://bl.ocks.org/michellechandra/0b2ce4923dc9b5809922。
我已经了解了 GeoJSON 和地图投影的基础知识。
目前我的地图看起来像这样 - (地图 1)
- 这使用d3.geoAlbersUsa()
投影
我希望我的地图看起来像这样 - (地图 2) - 即顶部不是弯曲的,而是直线边界
链接https://www.worldatlas.com/webimage/countrys/namerica/usstates/usa50mer.htm
要求 -
我已经尝试过什么 -
d3.geoMercator()
投影,但阿拉斯加太大,无法容纳在视口中,并且位于我不想要的左上角。