2016-04-11 4 views
0

をドラッグ&ドロップすることにより、Googleマップ上でグリッドを描画して、グリッド内の各セルの中心にマーカーを配置する任意のユーティリティ/ソフトウェアがあります。..ドローグリッドとマーカーはすぐにマップする:

ヘルプの任意の種類非常に高く評価されています。

+0

質問**スタックオーバーフローのためにオフトピックです有害な回答やスパムを引き付ける代わりに、問題を説明し、それを解決するためにこれまでに何が行われているかを記述します。 – Adriaan

答えて

2

私はこれが役に立ちそうです。 'gridsize'変数をグリッドに必要な度数に調整します。

の作業例:彼らは傾向として**本、ツール、ソフトウェアライブラリ、チュートリアルや他のオフサイトのリソースをお勧めしますか見つけるために私たちを求めて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

こんにちは、ありがとう。今度は、あなたはar gridsize = 5と書いたように、度の代わりにグリッド(ボックス)をメートルに入れたいと思っています。 //グリッドサイズ(コード単位)。私は1000 * 1000 m^2グリッドが必要です。私は何をすべきか ?再度、感謝します – alone

関連する問題