一、google地图与百度地图的一些微小差别
由于最近同时使用了google地图和百度地图开发,所以也有一个小小的认识和了解,在这里就做一个微小的比较。这些都是我在实际应用中切身感受的,如有不对的地方还请看到这篇文章的大牛多多指教。
1、google地图的经纬度坐标点latLng(x,y)是先纬度后经度;百度地图中Point(y,x)是先经度后纬度。
2、google地图中的控件都是默认的(如平移缩放控件、是否可用鼠标滚轮缩放等);百度地图有些是需要添加控件来显示。
3、google地图上的marker图标都是表示一个点(即点击图标任何地方坐标都一样);百度地图的marker图标上的左边点不相同。
4、google地图添加marker可以直接设置各种属性值;百度添加marker相对麻烦一点。
5、百度地图添加一个新的label类,可以实现在marker旁边显式的添加描述信息。
6、google地图获取经纬度的单个值latLng.lat()后边有个括号;百度地图获取经纬度的单个值Point.lat后边没有括号。
目前接触到的差不多就这些,以后有接触到的再做补充。
二、写点在添加百度地图的时候走的弯路:
从google地图换成百度地图,花了将近一天的时间,其中在做控制地图显示范围耗时最多,差不多一个下午的时间。由于在网上没有看到有人做这个,就看百度地图API来自己做。
(1)结合上面的第一点,一开始还按照google map的习惯写经纬度值,发现无法加载地图。后来查看API,通过alert()输出,找出原因并改正。
(2)首先第一个坎,由于牵涉到比较经纬度的值,所以要获得单个经度和纬度。就理所当然的按照之前google maps中的lat=Point.lat(),
结果总是没有出效果,由于是在asp.net中写js代码也没法调试,就反复的查看代码寻找出错的地方,后来用alert()输出lat值,发现是undefined,
没有取到,此时还是不知道错误出在什么地方,后来再次翻看百度地图API,找到Point的属性方法,发现Point.lat后边没有括号(就如上面的第6点所见的一样)。
改正过来之后能正确的获得值了。
(3)在定义var strictBounds=new Bmap.Bounds(new BMap.Point(116.3645,39.9673),new BMap.Point(116.3646,39.9685))时总是出错,查了很久也找不出原因,就是不能加载地图。后来一不小心发现竟然是
把BMap中的M写成小写的了,囧。
(4)当中心点超出边界时,用map.setCenter(point)没有出现应有的效果,后来改为map.centerAndZoom(new BMap.Point(x,y),map.getZoom());从新加载地图来实现。
写这些就是想说,编程要细心,否则一个微小的错误就能让你查好久,或许一个笔误、一个习惯性的想当然都能导致错误。细心、认真。
由于最近同时使用了google地图和百度地图开发,所以也有一个小小的认识和了解,在这里就做一个微小的比较。这些都是我在实际应用中切身感受的,如有不对的地方还请看到这篇文章的大牛多多指教。
1、google地图的经纬度坐标点latLng(x,y)是先纬度后经度;百度地图中Point(y,x)是先经度后纬度。
2、google地图中的控件都是默认的(如平移缩放控件、是否可用鼠标滚轮缩放等);百度地图有些是需要添加控件来显示。
3、google地图上的marker图标都是表示一个点(即点击图标任何地方坐标都一样);百度地图的marker图标上的左边点不相同。
4、google地图添加marker可以直接设置各种属性值;百度添加marker相对麻烦一点。
5、百度地图添加一个新的label类,可以实现在marker旁边显式的添加描述信息。
6、google地图获取经纬度的单个值latLng.lat()后边有个括号;百度地图获取经纬度的单个值Point.lat后边没有括号。
目前接触到的差不多就这些,以后有接触到的再做补充。
二、写点在添加百度地图的时候走的弯路:
从google地图换成百度地图,花了将近一天的时间,其中在做控制地图显示范围耗时最多,差不多一个下午的时间。由于在网上没有看到有人做这个,就看百度地图API来自己做。
(1)结合上面的第一点,一开始还按照google map的习惯写经纬度值,发现无法加载地图。后来查看API,通过alert()输出,找出原因并改正。
(2)首先第一个坎,由于牵涉到比较经纬度的值,所以要获得单个经度和纬度。就理所当然的按照之前google maps中的lat=Point.lat(),
结果总是没有出效果,由于是在asp.net中写js代码也没法调试,就反复的查看代码寻找出错的地方,后来用alert()输出lat值,发现是undefined,
没有取到,此时还是不知道错误出在什么地方,后来再次翻看百度地图API,找到Point的属性方法,发现Point.lat后边没有括号(就如上面的第6点所见的一样)。
改正过来之后能正确的获得值了。
(3)在定义var strictBounds=new Bmap.Bounds(new BMap.Point(116.3645,39.9673),new BMap.Point(116.3646,39.9685))时总是出错,查了很久也找不出原因,就是不能加载地图。后来一不小心发现竟然是
把BMap中的M写成小写的了,囧。
(4)当中心点超出边界时,用map.setCenter(point)没有出现应有的效果,后来改为map.centerAndZoom(new BMap.Point(x,y),map.getZoom());从新加载地图来实现。
写这些就是想说,编程要细心,否则一个微小的错误就能让你查好久,或许一个笔误、一个习惯性的想当然都能导致错误。细心、认真。