Microsoft Dynamics AX 2012 新增加了一个根据地址信息查看在线地图的功能。
比如打开客户详细信息窗体,在地址快速选项卡下面单击“映射”按钮(英文翻译为Map,中文翻译的有问题),系统会打开Bing地图并使用地址信息进行搜索和定位。

遗憾的是,Bing地图比较简陋且对国内的地址支持远不如本土的百度地图,让我们改造一下系统的标准功能:若地址在中国范围的话,调用百度地图引擎进行搜索和定位。
1.打开开发工作区,定位到“AOT-Class-smmUtility-mapIt”方法,添加以下代码:
public static void mapIt(LogisticsPostalAddress _address)
{
#DEFINE.MapURL('http://maps.bing.com/default.aspx?where1=%1')
#DEFINE.MapURL_Baidu('http://api.map.baidu.com/geocoder?address=%1&output=html&src=YourCompany|DynamicsAX2012')
#DEFINE.comma(',')
#DEFINE.newLine('n')
str address;
;
if (_address)
{
switch (_address.CountryRegionId)
{
case 'CHN':
address = _address.CountryRegionId + #comma +
_address.State + #comma +
_address.City + #comma +
_address.Street;
break;
default:
address = _address.Street + #comma +
_address.City + #comma +
_address.State + #comma +
_address.ZipCode + #comma +
_address.CountryRegionId;
}
// Replace the newline with comma
address = strReplace(address, #newline, #comma);
// URL encode
address = System.Web.HttpUtility::UrlEncode(address);
// Add the address to the URL
switch (_address.CountryRegionId)
{
case 'CHN':
infolog.urlLookup(strFmt(#MapURL_BaiDu, address));
break;
default:
infolog.urlLookup(strFmt(#MapURL, address));
}
}
}
2.完成之后,当地址所在国家为中国时,系统将调用百度地图进行搜索和定位。
转载请注明:ww12345678 的部落格 | AX Helper » [原创]将Microsoft Dynamics AX 2012 中的地图功能指向百度地图引擎