Javascript 将横向/纵向放置在具有D3的方位角Qualarea地图上
我试图在地图上绘制一些纵横点,但无法使它们显示在正确的位置 点应该在旧金山。我有一本书Javascript 将横向/纵向放置在具有D3的方位角Qualarea地图上,javascript,d3.js,geo,Javascript,D3.js,Geo,我试图在地图上绘制一些纵横点,但无法使它们显示在正确的位置 点应该在旧金山。我有一本书 您为d3.geo指定了错误的纬度和经度,并且输出的方向也错误。这与按约定(N/S然后E/W)显示它们的方式相反,但它更符合跨接然后向上/向下的图形约定 从D3 API地理参考中: 投影函数采用两个元素的数字数组 表示位置[经度、纬度]的坐标,以及 返回一个类似的两元素数字数组,该数组表示 投影像素位置[x,y] 为了解决这个问题,我已经反转了FeatureCollection的坐标: var latlong
您为d3.geo指定了错误的纬度和经度,并且输出的方向也错误。这与按约定(N/S然后E/W)显示它们的方式相反,但它更符合跨接然后向上/向下的图形约定 从D3 API地理参考中: 投影函数采用两个元素的数字数组 表示位置[经度、纬度]的坐标,以及 返回一个类似的两元素数字数组,该数组表示 投影像素位置[x,y] 为了解决这个问题,我已经反转了FeatureCollection的坐标:
var latlong = {"type":"FeatureCollection","features":[
{"type":"Feature","geometry":{"type":"Point","coordinates":[-122.0423922,37.3838312]},"properties":{"timestampMs":1415894666875}},
etc...
并反转了你的图的坐标
.attr("cx", function (d) { return projection(d.geometry.coordinates)[0]; })
.attr("cy", function (d) { return projection(d.geometry.coordinates)[1]; })
其他一切都很好。在这里修正。很多时候都是小事情 您为d3.geo指定了错误的纬度和经度,并且输出的方向也错误。这与按约定(N/S然后E/W)显示它们的方式相反,但它更符合跨接然后向上/向下的图形约定 从D3 API地理参考中: 投影函数采用两个元素的数字数组 表示位置[经度、纬度]的坐标,以及 返回一个类似的两元素数字数组,该数组表示 投影像素位置[x,y] 为了解决这个问题,我已经反转了FeatureCollection的坐标:
var latlong = {"type":"FeatureCollection","features":[
{"type":"Feature","geometry":{"type":"Point","coordinates":[-122.0423922,37.3838312]},"properties":{"timestampMs":1415894666875}},
etc...
并反转了你的图的坐标
.attr("cx", function (d) { return projection(d.geometry.coordinates)[0]; })
.attr("cy", function (d) { return projection(d.geometry.coordinates)[1]; })
其他一切都很好。在这里修正。很多时候都是小事情 你是不是刚把你的长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长/长?它们通常输出为long/lat,因此cx将使用[0]和cy[1]。您的lat/long是不是用错了方向?它们通常输出为long/lat,因此cx需要[0]和cy[1]。啊,我甚至没有想到先交换GeoJson数据中的坐标,这完全有道理!谢谢:)一个小小的额外观察。您可以将cx和cy组合成一个转换语句,这可以缩短代码:。attr(“transform”,function(d){return“translate”(+projection(d.geometry.coordinates)+”);})啊,我甚至没有想到先交换GeoJson数据中的坐标,这完全有道理!谢谢:)一个小小的额外观察。您可以将cx和cy组合成一个transform语句,使代码更短:。attr(“transform”,function(d){return“translate”(+projection(d.geometry.coordinates)+”);}