map.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>插入地图</title>
  6. <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
  7. <script type="text/javascript" src="../internal.js"></script>
  8. <style type="text/css">
  9. *{color: #838383}
  10. body {
  11. font-size: 12px;
  12. width:540px;
  13. height: 350px;
  14. overflow: hidden;
  15. margin:0px;padding:0px;
  16. }
  17. .content{padding: 9px 0px 0px 15px;height:100%;}
  18. .content table{padding:0px;margin:0px;width: 100%}
  19. .content table tr{padding:0px;margin:0px; list-style: none;height: 30px; line-height: 30px;}
  20. #city,#address{height:21px;background: #FFF;border:1px solid #d7d7d7;padding: 0px; margin: 0px; line-height: 21px;}
  21. #city{width:90px}
  22. #address{width:220px}
  23. a.doSearch{display:block;text-align:center;line-height:24px; text-decoration: none;height:24px;width:95px;border: 0px;margin:0px;padding:0px;background:url(../../themes/default/images/icons-all.gif) no-repeat;}
  24. a.doSearch:hover{background-position: 0 -30px;}
  25. </style>
  26. </head>
  27. <body>
  28. <div class="content">
  29. <table>
  30. <tr>
  31. <td>城市:</td>
  32. <td><input id="city" type="text" value="北京市" /></td>
  33. <td>地址:</td>
  34. <td><input id="address" type="text" value="" /></td>
  35. <td><a href="javascript:doSearch()" class="doSearch">搜索</a></td>
  36. </tr>
  37. </table>
  38. <div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
  39. </div>
  40. <script type="text/javascript">
  41. var map = new BMap.Map("container"),marker,point,imgcss;
  42. map.enableScrollWheelZoom();
  43. map.enableContinuousZoom();
  44. function doSearch(){
  45. if (!document.getElementById('city').value) {
  46. alert('请输入城市!');
  47. return;
  48. }
  49. var search = new BMap.LocalSearch(document.getElementById('city').value, {
  50. onSearchComplete: function (results){
  51. if (results && results.getNumPois()) {
  52. var points = [];
  53. for (var i=0; i<results.getCurrentNumPois(); i++) {
  54. points.push(results.getPoi(i).point);
  55. }
  56. if (points.length > 1) {
  57. map.setViewport(points);
  58. } else {
  59. map.centerAndZoom(points[0], 13);
  60. }
  61. point = map.getCenter();
  62. marker.setPoint(point);
  63. } else {
  64. alert('无法定位到该地址!');
  65. }
  66. }
  67. });
  68. search.search(document.getElementById('address').value || document.getElementById('city').value);
  69. }
  70. //获得参数
  71. function getPars(str,par){
  72. var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
  73. return reg.exec(str)[1];
  74. }
  75. function init(){
  76. var img = editor.selection.getRange().getClosedNode();
  77. if(img && /api[.]map[.]baidu[.]com/ig.test(img.getAttribute("src"))){
  78. var url = img.getAttribute("src"),centers;
  79. centers = getPars(url,"center").split(",");
  80. point = new BMap.Point(Number(centers[0]),Number(centers[1]));
  81. map.addControl(new BMap.NavigationControl());
  82. map.centerAndZoom(point, Number(getPars(url,"zoom")));
  83. imgcss = img.style.cssText;
  84. }else{
  85. point = new BMap.Point(116.404, 39.915); // 创建点坐标
  86. map.addControl(new BMap.NavigationControl());
  87. map.centerAndZoom(point, 10); // 初始化地图,设置中心点坐标和地图级别。
  88. }
  89. marker = new BMap.Marker(point);
  90. marker.enableDragging();
  91. map.addOverlay(marker);
  92. }
  93. init();
  94. document.getElementById('address').onkeydown = function (evt){
  95. evt = evt || event;
  96. if (evt.keyCode == 13) {
  97. doSearch();
  98. }
  99. };
  100. dialog.onok = function (){
  101. var center = map.getCenter();
  102. var zoom = map.zoomLevel;
  103. var size = map.getSize();
  104. var point = marker.getPoint();
  105. var url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
  106. "&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
  107. editor.execCommand('inserthtml', '<img width="'+ size.width +'"height="'+ size.height +'" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
  108. };
  109. document.getElementById("address").focus();
  110. </script>
  111. </body>
  112. </html>