在数据中心用天地图实现高级搜索功能时,发现天地图的一个诡异bug,TBounds初始化问题。
先看问题:
1. 可以在网页访问http://www.heihedata.org/search/advance页面,用鼠标在天地图任意拉框,注意经度要跨越100,即将兰州、西宁、青海湖都包含在内,然后在经纬度文本框内随意鼠标点击一次(可以在“东”框点一下,然后再点击到”西“),然后就发现矩形框变大了,即经度横跨180到-180了。
2. 将”西“经度调整至100,鼠标点击另一个经纬度框,可以发现矩形恢复正常。
3. 经过尝试发现,只要东西的经度都大于100,或都小于100,则矩形正常,否则不正常。
此部分的关键js代码如下所示:
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=$(input.west).val();
var east=$(input.east).val();
var north=$(input.north).val();
var south=$(input.south).val();
var bounds = new TBounds(west,south,east,north);
rect = new TRect(bounds);
map.addOverLay(rect);
}
}
在矩形不正常时通过firebug进行调试,发现应该是tbounds初始化的问题。
但如何解决,还没有找到方法。
update 2014-6-26: 修正search/advance链接。
发表回复