map.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. function search_api(api_address, city) {
  2. var myValue = '';
  3. if(city){
  4. myValue = city;
  5. }
  6. if(api_address){
  7. myValue += api_address;
  8. }
  9. setPlace(myValue);
  10. }
  11. function setPlace(myValue) {
  12. var map = new BMap.Map("container");
  13. map.centerAndZoom(new BMap.Point(0, 0), 11);
  14. var top_left_control = new BMap.ScaleControl({
  15. anchor : BMAP_ANCHOR_TOP_LEFT
  16. });// 左上角,添加比例尺
  17. var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件
  18. map.clearOverlays(); //清除地图上所有覆盖物
  19. function myFun() {
  20. try {
  21. var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
  22. map.centerAndZoom(pp, 18);
  23. map.addOverlay(new BMap.Marker(pp)); //添加标注
  24. map.addControl(top_left_control);
  25. map.addControl(top_left_navigation);
  26. $("input[name='xpoint']").attr('value', pp.lng);
  27. $("input[name='ypoint']").attr('value', pp.lat);
  28. } catch (ex) {
  29. alert("搜索不到您输入的地址");
  30. }
  31. }
  32. var local = new BMap.LocalSearch(map, { //智能搜索
  33. onSearchComplete : myFun
  34. });
  35. local.search(myValue);
  36. }
  37. function draw_map(xpoint, ypoint) {
  38. var map = new BMap.Map("container");
  39. var opts = {
  40. type : BMAP_NAVIGATION_CONTROL_ZOOM
  41. }
  42. map.addControl(new BMap.NavigationControl());
  43. // map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
  44. // 创建地理编码服务实例
  45. var point = new BMap.Point(xpoint, ypoint);
  46. // 将结果显示在地图上,并调整地图视野
  47. map.centerAndZoom(point, 16);
  48. map.addOverlay(new BMap.Marker(point));
  49. }
  50. /*弹出窗口,并初始化地图*/
  51. function editMap(x, y) {
  52. $("#container_front").show();
  53. creat_map(x, y);
  54. }
  55. /*对弹出窗口初始化地图*/
  56. function creat_map(xpoint, ypoint) {
  57. var map = new BMap.Map("container_m");
  58. var point = new BMap.Point(xpoint, ypoint);
  59. map.centerAndZoom(point, 17);
  60. var myIcon = new BMap.Icon(red_point, new BMap.Size(28, 38));
  61. var marker = new BMap.Marker(point, {
  62. icon : myIcon
  63. }); // 创建标注
  64. var name = $("input[name='name']").attr('value');
  65. var label = create_lable(name);
  66. marker.setLabel(label);
  67. map.addOverlay(marker); // 将标注添加到地图中
  68. // map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放
  69. //新坐标
  70. var myIcon = new BMap.Icon(blue_point, new BMap.Size(21, 27));
  71. var marker_change = new BMap.Marker(point, {
  72. icon : myIcon
  73. });
  74. map.addOverlay(marker_change);
  75. marker_change.addEventListener("dragend", function(e) {
  76. if (confirm('是否更新标记坐标?')) {
  77. $("input[name='xpoint']").attr('value', e.point.lng);
  78. $("input[name='ypoint']").attr('value', e.point.lat);
  79. $("#container_front").hide();
  80. new_map(e.point.lng, e.point.lat, xpoint, ypoint);
  81. }
  82. })
  83. marker_change.enableDragging();
  84. map.addControl(new BMap.NavigationControl());
  85. }
  86. /*生成2个标记*/
  87. function new_map(x, y, old_x, old_y) {
  88. var map = new BMap.Map("container");
  89. var xpoint = old_x;
  90. var ypoint = old_y;
  91. var point = new BMap.Point(xpoint, ypoint);
  92. map.centerAndZoom(point, 17);
  93. var point_new = new BMap.Point(x, y);
  94. var myIcon_curron = new BMap.Icon(blue_point, new BMap.Size(28, 38));
  95. var marker = new BMap.Marker(point_new, {
  96. icon : myIcon_curron
  97. });
  98. var label = create_lable("修正坐标");
  99. marker.setLabel(label);
  100. map.addOverlay(marker); // 将标注添加到地图中
  101. var opts = {
  102. type : BMAP_NAVIGATION_CONTROL_SMALL
  103. }
  104. map.addControl(new BMap.NavigationControl(opts));
  105. map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放
  106. var myIcon = new BMap.Icon(red_point, new BMap.Size(28, 38));
  107. var marker_old = new BMap.Marker(point, {
  108. icon : myIcon
  109. });
  110. var label_old = create_lable("原始坐标");
  111. marker_old.setLabel(label_old);
  112. map.addOverlay(marker_old);
  113. marker.addEventListener('mouseover', function() {
  114. map.panTo(new BMap.Point(x, y));
  115. });
  116. window.setTimeout(function() {
  117. map.panTo(point_new);
  118. }, 2000);
  119. }
  120. function create_lable(name) {
  121. var label = new BMap.Label(name, {
  122. "offset" : new BMap.Size(-8, -20)
  123. });
  124. label.setStyle({
  125. borderColor : "#808080",
  126. color : "#333",
  127. cursor : "pointer"
  128. });
  129. return label;
  130. }