1

我使用全局坐标在 Flex 中制作了一个 Web 应用程序

我从 Web 服务获取坐标作为字符串,然后执行以下操作:

latStr:String = "28.7242100786401";
longStr:String = "-106.12635420984";

var cLat:Number = new Number(latStr);
var cLong:Number = new Number(longStr);

这在 IE 和 chrome 上完美运行,从 Web 服务器和本地调试时,但Firefox 仅在本地调试时有效,而不是从 Web 服务器,在 Web 服务器中cLatcLong返回“ NaN”。

自己检查一下,当你点击结果时它应该会弹出一个警报:http: //mundobuk.com/prueba/mapa/main.html?buscar= oxxo

所以我尝试使用,但parseFloat()它会cLat四舍五入:(28cLong-106

然后我尝试将小数与整数分开,例如我的示例 28 和 7242100786401 然后除以 7242100786401/10000000000000 = 0.7242100786401

有 2 个数字 28 和 0.7242100786401 我把它们加起来

28 + 0.7242100786401 = 28.7242100786401

这是代码形式:

var latArr:Array = latStr.split(".");
var longArr:Array = longStr.split(".");


var latDivStr:String = "1";
for (var i:int= 0; i< latArr[1].length; i++){
latDivStr += "0";
}

var longDivStr:String = "1";
for (var j:int = 0; j< longArr[1].length; j++){
longDivStr += "0";
}
var cLat:Number = parseFloat(latArr[0]) + arseFloat(latArr[1])/parseFloat(latDivStr);
var cLong:Number = parseFloat(longArr[0]) - parseFloat(longArr[1])/parseFloat(longDivStr);

再一次,这种方式在任何地方都很好用,只是在 web 服务器的 firefox 中不行>_>

有人有想法么?我要疯了@_@

4

3 回答 3

1

我从未听说过这样的错误,因为 Flash 运行时应该使不同的浏览器和操作系统以相同的方式解释 SWF。我会说我不相信你应该在你的号码转换前使用“新”。

latStr:String = "28.7242100786401";
longStr:String = "-106.12635420984";

var cLat:Number = new Number(latStr);
var cLong:Number = new Number(longStr);

这应该是:

var cLat:Number = Number(latStr); //Number is right because its a Floating Point, but remove new.
var cLong:Number = Number(longStr); //Number is right because its a Floating Point, but remove new.

我使用以下方法进行了测试,发现没有发生舍入。

var latStr:String = "28.7242100786401"; var longStr:String = "-106.12635420984";

trace(parseFloat(latStr)); //Outputs:  "28.7242100786401";
trace(parseFloat(longStr)); //Outputs:  "-106.12635420984";

trace(Number(latStr)); //Outputs:  "28.7242100786401";
trace(Number(longStr)); //Outputs:  "-106.12635420984";

我不明白您为什么需要这种解决方法。此外,我使用 firefox 作为我的主要浏览器,您的网站似乎运行良好。

干杯。

于 2009-03-26T21:51:40.603 回答
1

逗号是许多欧洲国家/地区的分隔符,因此很可能是服务器或客户端上的区域配置。

于 2009-03-27T16:32:15.700 回答
0

我终于找到了为什么它不工作,由于某种原因在 Firefox 中而不是读取点(。)它从 Web 服务读取逗号(,)(在 vb.net 中完成)

在本地它也将其读取为一个点,而不是在线,所以我想它必须对我的 IIS 服务器 O_o 做一些事情

希望这可以帮助那里的人...

于 2009-03-27T16:28:46.253 回答