add item and do isClustering. NOTE: this method will not redraw screen.
after adding all items, you must call redraw() method.

@param item GeoItem to be clustered.
974263
public synchronized void addItem(final T item) {
        // Log.w(TAG,"public synchronized void addItem(T item) {... (START)");
        // if mapView is not inflated or if not in viewport, add to leftItems
        if (mapView.getWidth() == 0 || !isItemInViewport(item)) {
//            Log.i(TAG,"public synchronized void addItem(T item) {... (1)");
            synchronized (leftItems) {
                // Log.w(TAG,"public synchronized void addItem(T item) {... (2)");
                if (clusterTask != null && clusterTask.isCancelled()) return;
                leftItems.add(item);
            }
        } else if (maxClusteringZoom >= mapView.getModel().mapViewPosition
                .getZoomLevel()) {
            // else add to a cluster;
            Point pos = mapView.getMapViewProjection().toPixels(item.getLatLong());
            // check existing cluster
//            Log.i(TAG,"spublic synchronized void addItem(T item) {...... (3)");
            synchronized (clusters) {
                // Log.w(TAG,"spublic synchronized void addItem(T item) {...... (4)");
                for (Cluster<T> mCluster : clusters) {
//                    Log.i(TAG,"public synchronized void addItem(T item) {... (5)");
                    if (clusterTask != null && clusterTask.isCancelled()) return;
                    if (mCluster.getItems().size() == 0)
                        throw new IllegalArgumentException("cluster.getItems().size() == 0");
                    // find a cluster which contains the marker.
                    // use 1st element to fix the location, hinder the cluster from
                    // running around and isClustering.
                    LatLong gpCenter = mCluster.getItems().get(0)
                            .getLatLong();
                    if (gpCenter == null)
                        throw new IllegalArgumentException();
                    Point ptCenter = mapView.getMapViewProjection().toPixels(gpCenter);
                    // find a cluster which contains the marker.
                    if (pos.distance(ptCenter) <= GRIDSIZE
                    /*
                     * pos.x >= ptCenter.x - GRIDSIZE && pos.x <= ptCenter.x +
                     * GRIDSIZE && pos.y >= ptCenter.y - GRIDSIZE && pos.y <=
                     * ptCenter.y + GRIDSIZE
                     */) {
                        mCluster.addItem(item);
                        return;
                    }
                } // END: for (Cluster<T> cluster : clusters) {
                // No cluster contain the marker, create a new cluster.
                clusters.add(createCluster(item));
            } // END: synchronized (clusters) {
        } else {
            // No clustering allowed, create a new cluster with single item.
            synchronized (clusters) {
//                Log.i(TAG,"public synchronized void addItem(T item) {... (6)");
                clusters.add(createCluster(item));
            }
        }
//        Log.i(TAG,"public synchronized void addItem(T item) {... (END)");
    }
1129818
@SafeVarargs
    public final void addAll(T... items) {
        final int length = items.length;
        if (length == 0) {
            return;
        }
        synchronized (mLock) {
            final int position = getItemCount();
            Collections.addAll(mObjects, items);
            notifyItemRangeInserted(position, length);
        }
    }
879848
public function add_child_item(cc_i_item &$item) {
        if (is_null($this->childitems)) {
            $this->childitems = array();
        }
        $this->childitems[$item->identifier] = $item;
    }
1170352
public function addItem(OrderingItem $item)
    {
        if (!$this->items->contains($item)) {
            $item->setQuestion($this);
            $this->items->add($item);
        }
    }
163197
public void addItem(T item) {
        mListItems.add(item);
        notifyItemInserted(mListItems.indexOf(item));
    }
666144
public void addNotCombine(Item item)
    {
        Item innerItem = trie.get(item.key);
        if (innerItem == null)
        {
            innerItem = item;
            trie.put(innerItem.key, innerItem);
        }
    }
564568
public void onItemBind(int position, T item) {
        if (onItemBind != null) {
            variableId = VAR_INVALID;
            layoutRes = LAYOUT_NONE;
            onItemBind.onItemBind(this, position, item);
            if (variableId == VAR_INVALID) {
                throw new IllegalStateException("variableId not set in onItemBind()");
            }
            if (layoutRes == LAYOUT_NONE) {
                throw new IllegalStateException("layoutRes not set in onItemBind()");
            }
        }
    }
