我对D3墨卡托投影功能还不是太熟悉,正在得到一些意想不到的结果。我想投射以下经纬度(墨西哥某处):
var geo = [19, -99]
var projection = d3.geo.mercator();
projection(geo)
> [529.7418836818384, NaN]
Javascript具有较晚和较长的特点,这与世界上其他地方的情况相反,所以您给D3的是19的长径和-99的纬度。很明显,没有-99纬度,因此有南太平洋。现在,如果您只需将geo变量反转为
var geo = [-99, 19]
一切都应该是好的。
我理解为什么墨卡托投影的纬度是有限制的,但是根据我假设的理论,经度是[-180,180]呢。 然而,从几个地图应用程序的源代码中我看到了。他们试图将经度限制在[-177177]之间。 这是什么原因?
基于这种后转换LAT/LON到像素坐标?,这与真正的墨卡托投影很好地工作。 我面临一个问题的svg地图从openstreet map使用“谷歌墨卡托投影与简化网格(1000)”。 我试着在我的法国地图上画一些城市,所有的点都在这里,但不是它们应该在的地方 svg是基于openmapstreet的pdf在Inkscape中创建的,代码有点长,我在这个fiddle中复制粘贴iti(因为我没有附上Rap
我正在使用sharpmap将MSSQL中的边界(几何体)渲染为PNG图像。这一切都很好,除了国家在平面图像格式上看起来太“宽”。 据我所知,我需要创建到EPSG:3857投影的转换,但我不知道如何做。 这是我的密码 WKT可以在这里找到https://pastebin.com/PEbpAdxT 感谢您的帮助。 编辑2 我也尝试了以下转换,但这会呈现空白的png(没有红色的十字线)
关于这个话题有很多问题,也有很多答案,但似乎没有一个对我的代码起作用,不确定是不是转换公式或其他东西在整个代码上有问题。经度值似乎如预期的那样起作用,但我未能将纬度转换为地图上的y值。我将添加一个jsfiddle和代码,以及我尝试过的公式的一些链接。我所读到的谷歌地图是一种墨卡托投影,它使用了投影的双重版本(椭球和球面),通用公式在这种情况下不会那么精确,但我没有20km的差异,而是点在地图中的任
问题:如何将要正确显示的地图位置转换到此地图图像上? 更多细节:基本上,地图将是一个矩形区域(即Div元素),其中矩形的左上角明显是(0,0)。所以基本上地图的位置将会相对于这个左上角显示。