解决一个使用天地图中的bug

此前曾在使用地图搜索过程发现一个天地图的Bug,见此地址。今天重新翻起此Bug,看能否解决,测试了几个失败的方法后,在调试中发现中此图的空间位置数字都带引号:
tbounds-bug
突然想到会不会和变量类型有关系,即纬度的变量可以从字符串转换为数字,而经度没有能转换,所以导致了这个Bug呢?
于是修改代码,强制类型转换:
function InputValueChange(){
if(MapInputValueCheck() == true)
{
map.clearOverLays();
var p1=new TLngLat($(input.west).val(),$(input.south).val());
var p2=new TLngLat($(input.west).val(),$(input.north).val());
var p3=new TLngLat($(input.east).val(),$(input.north).val());
var p4=new TLngLat($(input.east).val(),$(input.south).val());
map.setViewport(new Array(p1,p2,p3,p4));

var west=parseFloat($(input.west).val());
var east=parseFloat($(input.east).val());
var north=parseFloat($(input.north).val());
var south=parseFloat($(input.south).val());
var bounds = new TBounds(west,south,east,north);
rect = new TRect(bounds);
map.addOverLay(rect);
}
}

然后重新测试,发现问题果然解决!

回头来看,说明这个bug应该还是天地图的问题,其应该在输入变量中进行强制类型转换。


已发布

分类

,

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注