2016-04-11 20 views
0

bırakarak google haritalar üzerinde tablo çizmek ve ızgarada her hücrenin merkezinde işaretleyici koymak için herhangi yarar/yazılım var mı ..Çizim ızgara ve işaretleyici hızla eşler: sürükleyip

yardım her türlü son derece takdir edilmektedir.

+0

Sorular ** Bir kitap, aracı, yazılım kütüphanesi, öğretici veya diğer tesis dışı kaynak tavsiye veya bulmamızı isteyen ** konu dışı yığın taşması içindir Görüşülen cevaplar ve spam çekmek için. Bunun yerine, sorunu ve çözmek için şimdiye kadar yapılmış olan şeyi açıklayın. – Adriaan

cevap

2

Umarım bu yardımcı olur. 'Gridsize' değişkenini ızgara için gereken derecelere ayarlayın.

Çalışma örneği: onlar eğilimi olarak https://jsfiddle.net/fcoramos/kw1jpz5h/6/

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 

<script src="https://maps.googleapis.com/maps/api/js" ></script> 
<script> 
var map, 
    myCenter = new google.maps.LatLng(-33,-71), 
    gridstyle = { strokeColor: 'yellow', strokeWeight: 1 }; 
    grid = [], 
    markers = [] 

function initialize() { 
    var mapProp = { 
    center:myCenter, 
    zoom:4, 
    mapTypeId:google.maps.MapTypeId.HYBRID, 
    scaleControl:true }; 

    map=new google.maps.Map(document.getElementById('map'),mapProp); 

    var gridsize = 5; //Grid size in degrees 

    google.maps.event.addListener(map,'bounds_changed', function() { 
     var gridline, 
      gridlat, 
      gridlon, 
      n = map.getBounds().getNorthEast().lat(), 
      s = map.getBounds().getSouthWest().lat(), 
      e = map.getBounds().getNorthEast().lng(), 
      w = map.getBounds().getSouthWest().lng() 

     // If a previous grid and markers are set, we remove them. 
     if (grid.length > 0) { 
      for (var i = 0; i < grid.length; i++) { grid[i].setMap(null); } 
     }  

     if (markers.length > 0) 
     { 
      for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } 
     } 

     var sgrid = Math.round(s/gridsize)*gridsize; 
     var wgrid = Math.round(w/gridsize)*gridsize; 

     // Here we create the grid. 
     for (gridlat = sgrid; gridlat < n; gridlat = gridlat + gridsize) 
     { 
      var gridline = new google.maps.Polyline({ 
      path: [{lat: gridlat, lng: e}, {lat: gridlat, lng: w}], 
      map: map 
      }); 
      gridline.setOptions(gridstyle); 
      grid.push(gridline); 
     } 

     for (gridlng = wgrid; gridlng < e; gridlng = gridlng + gridsize) 
     { 
      var gridline = new google.maps.Polyline({ 
      path: [{lat: n, lng: gridlng}, {lat: s, lng: gridlng}], 
      map: map 
      }); 
      gridline.setOptions(gridstyle); 
      grid.push(gridline); 
     } 

    // Here we create the markers.  
    for (markerlat = sgrid+gridsize/2; markerlat < n; markerlat = markerlat + gridsize) 
    { 
     for (markerlng = wgrid+gridsize/2; markerlng < e; markerlng = markerlng + gridsize) 
     { 
      var markerposition = {lat: markerlat, lng: markerlng}; 
      var marker = new google.maps.Marker({ 
      position: markerposition, 
      map: map 
      }); 
      markers.push(marker); 
     } 
    } 
    }); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</head> 
<body> 
<div id="map" style="width:500px;height:500px;"></div> 
</body> 
</html> 
+0

merhaba çok teşekkür ederim fco cevap çok teşekkür ederim. şimdi siz grid olarak belirttiğim gibi ızgaralar yerine metre (kutu) almak istiyorum = 5; // Koddaki derece cinsinden ızgara boyutu. 1000 * 1000 m^2 ızgaraya ihtiyacım var. ne yapmalıyım ? Tekrar teşekkürler – alone