google map api v3

两部分代码:body 和 head

 

 

特别注意:  height:的值 如果设置为 100% ,,地图就不会显示。

 

 

<body  οnlοad="initialize()" >
    <form id="form1" runat="server">
   Find Place:<input type="text" id="address"/>
    <input type="button" value="Go" οnclick="geocode()" />
    <input type="button" value="Add Marker at Center" οnclick="addMarkerAtCenter()"/>

  <div id="map">
    <div id="map_canvas" style="width:100%; height:400px"></div>
    <div id="crosshair"></div>
  </div>
  <table>
    <tr><td>Lat/Lng:</td><td><div id="latlng"></div></td></tr>
    <tr><td>Address:</td><td><div id="formatedAddress"></div></td></tr>
    <tr><td>Zoom Level</td><td><div id="zoom_level">2</div></td></tr>
  </table> 
    </form>
</body>

 

 

<head runat="server">
    <title>无标题页</title>

<style type="text/css">
  div#map {
    position: relative;
  }

  div#crosshair {
    position: absolute;
    top: 192px;
    height: 19px;
    width: 19px;
    left: 50%;
    margin-left: -8px;
    display: block;
    background: url(crosshair.gif);
    background-position: center center;
    background-repeat: no-repeat;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
  var map;
  var geocoder;
  var centerChangedLast;
  var reverseGeocodedLast;
  var currentReverseGeocodeResponse;

  function initialize() {
    var latlng = new google.maps.LatLng(39.91,116.404);
    var myOptions = {
      zoom:12,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    geocoder = new google.maps.Geocoder();

  var  beijing=new google.maps.Marker({ position:latlng,map:map,title:"beijing" })
 
      var yongzhou=new google.maps.Marker({
 position: new google.maps.LatLng(26.41155054662258,
 111.610107421875),map:map, title:"yongzhu" })
 
       
    var changde=new google.maps.Marker({
 position: new google.maps.LatLng(29.017748018496046,
 111.68701171875),map:map, title:"changde",icon:'image/up.png' })
 
     var heyang=new google.maps.Marker({
 position: new google.maps.LatLng(28.22697003891834,
 112.91748046875), map:map, title:"heyang"})
 
    setupEvents();
    centerChanged();
  }

  function setupEvents() {
    reverseGeocodedLast = new Date();
    centerChangedLast = new Date();

    setInterval(function() {
      if((new Date()).getSeconds() - centerChangedLast.getSeconds() > 1) {
        if(reverseGeocodedLast.getTime() < centerChangedLast.getTime())
          reverseGeocode();
      }
    }, 1000);

    google.maps.event.addListener(map, 'zoom_changed', function() {
      document.getElementById("zoom_level").innerHTML = map.getZoom();
    });

    google.maps.event.addListener(map, 'center_changed', centerChanged);

    google.maps.event.addDomListener(document.getElementById('crosshair'),'dblclick', function() {
       map.setZoom(map.getZoom() + 1);
    });

  }

  function getCenterLatLngText() {
    return '(' + map.getCenter().lat() +', '+ map.getCenter().lng() +')';
  }

  function centerChanged() {
    centerChangedLast = new Date();
    var latlng = getCenterLatLngText();
    document.getElementById('latlng').innerHTML = latlng;
    document.getElementById('formatedAddress').innerHTML = '';
    currentReverseGeocodeResponse = null;
  }

  function reverseGeocode() {
    reverseGeocodedLast = new Date();
    geocoder.geocode({latLng:map.getCenter()},reverseGeocodeResult);
  }

 function reverseGeocodeResult(results, status) {
   currentReverseGeocodeResponse = results;
  if(status == 'OK') {
     if(results.length == 0) {
       document.getElementById('formatedAddress').innerHTML = 'None';
      } else {
        document.getElementById('formatedAddress').innerHTML = results[0].formatted_address;
     }
  } else {
    document.getElementById('formatedAddress').innerHTML = 'Error';
   }
 }


      
function geocode() {
   var address = document.getElementById("address").value;
    geocoder.geocode({
     'address': address,
      'partialmatch': true}, geocodeResult);
 }

 function geocodeResult(results, status) {
    if (status == 'OK' && results.length > 0) {
     map.fitBounds(results[0].geometry.viewport);
   } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  }

  function addMarkerAtCenter() {
    var marker = new google.maps.Marker({
       position: map.getCenter(),
       map: map     });

    var text = 'Lat/Lng: ' + getCenterLatLngText();
   if(currentReverseGeocodeResponse) {
     var addr = '';
      if(currentReverseGeocodeResponse.size == 0) {
       addr = 'None';
     } else {
        addr = currentReverseGeocodeResponse[0].formatted_address;
     }
     text = text + '<br>' + 'address: <br>' + addr;    }
   var infowindow = new google.maps.InfoWindow({ content: text });
    google.maps.event.addListener(marker, 'click', function() {
     infowindow.open(map,marker);
  });
  }

</script>
</head>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值