2016-12-05 3 views
0

私は、Leaflet.Realtimeのおかげで30分の更新を持つSun製作者を持っていますが、ここでSunはメインビューの外でレンダリングします。Sunマーカーの位置は、ズームレベルでメインビューの外にレンダリングされます

私は好きworldCopyJump: true,、物事を試してみました:

var lat = data.solar_lat; 
var lng = (data.solar_lon - 360); 

しかし、私は怒鳴るリーフレットの遊び場との完全な例で、この愚かなものに引っかかっています:

https://playground-leaflet.rhcloud.com/haco/edit?html,js,output

を作るために任意のヘルプを太陽は地球の "メインビュー"に輝く?

答えて

0

私はあなたが「メインビュー」と呼ぶものに依存すると思います。

data sourceあなたが使用している地球上の太陽の垂直投影は、[-90; 90度の緯度と[-180;ほとんどの基準が期待するように、180度の経度である。

また現在の位置は次のとおりです。

"solar_lat":-22.41390593196, "solar_lon":106.2319043175 

(すなわち、どこか西オーストラリアオフ)

この「メインビュー」の周り、特に、[0, 0]位置(どこかウエスト/中部アフリカオフ)を中心としますグリニッジ子午線(ロンドンに近いところ)、すなわち、「メイン」マップの中心にあるヨーロッパにあります。

"main map"

「メイン」ビューのみことを示す

更新遊び場:あなたはアメリカで育ってきた場合はhttps://playground-leaflet.rhcloud.com/hefu/1/edit?html,js,output

、あなたがして、マップの中央に示されているアメリカのほうがなじみかもしれオーストラリアは左側に、ヨーロッパは右側にあります。

World map with Americas at center

出典:あなたは、そのビュー(中央アメリカ)を一致させたい場合は、元のデータは、例えばグリニッジ子午線より東でいつでもhttp://www.freeworldmaps.net/world/america-centric/

、あなたは、単にあなたの経度をラップすることができます。

function wrapAroundAmericas(latlng) { 
    var lng = latlng.lng; 

    return L.latLng(
    latlng.lat, 
    lng > 0 ? lng - 360 : lng 
); 
} 

デモ:https://playground-leaflet.rhcloud.com/faru/1/edit?html,js,output

関連する問題