太阳标记位置在任何缩放级别渲染在主视图之外
Sun marker position render outside main view at any zoom level
由于 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
让太阳照耀地球有什么帮助"main view" ?
我想这完全取决于你怎么称呼"main view"。
您使用的 data source 正确报告了太阳在地球上的垂直投影作为坐标在 [-90; 90]度纬度和[-180; 180] 度经度,正如大多数标准所期望的那样。
目前在:
"solar_lat":-22.41390593196, "solar_lon":106.2319043175
(即西澳大利亚某处)
这个 "main view" 以 [0, 0]
位置为中心(西/中非某处),特别是格林威治子午线周围(靠近伦敦的某处),即欧洲位于中心"main" 地图。
更新后的游乐场仅显示 "main" 视图:https://playground-leaflet.rhcloud.com/hefu/1/edit?html,js,output
如果您在美国长大,您可能更熟悉美洲显示在地图的中心,澳大利亚在其左侧,欧洲在右侧。
来源: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
由于 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
让太阳照耀地球有什么帮助"main view" ?
我想这完全取决于你怎么称呼"main view"。
您使用的 data source 正确报告了太阳在地球上的垂直投影作为坐标在 [-90; 90]度纬度和[-180; 180] 度经度,正如大多数标准所期望的那样。
目前在:
"solar_lat":-22.41390593196, "solar_lon":106.2319043175
(即西澳大利亚某处)
这个 "main view" 以 [0, 0]
位置为中心(西/中非某处),特别是格林威治子午线周围(靠近伦敦的某处),即欧洲位于中心"main" 地图。
更新后的游乐场仅显示 "main" 视图:https://playground-leaflet.rhcloud.com/hefu/1/edit?html,js,output
如果您在美国长大,您可能更熟悉美洲显示在地图的中心,澳大利亚在其左侧,欧洲在右侧。
来源: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