如何将MTM(加拿大)坐标转换为纬度和经度

4
我有一个GeoJSON文件,里面标示了蒙特利尔一些感兴趣的点,但是坐标不是经纬度,而是MTM nad83第8区的X,Y坐标。
我想要在Google地图上加载该文件,但是需要将坐标转换。
我在互联网上搜索了很多,发现twcc.fr这个网站可以转换,但是在JS源代码中没有找到相关信息,可能是在服务器端进行操作。
是否有任何人知道如何进行坐标转换?
先谢过啦!
**编辑:** JSON文件样例:
{"name":"json_sortie","type":"FeatureCollection"
,"features":[
{"type":"Feature","geometry":{"type":"Point","coordinates":[294079.844,5044618.5]},"properties":{"POTEAU_ID_POT":122476,"DATE_CONCEPTION_POT":20101216000000,"DESCRIPTION_REP":"Enlevé","DESCRIPTION_RTP":"2- Tige et manchon","X":294079.844,"Y":5044618.5,"ID_ARRONDISSEMENT":"25","TRC_ID":1110499}}
,{"type":"Feature","geometry":{"type":"Point","coordinates":[296910.375,5045914.5]},"properties":{"POTEAU_ID_POT":5766,"DATE_CONCEPTION_POT":20090707000000,"DESCRIPTION_REP":"Réel","DESCRIPTION_RTP":"3- Fût","X":296910.375,"Y":5045914.5,"ID_ARRONDISSEMENT":"25","TRC_ID":1090130}}
,{"type":"Feature","geometry":{"type":"Point","coordinates":[296908.938,5045915.5]},"properties":{"POTEAU_ID_POT":66342,"DATE_CONCEPTION_POT":20090707000000,"DESCRIPTION_REP":"Enlevé","DESCRIPTION_RTP":"1- Tige et base","X":296908.938,"Y":5045915.5,"ID_ARRONDISSEMENT":"25","TRC_ID":1090130}}
,{"type":"Feature","geometry":{"type":"Point","coordinates":[296481.188,5045804]},"properties":{"POTEAU_ID_POT":5030,"DATE_CONCEPTION_POT":20121108000000,"DESCRIPTION_REP":"Réel","DESCRIPTION_RTP":"1- Tige et base","X":296481.188,"Y":5045804,"ID_ARRONDISSEMENT":"25","TRC_ID":1100117}}

1
MTM是改良横向墨卡托坐标系UTM维基包含一些可能有用的方程式。 - geocodezip
请在此处查看:http://canadiangis.com/converting-between-utm-mtm-and-latlong.php - bjiang
我尝试在JavaScript中实现utm公式,但效果不是很好。你确定utm和mtm如此接近吗? - Adam Cherti
通过使用在线UTM转换器检查您的UTM实现。然后,您就可以得到一个强烈的提示,无论您的UTM代码是否正确。 - AlexWien
我发现我的代码错误是使用弧度而不是角度。现在它已经工作了,我也找到了如何使MTM工作(如果您感兴趣,请查看我的答案)。 - Adam Cherti
2个回答

1
我找到了如何做到这一点。如果您知道如何将UTM转换为WGS84纬度,经度,则可以转换MTM。将UTM转换为WGS84(lat,long)的方程式在维基百科上
MTM类似于UTM,但更精确。区域比UTM小,为3°,而不是6°。ScaleTM为0.9999,而不是UTM的0.9996。虚假东移为304.8公里(而不是UTM的500公里)。
要在UTM中具有参考子午线,您可以执行refMeridian = Zone * 6° - 183°,但对于MTM,我使用了一个区域数组,对应其参考经线(我在互联网上找到了这些信息):
var zone_to_refmeridian =  // MTM zone to reference meridian
  [0, 53, 56, 58.5, 61.5, 64.5, 67.5, 70.5, 73.5,
   76.5, 79.5, 82.5, 81, 84, 87, 90, 93, 96, 99,
   102, 105, 108, 111, 114, 117, 120, 123, 126,
   129, 132, 135, 138, 141];

// For instance for Montreal city which is in zone 8:
zone_to_refmeridian[8] // for zone 8

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接