模組討論:Coordinates
Change from mw.wikibase.getEntity (deprecated) to mw.wikibase.getEntityObject
Hey! I want all lua Modules to not use the deprecated function mw.getEntity() anymore but mw.wikibase.getEntityObject() instead. Learn more: [1] If you encountered any problems with my changes, please let me know since I do this on different Wikipedias, too. I tested it before and it seemed to work fine. --Lucie Kaffee (WMDE)(留言) 2015年2月25日 (三) 14:32 (UTC)
提议实现一个能够转换 GCJ-02 或 BD-09 输入到 WGS-84 数据的 coord 模板
现有的{{coord}}
模板实现较为简单直接,直接使用通行的WGS-84坐标系。然而在中国大陆境内的地图数据大多经过“非线性加密”混淆处理,很少可以直接获得WGS-84数据;已有的反向转换方式又缺乏易用的线上工具,难以被不甚擅长计算机技术的大多数编者使用。因此我认为应该修改{{coord}}
模板,使其能够接受GCJ-02、BD-09两种中国大陆流行的混淆坐标系并显示为WGS-84位置,以方便编者提供中国境内的坐标数据。
潜在问题
- 原创研究。GCJ-02的加密方法通过源码外泄得到,BD-09则来源未知。虽然经过实验确认转换应属准确,但并无任何可靠来源提到这些算法的具体实现。英文维基百科上的Restrictions on geographic data in China条目基本都是引用现有的eviltransform、chinaGeo等实现。
实现建议
- 转换函数本身按照en:Restrictions on geographic data in China#Reverse transformation的思路实现。
- 为模块:Coordinates添加一个子模块,导出所需的正反向转换函数。(反向转换需要正向转换估计偏移,所以还是需要一并实现。)
- 为
{{coord}}
增加一个|system=
参数,并在模块:Coordinates的相应实现内检查该参数考虑转换。- 或者也可以直接向上游geohack工具发送合并请求(Pull Request),添加相应的“坐标参数”,这样也可绕过原创研究问题。然而即便如此,令
{{coord}}
内正确显示WGS-84坐标仍然需要上述的转换功能。
- 或者也可以直接向上游geohack工具发送合并请求(Pull Request),添加相应的“坐标参数”,这样也可绕过原创研究问题。然而即便如此,令
——Artoria2e5编 保持讨论完整,直接ping我回复。 —以上未加入日期時間的留言是于2016年12月17日 (六) 08:42 (UTC)之前加入的。
讨论
我想问下,其他语区或en区有没这样为适应当地的坐标系不同而引入当地化的参数?如果没有的话,为什么需要修改实现,而不是提醒注意和提供其他的坐标获得方法?我不认为这样的本地特化需要。——路过围观的Sakamotosan 2016年12月17日 (六) 09:40 (UTC)
- @cwek:因为对于大多数人来说就不存在什么“其他的坐标获得方法”——中国大陆境内得到的地图清一色都是这样的混淆坐标。如果阁下指的是国外版本的Google Maps等地图服务,那么等于自证“编辑维基百科需要翻墙”;OpenStreetMap虽然未被屏蔽,但是按照greatfire测量的4KB/s速率实在不堪使用。况且enwp之类的地方没有“其他坐标系”一事,即使有也随着更新缩小了偏差:俄罗斯GLONASS所使用的PZ-90随着更新ITRS(2011.0)厘米级对准,而ITRS与WGS-84的误差也只有几厘米。中国的“国家安全”方案即使要更新,目标也不会是“缩小偏差”。——Artoria2e5编 保持讨论完整,直接ping我回复。 2016年12月17日 (六) 15:10 (UTC)
- 当然既然提到了“其他方法”,倒是有个不那么通用然而可能受到反对会更少的方案:做个小工具。——Artoria2e5编 保持讨论完整,直接ping我回复。 2016年12月17日 (六) 15:10 (UTC)
- 我觉得没必要为特定地理坐标来修改模板,可以做成一个toollab的小工具,用于转换。或者直接查询GoogleMap来获得相应坐标(姑且认为那是真实地理经纬而非特定地图系统坐标)。——路过围观的Sakamotosan 2016年12月18日 (日) 10:07 (UTC)
- toollab网页工具是在浪费脑子,我懒得写cgi、和HTTP服务器说话之类的鬼东西。Google Maps数据存在几个问题:一则比国内“主流”地图服务老且少,二则需要翻墙(Google Ditu的数据依法使用 GCJ-02,也没有利用价值。)我现在是已经从头写好了转换代码,正在想怎么写编辑界面工具栏按钮。
- 另外纠正一个概念错误:我们脚下的这个水球上没有什么“真实”地理经纬,一切经纬、海拔都需要从某种定义出来的椭球体参数推。会有这种存在“绝对的真实参数”的错觉,也只能说是多亏了几个活着的系统互相差别不大,让某两个人工加了噪音的怪胎看上去比较突出罢了。——Artoria2e5编 保持讨论完整,直接ping我回复。 2016年12月19日 (一) 03:15 (UTC)
- 总之,我的建议是,如果能提供工具用于转换的,可以考虑,但是将整合到模板中,没必要,也不应该为一个特别的特定系统来影响另一个相对统一多数人使用的影响。——路过围观的Sakamotosan 2016年12月19日 (一) 03:25 (UTC)
- 整合進模板也不會影響多數人使用吧?——C933103(留言) 2016年12月23日 (五) 15:35 (UTC)
- @C933103、cwek:问得好(对欸!),确实不会。——2017年1月2日 (一) 19:31 (UTC)
- 整合進模板也不會影響多數人使用吧?——C933103(留言) 2016年12月23日 (五) 15:35 (UTC)
- 总之,我的建议是,如果能提供工具用于转换的,可以考虑,但是将整合到模板中,没必要,也不应该为一个特别的特定系统来影响另一个相对统一多数人使用的影响。——路过围观的Sakamotosan 2016年12月19日 (一) 03:25 (UTC)
- 我觉得没必要为特定地理坐标来修改模板,可以做成一个toollab的小工具,用于转换。或者直接查询GoogleMap来获得相应坐标(姑且认为那是真实地理经纬而非特定地图系统坐标)。——路过围观的Sakamotosan 2016年12月18日 (日) 10:07 (UTC)
更新
模块该更新了,相比英文已经缺了一些东西了。--Qwhisper 2017年1月31日 (二) 07:17 (UTC)