1

次の npm モジュールを使用して、lat/lng とピクセルを相互に変換しています。

https://www.npmjs.com/package/viewport-mercator-project

使用法は次のとおりです。

// Create a new viewport. 
var ViewportMercator = require('viewport-mercator-project');
// NOTE: `ViewportMercator` objects are immutable by design. 
var viewport = ViewportMercator({
  center: [0, 0],
  zoom: 0,
  tileSize: 512,
  dimensions: [600, 800]
});

var lnglat = [0, 0];
var pixels = viewport.project(lnglat); // returns [300, 400] 

viewport.unproject(pixels); // returns [0, 0]

ただし、これは、中心が -122~ である私の使用例では常に失敗するようです。

ViewportMercator({
      center: [37.7833, -122.4167],
      zoom: 13,
      tileSize: 512,
      dimensions: [1000, 778]
    });
> viewport.project([37.7833, -122.4167])
[ 500, NaN ] // should return (500, 389)

これは、( の) lng 値centerが -90 < lng < 90 の範囲外であるという事実と関係があることはわかっていますが、どうすればこれを修正できますか? 私の試みたビューポート変換は間違いなく有効です...

4

1 に答える 1