获取地图坐标

来源:互联网 发布:金税盘开票软件界面 编辑:程序博客网 时间:2024/05/18 16:14

前台HTML代码:

 <form id="form1" runat="server">    <div id="edit">       <table cellpadding="0" cellspacing="0" class="edittb">           <tr>              <td colspan="2">  <asp:Label id="labelOrgan" runat="server" style="font-size:15px;font-weight:bold;"></asp:Label></td>           </tr>           <tr>             <td>  经度:               <asp:TextBox id="txtLongitude" runat="server" CssClass="txt" Width="150px"></asp:TextBox>               <span style="color:Red">*</span>             </td>             <td>  纬度:               <asp:TextBox id="txtLatitude" runat="server" CssClass="txt" Width="150px"></asp:TextBox>               <span style="color:Red">*</span>             </td>          </tr>          <tr>             <td colspan="2">  坐标地址:              <asp:TextBox id="txtLocation" runat="server" CssClass="txt" Width="340px"></asp:TextBox>              <span style="color:Red">*</span>             </td>          </tr>          <tr>            <td colspan="2">    <asp:Button ID="btnEdit" runat="server" Text="提交" CssClass="btn_search" onclick="btnEdit_Click" OnClientClick="return chkData();"/></td>          </tr>        </table>    </div>    <div id="map" style="width:100%;height:100%;overflow:hidden;margin:0;"></div>    </form> 


<script type="text/javascript">    var map;//地图    var marker;//标注    var p;//坐标点,地图区域大小变化时,以此为中心点    var geo;//地址解析器    window.onload = function() {                 setHeight();                 initMap();        onresize= setHeight;    }    function setHeight() {            var h= $(window).height()-$("#edit").height() + 'px';        $("#map").css("height",h);    }    function initMap(){       map = new BMap.Map("map");      map.setDefaultCursor("default");      map.setDraggingCursor("default");      geo = new BMap.Geocoder();      var r = <%=islocated %>;      if(r==1)//已获取坐标,按坐标在地图上标点      {          p = new BMap.Point($("#txtLongitude").val(), $("#txtLatitude").val());                   marker = new BMap.Marker(p,{enableDragging: true});          map.centerAndZoom(p, 15);          map.addOverlay(marker);          setMarkerEvent();      }      else      {         var addr = <%=address %>;//机构管理中已有的地址信息               var json = <%=GetRegionInfo()%>;//获取机构所在地区信息         if(json!="")         {               //优先按地址解析            geo.getPoint(addr, function (point) {                if (point)//地址解析成功时,以地址对应的坐标为中心铺开地图                {                       p = point;                    marker = new BMap.Marker(point,{enableDragging: true});                    map.centerAndZoom(point, 15);                    map.addOverlay(marker);                    setMarkerEvent();                }                else //地址解析失败时,按地区解析,地区级别不同,中心点获取方式不同                {                   if(json.regiontype>=2)//区县级机构                     geo.getPoint(json.regionname,                                   function (point) { if (point) map.centerAndZoom(point, 16); },                                  json.fathername);                   else                      map.centerAndZoom(json.regionname);                   p = map.getCenter();                }             }, json.fathername);        }        else //机构地区信息获取失败时,以省为中心点铺开地图        {               map.centerAndZoom("福建省");             p = map.getCenter();        }     }          //启用滚轮放大缩小     map.enableScrollWheelZoom();     //向地图中添加缩放控件     map.addControl(new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE }));     //向地图中添加比例尺控件     map.addControl(new BMap.ScaleControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT }));     //地图单击事件     map.addEventListener("click", function (e) {        p = new BMap.Point(e.point.lng, e.point.lat);        // 根据坐标得到地址描述          geo.getLocation(p, function (result) {            if (result) {                var newaddr = result.address.substring(3);                $("#txtLongitude").val("");                $("#txtLongitude").val(e.point.lng); ;                $("#txtLatitude").val("");                $("#txtLatitude").val(e.point.lat);                                $("#txtLocation").val("");                $("#txtLocation").val(newaddr);                 map.clearOverlays();                marker = new BMap.Marker(p,{enableDragging: true});                map.addOverlay(marker);                marker.openInfoWindow(new BMap.InfoWindow(newaddr));                setMarkerEvent();              }        });          });        //地图区域大小变化事件    map.addEventListener('resize', function(){        map.setCenter(p);//设置中心点    });         //鼠标在地图区域中移动时事件    var label;    map.addEventListener('mousemove', function(e){       map.removeOverlay(label);       var p=new BMap.Point(e.point.lng, e.point.lat);       label = new BMap.Label(e.point.lng + ','+ e.point.lat, {position:p,offset:new BMap.Size(10, 20)});       label.setStyle({borderColor:"black"});      map.addOverlay(label);           });         //鼠标移出地图区域事件    map.addEventListener('mouseout', function(){       map.removeOverlay(label);          });   }  function setMarkerEvent() {    //标注拖拽事件    marker.addEventListener("dragend", function (e) {        p = new BMap.Point(e.point.lng, e.point.lat);        // 根据坐标得到地址描述          geo.getLocation(p, function (result) {            if (result) {                var newaddr = result.address.substring(3);                $("#txtLongitude").val("");                $("#txtLongitude").val(e.point.lng); ;                $("#txtLatitude").val("");                $("#txtLatitude").val(e.point.lat);                                $("#txtLocation").val("");                $("#txtLocation").val(newaddr);                 marker.openInfoWindow(new BMap.InfoWindow(newaddr));              }        });          });  }</script>


















0 0
原创粉丝点击