1020988
public void updateItem (T item)
    {
        if (_items == null) {
            return;
        }
        int idx = _items.indexOf(item);
        if (idx == -1) {
            _items.add(0, item);
        } else {
            _items.set(idx, item);
        }
    }
870739
@Override
    public void add(TopLevelItem item) throws IOException {
        synchronized (this) {
            jobNames.add(item.getRelativeNameFrom(getOwner().getItemGroup()));
        }
        save();
    }
629672
private void addCell(Listitem item, Object value) {
        createCell(item, value, null, null);
    }
1006940
public function add($item)
    {
        $allItems = $this->getAll();
        if (is_array($item)) {
            $allItems = array_merge($allItems, $item);
        } else {
            $allItems[] = $item;
        }

        $this->setAll($allItems);
    }
743256
private void addItems(@NonNull final BottomSheet.Builder builder) {
        int dividerCount = getDividerCount();
        boolean showDividerTitle = shouldDividerTitleBeShown();
        int itemCount = getItemCount();
        boolean showIcon = shouldItemIconsBeShown();
        boolean disableItems = shouldItemsBeDisabled();
        int index = 0;

        for (int i = 0; i < dividerCount + 1; i++) {
            if (i > 0) {
                builder.addDivider(showDividerTitle ? getString(R.string.divider_title, i) : null);
                index++;
            }

            for (int j = 0; j < itemCount; j++) {
                String title = getString(R.string.item_title, i * itemCount + j + 1);
                Drawable icon;

                if (isDarkThemeSet()) {
                    icon = showIcon ? ContextCompat.getDrawable(getActivity(),
                            getStyle() == Style.GRID ? R.drawable.grid_item_dark :
                                    R.drawable.list_item_dark) : null;
                } else {
                    icon = showIcon ? ContextCompat.getDrawable(getActivity(),
                            getStyle() == Style.GRID ? R.drawable.grid_item :
                                    R.drawable.list_item) : null;
                }

                builder.addItem(i * dividerCount + j, title, icon);

                if (disableItems) {
                    builder.setItemEnabled(index, false);
                }

                index++;
            }
        }

        builder.setOnItemClickListener(createItemClickListener());
    }
947945
@Override
  public final void setItem(final SeGoods pSeGoods) {
    this.item = pSeGoods;
    if (this.itsId == null) {
      this.itsId = new SeGoodsPlaceId();
    }
    this.itsId.setItem(this.item);
  }
2130
public synchronized void push(@Nullable T item) {
        if( waiting == null ) {
            throw new IllegalStateException("Invalid attempt to add an item to a completed list.");
        }
        if( filter != null ) {
            try {
                if( !filter.filter(item) ) {
                    return;
                }
            }
            catch( Throwable t ) {
                logger.error("[" + this + "] Error filtering " + item + ": " + t.getMessage());
                Exception e;
                
                if( t instanceof Exception ) {
                    e = (Exception)t;
                }
                else {
                    e = new RuntimeException(t);
                }
                setLoadException(e);
                return;
            }
        }
        waiting.add(item);
        lastTouch = System.currentTimeMillis();
        notifyAll();
    }
629116
public function addItem(CNabuDataObject $item)
    {
        if (is_array($nodes = $this->extractNodes($item)) && count($nodes) > 0) {
            if ($this->index === null) {
                $this->index = $nodes;
            } else {
                $this->index = array_merge($this->index, $nodes);
            }
        }
    }
1341664
public void addSubItem(WebMenuItem item){
		if (subMenu == null){
			subMenu = new ArrayList<WebMenuItem>();
		}
		subMenu.add(item);
	}
778929
public void add(@Nullable T item) throws Exception {
		if (exception == null) {
			if (take != null) {
				assert isEmpty();
				SettablePromise<T> take = this.take;
				this.take = null;
				take.set(item);
				if (exception != null) throw exception;
				return;
			}

			doAdd(item);
		} else {
			tryRecycle(item);
			throw exception;
		}
	}