我需要在網格框爲1/4分鐘x 1/4分鐘的地圖上放置網格。 IOWs一個梯形。我使用Delphi和TWebBrowser使用的JavaScript。如何創建網格是地圖的查看區域
現在我正在響應單擊事件來測試繪製單個gridBox,但我將不得不繪製邊界已更改的事件並使用網格填充地圖。
由於1/4分鐘的網格非常小,因此在KML或融合中預先保存一個網格是不現實的,因此我決定在地圖上動態繪製它。
我的網格框將始終落在qtrMinute邊界上。我想確定的是如何創建這些框來填充地圖。
我需要從左上角開始繪製直到左下角,每當邊界被改變時重新繪製它們。
我會限制我的用戶縮放,以免施加過多的繪圖時間。
有人可以幫我用邏輯框來填充屏幕。
感謝 施普林格
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=geometry&sensor=false"></script>
<title>Find your Qtr minute locator</title>
</head>
<body style="height:100%;margin:0">
<!-- Declare the div, make it take up the full document body -->
<div id="map-canvas" style="width: 100%; height: 95%;"></div>
<script type="text/javascript">
var map;
var qtrArray = [];
var linesArray = [];
var Startlatlng;
var drawGridBox = false;
var gridline;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(33.00, -100.00),
zoom: 10,
streetViewControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true
});
var llOffset = 0.0666666666666667;
var oLat = 34.00;
var oLon = -100.00;
var gridlocator = [ new google.maps.LatLng(oLat, oLon)];
google.maps.event.addListener(map, 'click', function (event) {
/* google.maps.event.addListener(map, 'bounds_changed', DrawLine); */
// Square limits
var bottomLeftLat = Math.floor(event.latLng.lat()/llOffset) * llOffset;
var bottomLeftLong = Math.floor(event.latLng.lng()/llOffset) * llOffset;
var bounds = new google.maps.LatLngBounds();
var i;
var gridLineSquare = [
new google.maps.LatLng(bottomLeftLat, bottomLeftLong), //lwr left
new google.maps.LatLng(bottomLeftLat, bottomLeftLong + llOffset), //lwr right
new google.maps.LatLng(bottomLeftLat + llOffset, bottomLeftLong + llOffset), //upr right
new google.maps.LatLng(bottomLeftLat + llOffset, bottomLeftLong),
new google.maps.LatLng(bottomLeftLat, bottomLeftLong)];
for (i = 0; i < gridLineSquare.length; i++) {
bounds.extend(gridLineSquare[i]);
}
external.getData(event.latLng);
if (drawGridBox == true) {
polyline = new google.maps.Polyline({
path: polylinesquare,
geodesic: true,
strokeColor: '#0000FF',
strokeOpacity: 0.5,
strokeWeight: 1
});
polyline.setMap(map);
qtrArray.push(polyline);}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
function DrawGridOn() {drawGridBox = true}
function DrawGridOff() {drawGridBox = false}
function ClearLastGrid(){polyline.setMap(null); }
</script>
</body>
</html>
我得到一個JavaScript錯誤的代碼張貼'未捕獲的ReferenceError:MARRAY不defined' – geocodezip
我刪除了一段腳本。我試圖刪除所有與這個問題無關的腳本,但有一些被留下。 –
還有其他問題。請發佈一個[最小,完整,測試和可讀的示例](http://stackoverflow.com/help/mcve),演示代碼的當前狀態。 – geocodezip