public void loadData(Envelope envelope, int zoom) {
    // long time = System.currentTimeMillis();

    try {
      ArrayList<MapPos> pts = mapView.getMapBoundaryPts();
      Vector<Geometry> objectTemp = null;
      Vector<Geometry> objects = new Vector<Geometry>();

      GeometryData.Type dataType;
      if (type == Type.ENTITY) {
        dataType = GeometryData.Type.ENTITY;
        objectTemp =
            dbmgr.fetchAllVisibleEntityGeometry(
                pts, querySql, renderAll ? FaimsSettings.MAX_VECTOR_OBJECTS : maxObjects);
      } else if (type == Type.RELATIONSHIP) {
        dataType = GeometryData.Type.RELATIONSHIP;
        objectTemp =
            dbmgr.fetchAllVisibleRelationshipGeometry(
                pts, querySql, renderAll ? FaimsSettings.MAX_VECTOR_OBJECTS : maxObjects);
      } else {
        throw new Exception("database layer has no type");
      }

      createElementsInLayer(zoom, objectTemp, objects, dataType);

      setVisibleElementsList(objects);

    } catch (Exception e) {
      FLog.e("error rendering database layer", e);
    }

    if (textLayer != null) {
      textLayer.renderOnce();
      textLayer.calculateVisibleElements(envelope, zoom);
    }

    // FLog.d("time: " + (System.currentTimeMillis() - time) / 1000);
  }
 public void setTextLayer(DatabaseTextLayer textLayer) {
   this.textLayer = textLayer;
   this.textVisible = textLayer.isVisible();
 }