GPS指向静态地图动作脚本

时间:2014-04-07 21:18:48

标签: actionscript-3 flash map gps

我做错了什么?我没有得到数字跟踪显示无限

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;

1 个答案:

答案 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