Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/04/2013, 03:53
Avatar de ipraetoriux
ipraetoriux
 
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 9 meses
Puntos: 155
Respuesta: Api google maps

aca tienes todo el codigo

Código HTML:
Ver original
  1. <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  2. <style type="text/css">
  3.   div#map {
  4.     position: relative;
  5.   }
  6.  
  7.   div#crosshair {
  8.     position: absolute;
  9.     top: 192px;
  10.     height: 19px;
  11.     width: 19px;
  12.     left: 50%;
  13.     margin-left: -8px;
  14.     display: block;
  15.     background: url(crosshair.gif);
  16.     background-position: center center;
  17.     background-repeat: no-repeat;
  18. }
  19. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
  20. <script type="text/javascript">
  21.   var map;
  22.   var geocoder;
  23.   var centerChangedLast;
  24.   var reverseGeocodedLast;
  25.   var currentReverseGeocodeResponse;
  26.  
  27.   function initialize() {
  28.     var latlng = new google.maps.LatLng(32.5468,-23.2031);
  29.     var myOptions = {
  30.       zoom: 2,
  31.       center: latlng,
  32.       mapTypeId: google.maps.MapTypeId.ROADMAP
  33.     };
  34.     map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  35.     geocoder = new google.maps.Geocoder();
  36.  
  37.  
  38.     setupEvents();
  39.     centerChanged();
  40.   }
  41.  
  42.   function setupEvents() {
  43.     reverseGeocodedLast = new Date();
  44.     centerChangedLast = new Date();
  45.  
  46.     setInterval(function() {
  47.       if((new Date()).getSeconds() - centerChangedLast.getSeconds() > 1) {
  48.         if(reverseGeocodedLast.getTime() < centerChangedLast.getTime())
  49.          reverseGeocode();
  50.      }
  51.    }, 1000);
  52.  
  53.    google.maps.event.addListener(map, 'zoom_changed', function() {
  54.      document.getElementById("zoom_level").innerHTML = map.getZoom();
  55.    });
  56.  
  57.    google.maps.event.addListener(map, 'center_changed', centerChanged);
  58.  
  59.    google.maps.event.addDomListener(document.getElementById('crosshair'),'dblclick', function() {
  60.       map.setZoom(map.getZoom() + 1);
  61.    });
  62.  
  63.  }
  64.  
  65.  function getCenterLatLngText() {
  66.    return '(' + map.getCenter().lat() +', '+ map.getCenter().lng() +')';
  67.  }
  68.  
  69.  function centerChanged() {
  70.    centerChangedLast = new Date();
  71.    var latlng = getCenterLatLngText();
  72.    document.getElementById('latlng').innerHTML = latlng;
  73.    document.getElementById('formatedAddress').innerHTML = '';
  74.    currentReverseGeocodeResponse = null;
  75.  }
  76.  
  77.  function reverseGeocode() {
  78.    reverseGeocodedLast = new Date();
  79.    geocoder.geocode({latLng:map.getCenter()},reverseGeocodeResult);
  80.  }
  81.  
  82.  function reverseGeocodeResult(results, status) {
  83.    currentReverseGeocodeResponse = results;
  84.    if(status == 'OK') {
  85.      if(results.length == 0) {
  86.        document.getElementById('formatedAddress').innerHTML = 'None';
  87.      } else {
  88.        document.getElementById('formatedAddress').innerHTML = results[0].formatted_address;
  89.      }
  90.    } else {
  91.      document.getElementById('formatedAddress').innerHTML = 'Error';
  92.    }
  93.  }
  94.  
  95.  
  96.  function geocode() {
  97.    var address = document.getElementById("address").value;
  98.    geocoder.geocode({
  99.      'address': address,
  100.      'partialmatch': true}, geocodeResult);
  101.  }
  102.  
  103.  function geocodeResult(results, status) {
  104.    if (status == 'OK' && results.length > 0) {
  105.       map.fitBounds(results[0].geometry.viewport);
  106.     } else {
  107.       alert("Geocode was not successful for the following reason: " + status);
  108.     }
  109.   }
  110.  
  111.   function addMarkerAtCenter() {
  112.     var marker = new google.maps.Marker({
  113.         position: map.getCenter(),
  114.         map: map
  115.     });
  116.  
  117.     var text = 'Lat/Lng: ' + getCenterLatLngText();
  118.     if(currentReverseGeocodeResponse) {
  119.       var addr = '';
  120.       if(currentReverseGeocodeResponse.size == 0) {
  121.         addr = 'None';
  122.       } else {
  123.         addr = currentReverseGeocodeResponse[0].formatted_address;
  124.       }
  125.       text = text + '<br>' + 'address: <br>' + addr;
  126.     }
  127.  
  128.     var infowindow = new google.maps.InfoWindow({ content: text });
  129.  
  130.     google.maps.event.addListener(marker, 'click', function() {
  131.       infowindow.open(map,marker);
  132.     });
  133.   }
  134.  
  135. </head>
  136. <body onload="initialize()">
  137.   Find Place: <input type="text" id="address"/><input type="button" value="Go" onclick="geocode()"><input type="button" value="Add Marker at Center" onclick="addMarkerAtCenter()"/>
  138.   <div id="map">
  139.     <div id="map_canvas" style="width:100%; height:400px"></div>
  140.     <div id="crosshair"></div>
  141.   </div>
  142.  
  143.   <table>
  144.     <tr><td>Lat/Lng:</td><td><div id="latlng"></div></td></tr>
  145.     <tr><td>Address:</td><td><div id="formatedAddress"></div></td></tr>
  146.     <tr><td>Zoom Level</td><td><div id="zoom_level">2</div></td></tr>
  147.   </table>
  148. </body>
  149. </html>