我做错了什么?我没有得到数字跟踪显示无限
function geolocationUpdateHandler(event: GeolocationEvent): void {
event.latitude.toString();
event.longitude.toString();
trace(lat = event.latitude);
trace(lng = event.longitude);
trace(Star.x = (((lng * Math.PI / 180) - (MinLongitude * Math.PI / 180)) / ((MaxLongitude * Math.PI / 180) - (MinLongitude * Math.PI / 180)) / Map.width));
trace(Star.y = (((lat * Math.PI / 180) - (MinLatitude* Math.PI / 180)) / ((MaxLatitude * Math.PI / 180) - (MinLatitude * Math.PI / 180)) / Map.height));
}
var MinLongitude:int;
MinLongitude = 25.139585;
var MaxLongitude:int;
MaxLongitude = 25.332134;
var MaxLatitude:int;
MaxLatitude = 57.790398;
var MinLatitude:int;
MinLatitude = 57.693223;
答案 0 :(得分:0)
我确定长/纬度返回为转换为[text]字符串。无需.toString
方法。
正确的追踪方式是示例:trace("my latitude is.. " + event.location);
在你的代码中尝试这样:
trace( "lat = " + event.latitude );
trace( "lng = " + event.longitude );
trace( "Star.x = " + (((lng * Math.PI / 180) - (MinLongitude... etc
trace( "Star.y = " + (((lat * Math.PI / 180) - (MinLatitude... etc
修改强>
我刚刚意识到你将int
作为四个变量(var MinLongitude:int
等)的类型,但也使用小数输入进行设置。 Int's
不能是分数或有小数位,因此请将这些类型更改为Number
,例如:(var MinLongitude:Number
)等。希望您现在可以获得良好的结果。
否则您的计算公式似乎没有任何内容。所以负无穷大是奇怪的。我做了手动计算......
Star.x = (((lng * Math.PI / 180) - (MinLongitude * Math.PI / 180)) / ((MaxLongitude * Math.PI / 180) - (MinLongitude * Math.PI / 180)) / Map.width));
计算器中的变为:(假设Map.width = 500,Math.PI = 3.14)......
(25.33213 * 3.14 / 180) - (25.139585 * 3.14 / 180) / (25.332134 * 3.14 / 180) - (25.139585 * 3.14 / 180) / 500
和结果6.077202837190等......所以Star.x = 6.0