私は経度で-180度から180度の境界線がありますが、緯度では-90度から83.64513度になります。 leaflet
を使用しているフロントエンドアプリケーションでは、mapnik
のタイルイメージをサーバーに要求するときに、タイルの位置を緯度/経度に変換します。経度は機能しますが、緯度はありません。私は変換するには、このformulaを使用しています:Mapnik not-85.0511º〜85.0511ºshape issue
lat = arctan(sinh(pi*(1 - 2*y/2^zoom))) * 180/pi
問題(それが問題だ場合、私は本当に分からない...)は、この式は、緯度から行くこと-85.0511º85.0511ºに認めているということです、その後、私は、この画像のようにerrosを取得しています:私はこの問題を回避するために
何ができますか?形状のサイズを変更してください(どうすればいいですか?)、おそらく緯度を超える一般的な式があるか、いくつかのステップがありません。
上記の式を使用する代わりに、私はこのcodeをGoogleTile
メソッドで使用しようとしました。同じ結果を得ました...ここで
は、私が使用しているコードです:
@app.route('/tiles/<z>/<x>/<y>', methods=['GET'])
def tiles(z, x, y):
filename = tiles_path + r"tile_%s_%s_%s.png" % (z, x, y,)
filename = filename.encode('ascii', 'ignore')
z = float(z); x = int(x); y = int(y)
if not os.path.isfile(filename):
x_1, y_1 = num2deg(x, y, z)
x_2, y_2 = num2deg(x + 1, y + 1, z)
envelope = mapnik.Envelope(x_1, y_1, x_2, y_2)
mapnik_map.zoom_to_box(envelope)
mapnik.render_to_file(mapnik_map, filename, "png")
return send_file(filename)
def num2deg(xtile, ytile, zoom):
n = 2.0 ** zoom
lon_deg = xtile/n * 360.0 - 180.0
lat_rad = atan(sinh(pi * (1 - 2 * ytile/n)))
lat_deg = degrees(lat_rad)
return lon_deg, lat_deg
私はADJUST_CANVAS_HEIGHT
にaspect_fix_mode
を変更する場合:
mapnik_map.aspect_fix_mode = mapnik.aspect_fix_mode.ADJUST_CANVAS_HEIGHT
私は上記の問題を持っていませんしかし、これを設定すると、地図が伸びて に歪んで歪んでしまいます。
私はshapefileを使用しています。
EDIT:
MAPNIKデフォルト投影:
map_obj.srs
>>> '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'
map_obj.layers[0].srs
>>> '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'
EDIT 2:
このようなマップと層srs
を変更しようとしました。
mapnik_map = mapnik.Map(256, 256, "+init=epsg:3857")
...
layer = mapnik.Layer("layer_name", "+init=epsg:4326")
マップsrs
が設定されている場合は特に何も表示されません。
MAPNIKについては考え、それをしません[Pseudo-Mercator](http://epsg.io/3857)のタイルを義務付けていますか?データは[EPSG:4326](http://epsg.io/4326)にあります。これは、TMS Global Geodetic Profileを参照するコードでサポートされているタイル形式の1つです – user27874
編集を参照してください。 [ここ](https://github.com/mapnik/mapnik/wiki/GettingStartedInPython)、これは言っています:_the 'map.srs'はマップのターゲット投影であり、あなたが望むものであれば何でも構いません。 –