/examples/MarkerManagerDemo/bin-release/srcview/source/com/google/maps/examples/MarkerManager.as.html
http://gmaps-utility-library-flash.googlecode.com/ · HTML · 727 lines · 643 code · 83 blank · 1 comment · 0 complexity · f9b25b2c778f7d42552e7fa30b6dfba8 MD5 · raw file
- <!-- saved from url=(0014)about:internet -->
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>MarkerManager.as</title>
- <link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
- </head>
-
- <body><pre><span class="ActionScriptComment">/*
- * MarkerManager, v1.0
- * Copyright (c) 2007 Google Inc.
- * Author: Doug Ricket, others
- * Ported to AS3 by Pamela Fox
- *
- * Licensed under the Apache License, Version 2.0:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Marker manager is an interface between the map and the user, designed
- * to manage adding and removing many points when the viewport changes.
- *
- * Algorithm: The MM places its markers onto a grid, similar to the map tiles.
- * When the user moves the viewport, the MM computes which grid cells have
- * entered or left the viewport, and shows or hides all the markers in those
- * cells.
- * (If the users scrolls the viewport beyond the markers that are loaded,
- * no markers will be visible until the EVENT_moveend triggers an update.)
- *
- * In practical consequences, this allows 10,000 markers to be distributed over
- * a large area, and as long as only 100-200 are visible in any given viewport,
- * the user will see good performance corresponding to the 100 visible markers,
- * rather than poor performance corresponding to the total 10,000 markers.
- *
- * Note that some code is optimized for speed over space,
- * with the goal of accommodating thousands of markers.
- *
- */</span>
- <span class="ActionScriptpackage">package</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">examples</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">events</span>.<span class="ActionScriptDefault_Text">Event</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">events</span>.<span class="ActionScriptDefault_Text">MouseEvent</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">geom</span>.<span class="ActionScriptDefault_Text">Point</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">DisplayObject</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">Sprite</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">Shape</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextField</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextFieldAutoSize</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextFormat</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">MapEvent</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">MapMoveEvent</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">Map</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">LatLng</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">LatLngBounds</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">examples</span>.<span class="ActionScriptDefault_Text">GridBounds</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">overlays</span>.<span class="ActionScriptDefault_Text">Marker</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">interfaces</span>.<span class="ActionScriptDefault_Text">IMap</span>;
- <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">interfaces</span>.<span class="ActionScriptDefault_Text">IProjection</span>;
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">MarkerManager</span> <span class="ActionScriptBracket/Brace">{</span>
-
- <span class="ActionScriptComment">// Static constants:
- </span><span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_TILE_SIZE</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 1024;
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_MAX_ZOOM</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 17;
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_BORDER_PADDING</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 100;
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">MERCATOR_ZOOM_LEVEL_ZERO_RANGE</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 256;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">map_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IMap</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mapZoom_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">projection_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IProjection</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">trackMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">swPadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">nePadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">borderPadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shownBounds_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptASDoc">/**
- * Creates a new MarkerManager that will show/hide markers on a map.
- *
- * @constructor
- * @param {Map} map The map to manage.
- * @param {Object} opt_opts A container for optional arguments:
- * {Number} maxZoom The maximum zoom level for which to create tiles.
- * {Number} borderPadding The width in pixels beyond the map border,
- * where markers should be display.
- * {Boolean} trackMarkers Whether or not this manager should track marker
- * movements.
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">MarkerManager</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">map</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IMap</span>, <span class="ActionScriptDefault_Text">opt_opts</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Object</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>.<span class="ActionScriptDefault_Text">getZoom</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">projection_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>.<span class="ActionScriptDefault_Text">getCurrentMapType</span><span class="ActionScriptBracket/Brace">()</span>.<span class="ActionScriptDefault_Text">getProjection</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptDefault_Text">opt_opts</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptBracket/Brace">{}</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_TILE_SIZE</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_MAX_ZOOM</span>;
- <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">maxZoom</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptReserved">undefined</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">maxZoom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">maxZoom</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">maxZoom</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">trackMarkers_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">trackMarkers</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">borderPadding</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">padding</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">borderPadding</span>;
- <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">padding</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_BORDER_PADDING</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptComment">// The padding in pixels beyond the viewport, where we will pre-load markers.
- </span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">swPadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">-</span><span class="ActionScriptDefault_Text">padding</span>, <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">nePadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">padding</span>, <span class="ActionScriptOperator">-</span><span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">borderPadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">padding</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">MapMoveEvent</span>.<span class="ActionScriptDefault_Text">MOVE_END</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">onMapMoveEnd_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getMapGridBounds_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptComment">// NOTE: These two closures provide easy access to the map.
- </span><span class="ActionScriptComment">// They are used as callbacks, not as methods.
- </span><span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">removeOverlay</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">--</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">addOverlay</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">++</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Initializes MarkerManager arrays for all zoom levels
- * Called by constructor and by clearAllMarkers
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mapWidth</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">MERCATOR_ZOOM_LEVEL_ZERO_RANGE</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>; <span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">ceil</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mapWidth</span><span class="ActionScriptOperator">/</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">mapWidth</span> <span class="ActionScriptOperator"><<=</span> 1;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Removes all currently displayed markers
- * and calls resetManager to clear arrays
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">clearMarkers</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Gets the tile coordinate for a given latlng point.
- *
- * @param {LatLng} latlng The geographical point.
- * @param {Number} zoom The zoom level.
- * @param {GSize} padding The padding used to shift the pixel coordinate.
- * Used for expanding a bounds to include an extra padding
- * of pixels surrounding the bounds.
- * @return {GPoint} The point in tile coordinates.
- *
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">latlng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">pixelPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">projection_</span>.<span class="ActionScriptDefault_Text">fromLatLngToPixel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">latlng</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>
- <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">floor</span><span class="ActionScriptBracket/Brace">((</span><span class="ActionScriptDefault_Text">pixelPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">padding</span>.<span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">/</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">)</span>,
- <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">floor</span><span class="ActionScriptBracket/Brace">((</span><span class="ActionScriptDefault_Text">pixelPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">padding</span>.<span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">/</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Finds the appropriate place to add the marker to the grid.
- * Optimized for speed; does not actually add the marker to the map.
- * Designed for batch-processing thousands of markers.
- *
- * @param {Marker} marker The marker to add.
- * @param {Number} minZoom The minimum zoom for displaying the marker.
- * @param {Number} maxZoom The maximum zoom for displaying the marker.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addMarkerBatch_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span>, <span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">getLatLng</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptComment">// Tracking markers is expensive, so we do this only if the
- </span> <span class="ActionScriptComment">// user explicitly requested it when creating marker manager.
- </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">trackMarkers_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"changed"</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">onMarkerMoved_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mPoint</span>, <span class="ActionScriptDefault_Text">maxZoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">maxZoom</span>; <span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">>=</span> <span class="ActionScriptDefault_Text">minZoom</span>; <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">cell</span>.<span class="ActionScriptDefault_Text">push</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Returns whether or not the given point is visible in the shown bounds. This
- * is a helper method that takes care of the corner case, when shownBounds have
- * negative minX value.
- *
- * @param {Point} point a point on a grid.
- * @return {Boolean} Whether or not the given point is visible in the currently
- * shown bounds.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">vertical</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">minY</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">&&</span>
- <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">maxY</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minX</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">minX</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">horizontal</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">maxX</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptDefault_Text">horizontal</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator"><</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptComment">// Shifts the negative part of the rectangle. As point.x is always less
- </span> <span class="ActionScriptComment">// than grid width, only test shifted minX .. 0 part of the shown bounds.
- </span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">width</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptDefault_Text">horizontal</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">width</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">width</span> <span class="ActionScriptOperator">-</span> 1;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">vertical</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">horizontal</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Reacts to a notification from a marker that it has moved to a new location.
- * It scans the grid all all zoom levels and moves the marker from the old grid
- * location to a new grid location.
- *
- * @param {Marker} marker The marker that moved.
- * @param {LatLng} oldLatLng The old position of the marker.
- * @param {LatLng} newLatLng The new position of the marker.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onMarkerMoved_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span>, <span class="ActionScriptDefault_Text">oldLatLng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span>, <span class="ActionScriptDefault_Text">newLatLng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptComment">// NOTE: We do not know the minimum or maximum zoom the marker was
- </span> <span class="ActionScriptComment">// added at, so we start at the absolute maximum. Whenever we successfully
- </span> <span class="ActionScriptComment">// remove a marker at a given zoom, we add it at the new grid coordinates.
- </span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">changed</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">oldGrid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldLatLng</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">newGrid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newLatLng</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">>=</span> 0 <span class="ActionScriptOperator">&&</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellNoCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeFromArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span>, <span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>.<span class="ActionScriptDefault_Text">push</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptComment">// For the current zoom we also need to update the map. Markers that no
- </span> <span class="ActionScriptComment">// longer are visible are removed from the map. Markers that moved into
- </span> <span class="ActionScriptComment">// the shown bounds are added to the map. This also lets us keep the count
- </span> <span class="ActionScriptComment">// of visible markers up to date.
- </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newGrid</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">changed</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">true</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newGrid</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">changed</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">true</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptOperator">--</span><span class="ActionScriptDefault_Text">zoom</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">changed</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Searches at every zoom level to find grid cell
- * that marker would be in, removes from that array if found.
- * Also removes marker with removeOverlay if visible.
- * @param {GMarker} marker The marker to delete.
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">removeMarker</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">changed</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">getLatLng</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">point</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">>=</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellNoCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeFromArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span>, <span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptComment">// For the current zoom we also need to update the map. Markers that no
- </span> <span class="ActionScriptComment">// longer are visible are removed from the map. This also lets us keep the count
- </span> <span class="ActionScriptComment">// of visible markers up to date.
- </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">changed</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">true</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">grid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">>></span> 1;
- <span class="ActionScriptOperator">--</span><span class="ActionScriptDefault_Text">zoom</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">changed</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Add many markers at once.
- * Does not actually update the map, just the internal grid.
- *
- * @param {Array of Marker} markers The markers to add.
- * @param {Number} minZoom The minimum zoom level to display the markers.
- * @param {Number} opt_maxZoom The maximum zoom level to display the markers.
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addMarkers</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">markers</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>, <span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">opt_maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Infinity</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getOptMaxZoom_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_maxZoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">markers</span>.<span class="ActionScriptDefault_Text">length</span> <span class="ActionScriptOperator">-</span> 1; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator">>=</span> 0; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addMarkerBatch_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">markers</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span>, <span class="ActionScriptDefault_Text">minZoom</span>, <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">markers</span>.<span class="ActionScriptDefault_Text">length</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Returns the value of the optional maximum zoom. This method is defined so
- * that we have just one place where optional maximum zoom is calculated.
- *
- * @param {Number} opt_maxZoom The optinal maximum zoom.
- * @return The maximum zoom.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getOptMaxZoom_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">opt_maxZoom</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">Infinity</span> <span class="ActionScriptOperator">?</span> <span class="ActionScriptDefault_Text">opt_maxZoom</span> <span class="ActionScriptOperator">:</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Calculates the total number of markers potentially visible at a given
- * zoom level.
- *
- * @param {Number} zoom The zoom level to check.
- * @return {Number}
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getMarkerCount</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">total</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">zoom</span>; <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">total</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">total</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Add a single marker to the map.
- *
- * @param {Marker} marker The marker to add.
- * @param {Number} minZoom The minimum zoom level to display the marker.
- * @param {Number} opt_maxZoom The maximum zoom level to display the marker.
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addMarker</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span>, <span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">opt_maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getOptMaxZoom_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_maxZoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addMarkerBatch_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span>, <span class="ActionScriptDefault_Text">minZoom</span>, <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">getLatLng</span><span class="ActionScriptBracket/Brace">()</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
- <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">gridPoint</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&&</span>
- <span class="ActionScriptDefault_Text">minZoom</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator">&&</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">maxZoom</span> <span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">++</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Get a cell in the grid, creating it first if necessary.
- *
- * Optimization candidate
- *
- * @param {Number} x The x coordinate of the cell.
- * @param {Number} y The y coordinate of the cell.
- * @param {Number} z The z coordinate of the cell.
- * @return {Array} The cell in the array.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getGridCellCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">gridCol</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[]</span>;
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[]</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridCell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptDefault_Text">gridCell</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[]</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">gridCell</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Get a cell in the grid, returning undefined if it does not exist.
- *
- * NOTE: Optimized for speed -- otherwise could combine with getGridCellCreate_.
- *
- * @param {Number} x The x coordinate of the cell.
- * @param {Number} y The y coordinate of the cell.
- * @param {Number} z The z coordinate of the cell.
- * @return {Array} The cell in the array.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getGridCellNoCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">grid</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">]</span>;
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">gridCol</span> <span class="ActionScriptOperator">?</span> <span class="ActionScriptDefault_Text">gridCol</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">:</span> <span class="ActionScriptReserved">undefined</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Turns at geographical bounds into a grid-space bounds.
- *
- * @param {LatLngBounds} bounds The geographical bounds.
- * @param {Number} zoom The zoom level of the bounds.
- * @param {GSize} swPadding The padding in pixels to extend beyond the
- * given bounds.
- * @param {GSize} nePadding The padding in pixels to extend beyond the
- * given bounds.
- * @return {GBounds} The bounds in grid space.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getGridBounds_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bounds</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLngBounds</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">swPadding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span>, <span class="ActionScriptDefault_Text">nePadding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">min</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span><span class="ActionScriptBracket/Brace">)</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">bl</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">getSouthWest</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">tr</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">getNorthEast</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">sw</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bl</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptDefault_Text">swPadding</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">ne</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">tr</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptDefault_Text">nePadding</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gw</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span>;
-
- <span class="ActionScriptComment">// Crossing the prime meridian requires correction of bounds.
- </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">tr</span>.<span class="ActionScriptDefault_Text">lng</span><span class="ActionScriptBracket/Brace">()</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">bl</span>.<span class="ActionScriptDefault_Text">lng</span><span class="ActionScriptBracket/Brace">()</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">ne</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">sw</span>.<span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">sw</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">-=</span> <span class="ActionScriptDefault_Text">gw</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ne</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">sw</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">+</span> 1 <span class="ActionScriptOperator">>=</span> <span class="ActionScriptDefault_Text">gw</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptComment">// Computed grid bounds are larger than the world; truncate.
- </span> <span class="ActionScriptDefault_Text">sw</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptDefault_Text">ne</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gw</span> <span class="ActionScriptOperator">-</span> 1;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridBounds</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">GridBounds</span><span class="ActionScriptBracket/Brace">([</span><span class="ActionScriptDefault_Text">sw</span>, <span class="ActionScriptDefault_Text">ne</span><span class="ActionScriptBracket/Brace">])</span>;
- <span class="ActionScriptDefault_Text">gridBounds</span>.<span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">zoom</span>;
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">gridBounds</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Gets the grid-space bounds for the current map viewport.
- *
- * @return {Bounds} The bounds in grid space.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getMapGridBounds_</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridBounds_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">getLatLngBounds</span><span class="ActionScriptBracket/Brace">()</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span>,
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">swPadding_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">nePadding_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Event listener for map:movend.
- * NOTE: Use a timeout so that the user is not blocked
- * from moving the map.
- *
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onMapMoveEnd_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">MapMoveEvent</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">updateMarkers_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptComment">//this.objectSetTimeout_(this, this.updateMarkers_, 0);
- </span><span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Call a function or evaluate an expression after a specified number of
- * milliseconds.
- *
- * Equivalent to the standard window.setTimeout function, but the given
- * function executes as a method of this instance. So the function passed to
- * objectSetTimeout can contain references to this.
- * objectSetTimeout(this, function() { alert(this.x) }, 1000);
- *
- * @param {Object} object The target object.
- * @param {Function} command The command to run.
- * @param {Number} milliseconds The delay.
- * @return {Boolean} Success.
- */</span>
- <span class="ActionScriptComment">/*
- MarkerManager.prototype.objectSetTimeout_ = function(object, command, milliseconds) {
- return window.setTimeout(function() {
- command.call(object);
- }, milliseconds);
- };
- */</span>
- <span class="ActionScriptASDoc">/**
- * Refresh forces the marker-manager into a good state.
- * If never before initialized, shows all the markers.
- * If previously initialized, removes and re-adds all markers.
- */</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">refresh</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span> <span class="ActionScriptOperator">></span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * After the viewport may have changed, add or remove markers as needed.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updateMarkers_</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">getZoom</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">newBounds</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getMapGridBounds_</span><span class="ActionScriptBracket/Brace">()</span>;
-
- <span class="ActionScriptComment">// If the move does not include new grid sections,
- </span> <span class="ActionScriptComment">// we have no work to do:
- </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newBounds</span>.<span class="ActionScriptDefault_Text">equals</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">newBounds</span>.<span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newBounds</span>.<span class="ActionScriptDefault_Text">z</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newBounds</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptComment">// Remove markers:
- </span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">rectangleDiff_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptDefault_Text">newBounds</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeCellMarkers_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptComment">// Add markers:
- </span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">rectangleDiff_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newBounds</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addCellMarkers_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">newBounds</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Notify listeners when the state of what is displayed changes.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">notifyListeners_</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptComment">//this.dispatchEvent(new Event("changed"), this.shownBounds_, this.shownMarkers_);
- </span><span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Process all markers in the bounds provided, using a callback.
- *
- * @param {Bounds} bounds The bounds in grid space.
- * @param {Function} callback The function to call for each marker.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bounds</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>, <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Function</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">minX</span>; <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">maxX</span>; <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">minY</span>; <span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">maxY</span>; <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">bounds</span>.<span class="ActionScriptDefault_Text">z</span>, <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Process all markers in the grid cell, using a callback.
- *
- * @param {Number} x The x coordinate of the cell.
- * @param {Number} y The y coordinate of the cell.
- * @param {Number} z The z coordinate of the cell.
- * @param {Function} callback The function to call for each marker.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">processCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Function</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellNoCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cell</span>.<span class="ActionScriptDefault_Text">length</span> <span class="ActionScriptOperator">-</span> 1; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator">>=</span> 0; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">])</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Remove all markers in a grid cell.
- *
- * @param {Number} x The x coordinate of the cell.
- * @param {Number} y The y coordinate of the cell.
- * @param {Number} z The z coordinate of the cell.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">removeCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">z</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Add all markers in a grid cell.
- *
- * @param {Number} x The x coordinate of the cell.
- * @param {Number} y The y coordinate of the cell.
- * @param {Number} z The z coordinate of the cell.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">z</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processCellMarkers_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">z</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Use the rectangleDiffCoords function to process all grid cells
- * that are in bounds1 but not bounds2, using a callback, and using
- * the current MarkerManager object as the instance.
- *
- * Pass the z parameter to the callback in addition to x and y.
- *
- * @param {Bounds} bounds1 The bounds of all points we may process.
- * @param {Bounds} bounds2 The bounds of points to exclude.
- * @param {Function} callback The callback function to call
- * for each grid coordinate (x, y, z).
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">rectangleDiff_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bounds1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>, <span class="ActionScriptDefault_Text">bounds2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>, <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Function</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">me</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">MarkerManager</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>;
- <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">rectangleDiffCoords</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bounds1</span>, <span class="ActionScriptDefault_Text">bounds2</span>, <span class="ActionScriptfunction">function</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">callback</span>.<span class="ActionScriptDefault_Text">apply</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">me</span>, <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">bounds1</span>.<span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">])</span>;
- <span class="ActionScriptBracket/Brace">})</span>;
- <span class="ActionScriptBracket/Brace">}</span>;
- <span class="ActionScriptASDoc">/**
- * Calls the function for all points in bounds1, not in bounds2
- *
- * @param {Bounds} bounds1 The bounds of all points we may process.
- * @param {Bounds} bounds2 The bounds of points to exclude.
- * @param {Function} callback The callback function to call
- * for each grid coordinate.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">rectangleDiffCoords</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bounds1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>, <span class="ActionScriptDefault_Text">bounds2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>, <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Function</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minX1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds1</span>.<span class="ActionScriptDefault_Text">minX</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minY1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds1</span>.<span class="ActionScriptDefault_Text">minY</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxX1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds1</span>.<span class="ActionScriptDefault_Text">maxX</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxY1</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds1</span>.<span class="ActionScriptDefault_Text">maxY</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minX2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds2</span>.<span class="ActionScriptDefault_Text">minX</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minY2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds2</span>.<span class="ActionScriptDefault_Text">minY</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxX2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds2</span>.<span class="ActionScriptDefault_Text">maxX</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxY2</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">bounds2</span>.<span class="ActionScriptDefault_Text">maxY</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minX1</span>; <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">maxX1</span>; <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span> <span class="ActionScriptComment">// All x in R1
- </span> <span class="ActionScriptComment">// All above:
- </span> <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minY1</span>; <span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">maxY1</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">minY2</span>; <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span> <span class="ActionScriptComment">// y in R1 above R2
- </span> <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptComment">// All below:
- </span> <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">maxY2</span> <span class="ActionScriptOperator">+</span> 1, <span class="ActionScriptDefault_Text">minY1</span><span class="ActionScriptBracket/Brace">)</span>; <span class="ActionScriptComment">// y in R1 below R2
- </span> <span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">maxY1</span>; <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">minY1</span>, <span class="ActionScriptDefault_Text">minY2</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">min</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">maxY1</span>, <span class="ActionScriptDefault_Text">maxY2</span><span class="ActionScriptBracket/Brace">)</span>; <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span> <span class="ActionScriptComment">// All y in R2 and in R1
- </span> <span class="ActionScriptComment">// Strictly left:
- </span> <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">min</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">maxX1</span> <span class="ActionScriptOperator">+</span> 1, <span class="ActionScriptDefault_Text">minX2</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">-</span> 1;
- <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">>=</span> <span class="ActionScriptDefault_Text">minX1</span>; <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span> <span class="ActionScriptComment">// x in R1 left of R2
- </span> <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptComment">// Strictly right:
- </span> <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">minX1</span>, <span class="ActionScriptDefault_Text">maxX2</span> <span class="ActionScriptOperator">+</span> 1<span class="ActionScriptBracket/Brace">)</span>; <span class="ActionScriptComment">// x in R1 right of R2
- </span> <span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator"><=</span> <span class="ActionScriptDefault_Text">maxX1</span>; <span class="ActionScriptDefault_Text">x</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">callback</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptASDoc">/**
- * Removes value from array. O(N).
- *
- * @param {Array} array The array to modify.
- * @param {any} value The value to remove.
- * @param {Boolean} opt_notype Flag to disable type checking in equality.
- * @return {Number} The number of instances of value that were removed.
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">removeFromArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">array</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>, <span class="ActionScriptDefault_Text">value</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Object</span>, <span class="ActionScriptDefault_Text">opt_notype</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shift</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">array</span>.<span class="ActionScriptDefault_Text">length</span>; <span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">array</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">===</span> <span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_notype</span> <span class="ActionScriptOperator">&&</span> <span class="ActionScriptDefault_Text">array</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">array</span>.<span class="ActionScriptDefault_Text">splice</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">--</span>, 1<span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">shift</span><span class="ActionScriptOperator">++</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">shift</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
- </pre></body>
- </html>