整理代码结构，增加地图协议