Bez popisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

get_coordinate.htm 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6. <link rel="stylesheet" href="__PUBLIC__/plugins/layui/css/layui.css?v={$version}">
  7. <title>地图标注</title>
  8. <style>
  9. #map{width:100%;height:800px;}
  10. .layui-form-item{position:absolute;top:10px;z-index: 999999;}
  11. </style>
  12. </head>
  13. <body>
  14. <div class="layui-form-item">
  15. <div class="layui-inline">
  16. <label class="layui-form-label"></label>
  17. <div class="layui-input-inline">
  18. <input name="keyword" id="keyword" type="text" placeholder="输入地址搜索,可以移动标注点更改位置确定保存" class="layui-input" autocomplete="off" size="25" value="{$keyword}" />
  19. </div>
  20. <input type="hidden" id="location" value="{$lng},{$lat}">
  21. <input type="hidden" id="alladdress" value="">
  22. <button class="layui-btn layui-btn-normal" id="search">搜索</button>
  23. <button class="layui-btn layui-btn-danger" id="sure">确定</button>
  24. </div>
  25. </div>
  26. <div id="map">
  27. </div>
  28. <script src="__PUBLIC__/plugins/layui/layui.js?v={$version}"></script>
  29. <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak={$ak}"></script>
  30. <script type="text/javascript">
  31. // 百度地图API功能
  32. var lng = "{$lng}",lat = "{$lat}",keyword = "{$keyword}";
  33. var map = new BMap.Map("map",{enableMapClick:false});
  34. // 创建地址解析器实例
  35. var myGeo = new BMap.Geocoder();
  36. if(lng*1 && lat*1)
  37. {
  38. var point = new BMap.Point(lng,lat);
  39. map.centerAndZoom(point, 15);
  40. var marker = new BMap.Marker(point);// 创建标注
  41. map.addOverlay(marker); // 将标注添加到地图中
  42. marker.enableDragging(); // 可拖拽
  43. marker.addEventListener('dragend',getMarkerPoint);
  44. getMarkerPoint(point);
  45. }else{
  46. //new BMap.Point(110.211023,20.007536);
  47. // map.centerAndZoom(keyword,14);
  48. // 将地址解析结果显示在地图上,并调整地图视野
  49. myGeo.getPoint(keyword, function(point){
  50. if (point) {
  51. map.centerAndZoom(point, 15);
  52. var marker = new BMap.Marker(point);
  53. map.addOverlay(marker);
  54. marker.enableDragging(); // 可拖拽
  55. marker.addEventListener('dragend',getMarkerPoint);
  56. getMarkerPoint(point);
  57. }
  58. }, "海口市");
  59. }
  60. map.addControl(new BMap.NavigationControl());
  61. map.enableScrollWheelZoom(true);
  62. window.onload = function(){
  63. var h = document.documentElement.clientHeight - 20;
  64. document.getElementById('map').style.height = h+'px';
  65. };
  66. function getMarkerPoint(e)
  67. {
  68. //通过点击百度地图,可以获取到对应的point, 由point的lng、lat属性就可以获取对应的经度纬度
  69. var pot = '';
  70. if (!e.point) {
  71. pot = e;
  72. } else {
  73. pot = e.point;
  74. }
  75. myGeo.getLocation(pot, function(rs){
  76. //addressComponents对象可以获取到详细的地址信息
  77. var addComp = rs.addressComponents;
  78. var alladdress = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;
  79. document.getElementById("alladdress").value = alladdress; //详细地址
  80. document.getElementById("location").value = pot.lng + ',' + pot.lat; // 经度 纬度
  81. });
  82. }
  83. </script>
  84. <script>
  85. layui.use(['jquery'], function(){
  86. var $ = layui.jquery;
  87. $(document).keydown(function(event){
  88. if(event.keyCode ==13){
  89. $('#search').trigger("click");
  90. }
  91. });
  92. $("#search").on('click',function(){
  93. var keyword = $("#keyword").val();
  94. var url = "{:url('Map/getLocationByAddress')}";
  95. var param = {
  96. address : keyword,
  97. _ajax:1,
  98. };
  99. $.get(url,param,function(res){
  100. if(res.code == 1)
  101. {
  102. map.clearOverlays();
  103. var point = new BMap.Point(res.data.lng,res.data.lat);
  104. map.centerAndZoom(point, 15);
  105. var marker = new BMap.Marker(point);// 创建标注
  106. map.addOverlay(marker);
  107. marker.enableDragging();
  108. marker.addEventListener('dragend',getMarkerPoint);
  109. getMarkerPoint(point);
  110. }
  111. });
  112. });
  113. $("#sure").on('click',function(){
  114. var index = parent.layer.getFrameIndex(window.name);
  115. var location = $("#location").val();
  116. var callback = "{$func}";
  117. var alladdress = $("#alladdress").val();
  118. if (callback != "undefined") {
  119. eval('window.parent.'+callback+'(location, alladdress)');
  120. }
  121. parent.layer.close(index);
  122. });
  123. });
  124. </script>
  125. </body>
  126. </html>