Google maps 投影错位google geojson vs d3

Google maps 投影错位google geojson vs d3,google-maps,google-maps-api-3,d3.js,geojson,Google Maps,Google Maps Api 3,D3.js,Geojson,对于给定的geoJSON文件,在本例中是伊利诺伊州的县边界,我将该层与、和重叠 google数据层(红色)是一个对象,它显示在与任何google覆盖(多边形、标记、多段线等)相同的画布中,而D3.geo.path()(蓝色)显示在google容器顶部的SVG容器中 正如你所看到的,最西边的县在D3线的左边显示谷歌的边界线,而在东边,D3是向左移动的 起初,我认为SVG容器的中心位置不对,但本例显示位移不均匀,因此无法使用SVG变换矩阵修复它 这种现象发生在任何geoJSON上,无论我使用的是缩

对于给定的geoJSON文件,在本例中是伊利诺伊州的县边界,我将该层与、和重叠

google数据层(红色)是一个对象,它显示在与任何google覆盖(多边形、标记、多段线等)相同的画布中,而D3.geo.path()(蓝色)显示在google容器顶部的SVG容器中

正如你所看到的,最西边的县在D3线的左边显示谷歌的边界线,而在东边,D3是向左移动的

起初,我认为SVG容器的中心位置不对,但本例显示位移不均匀,因此无法使用SVG变换矩阵修复它

这种现象发生在任何geoJSON上,无论我使用的是缩放还是世界的哪个地方。现在,这很奇怪,因为如果d3.geo.mercator()错误地将坐标转换为像素,那么错误的计算就不会一致。这也不是一个近似值问题,因为它不随缩放而变化

这只是不同投影引擎的一个小问题吗?我不希望谷歌、d3、传单和openlayers将坐标对转换为完全相同的像素,但我不想忽略这一点,因为我可能做错了什么

任何想法都将不胜感激@姆博斯托克,我召唤你

编辑:我花了很多时间才写出一个完整的例子,但它帮助我更好地理解了引擎盖下发生的事情


请参见

可以是任何内容,从错误的GeoJSON到转换容器的内容。如果不看代码,我真的无法告诉你更多。谢谢。我在bl.ocks.org中添加了一个自包含的示例。我希望我的问题不会结束。嗯,你是如何计算地图D3部分的平移和缩放的?我从示例中去掉了这部分,因为它不会影响初始投影,但我要做的是添加一个带有回调函数的缩放行为,该函数计算与原始中心/缩放相关的坐标差和缩放,然后为g组应用适当的平移属性。SVG附加在OverlayView的overlayMouseTarget窗格上,以避免它与地图拖动和缩放发生冲突。我的目标是比例是否会稍微偏离,从而导致您看到的移动。