我想知道是否有人可以帮助我。
我目前正在使用以下代码将OS GRid引用成功转换为Lat& amp; Lon坐标。这是通过我的html表单上的按钮上的点击事件来完成的。
function converttolatlng() {
var gr = document.getElementById('osgridref').value;
var osgb = new GT_OSGB();
if (osgb.parseGridRef(gr)) {
var wgs84 = osgb.getWGS84();
document.getElementById('osgb36lat').value = wgs84.latitude;
document.getElementById('osgb36lon').value = wgs84.longitude;
}
else {
document.getElementById('osgb36lat').value = "n/a";
document.getElementById('osgb36lon').value = "n/a";
}
}
我现在想要在将信息上传到mySQL数据库之前从我想要转换的外部xml文件中引入一些OS Grid References(大约22,000)(因此不会通过正常形式'click '事件),但我真的不确定该怎么做。
有人可能请告诉我如何绕过“点击”事件的需要并自动执行转换。
非常感谢任何帮助。
非常感谢
答案 0 :(得分:0)
如果我正确理解您的问题,并且您真的只是想避免点击按钮,则只需在HTML底部的<script>
中调用您的功能即可。一旦浏览器呈现它就会执行该脚本,因此只要必要的元素已经在它上面的页面上并且加载了XML,它就可以正常工作。
<!-- after most of your HTML, but before the closing <body> -->
<script type='text/javascript'>
converttolatlng();
</script>
</body>
</html>
如果您需要加载整个页面并且需要使用脚本加载一些外部依赖项,请使用HTML window.onload
标记内的<head>
属性:
<script type='text/javascript'>
window.onload = converttolatlng();
</script>
答案 1 :(得分:0)
快速实现此目的(以及学习将来非常有用的工具)是使用像Pentaho Kettle这样的ETL工具。这是一个可视化工具,您可以连接到数据库和XML文件,执行步骤转换,然后点击运行。它将为您完成所有转换。
如果需要,可以使用Pentaho中的OSGB java库为您进行转换,但您也可以使用Javascript库。 Pentaho的文档有点缺乏,它确实需要一点点使用,但是一旦你搞清楚,它就会加速任何ETL项目,你可能需要花费几分钟而不是几个小时。
或者,如果OSGB库在PHP中不可用,我只需将其作为循环运行Javascript并使用jQuery.Json函数,将结果传递给PHP以写入数据库。这样你就可以传递异步对象,只需要处理那些失败的转换/ DB写入。
检查PHPCoord