gmap.html 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></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:0;padding:0;
  16. }
  17. .content{padding: 9px 0 0 15px;height:100%;}
  18. .content table tr{height: 30px; line-height: 30px;}
  19. #address{width:220px;height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
  20. a.doSearch{display:block;text-align:center;line-height:24px; text-decoration: none;height:24px;width:95px;border: 0;background:url(../../themes/default/images/icons-all.gif) no-repeat;}
  21. a.doSearch:hover{background-position: 0 -30px;}
  22. </style>
  23. </head>
  24. <body>
  25. <div class="content">
  26. <table>
  27. <tr>
  28. <td><label for="address"><var id="lang_input_address"></var></label></td>
  29. <td><input id="address" type="text" /></td>
  30. <td><a id="doSearch" href="javascript:void(0)" class="doSearch"><var id="lang_input_search"></var></a></td>
  31. </tr>
  32. </table>
  33. <div id="container" style="width: 520px; height: 340px; border: 1px solid gray;"></div>
  34. </div>
  35. <script type="text/javascript" src="../internal.js"></script>
  36. <script type="text/javascript">
  37. utils.domReady(function(){
  38. var map = new google.maps.Map(document.getElementById('container'), {
  39. zoom: 3,
  40. streetViewControl: false,
  41. scaleControl: true,
  42. mapTypeId: google.maps.MapTypeId.ROADMAP
  43. });
  44. var imgcss;
  45. var marker = new google.maps.Marker({
  46. map: map,
  47. draggable: true
  48. });
  49. function doSearch(){
  50. var address = document.getElementById('address').value;
  51. var geocoder = new google.maps.Geocoder();
  52. geocoder.geocode( { 'address': address}, function (results, status) {
  53. if (status == google.maps.GeocoderStatus.OK) {
  54. var bounds = results[0].geometry.viewport;
  55. map.fitBounds(bounds);
  56. marker.setPosition(results[0].geometry.location);
  57. marker.setTitle(address);
  58. } else alert(lang.searchError);
  59. });
  60. }
  61. $G('address').onkeydown = function (evt){
  62. evt = evt || event;
  63. if (evt.keyCode == 13) {
  64. doSearch();
  65. }
  66. };
  67. $G("doSearch").onclick = doSearch;
  68. dialog.onok = function (){
  69. var center = map.getCenter();
  70. var point = marker.getPosition();
  71. var url = "http://maps.google.com/maps/api/staticmap?center=" + center.lat() + ',' + center.lng() + "&zoom=" + map.zoom + "&size=520x340&maptype=" + map.getMapTypeId() + "&markers=" + point.lat() + ',' + point.lng() + "&sensor=false";
  72. editor.execCommand('inserthtml', '<img width="520" height="340" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
  73. };
  74. function getPars(str,par){
  75. var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
  76. return reg.exec(str)[1];
  77. }
  78. var img = editor.selection.getRange().getClosedNode();
  79. if(img && img.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1){
  80. var url = img.getAttribute("src");
  81. var centers = getPars(url,"center").split(",");
  82. point = new google.maps.LatLng(Number(centers[0]),Number(centers[1]));
  83. map.setCenter(point);
  84. map.setZoom(Number(getPars(url,"zoom")));
  85. centers = getPars(url,"markers").split(",");
  86. marker.setPosition(new google.maps.LatLng(Number(centers[0]),Number(centers[1])));
  87. imgcss = img.style.cssText;
  88. }else{
  89. doSearch();
  90. }
  91. });
  92. </script>
  93. </body>
  94. </html>