User Tools

Site Tools


android:planview:planstories

This is an old revision of the document!


AGTEK SmartPlan

The purpose of SmartPlan is to provide an easy, low cost georeferenced plan sheet and KMZ viewer. SmartPlan is a subset of SmartDirt that does not read esw data lines and models. It will read the plan sheets and KMZ files. It's going to be optimized for Android 4.0 and will also be the first IOS product. It relies heavily on the ADF creator (need another name) to process and geolocate the different data types. Version 1.0 will read PDF, bitmaps and KMZ files. Later additions may include CAD,LandXML, and collada models.

ADF files created from ESW are readable and we'll use those for preliminary testing although we will not read or create meshes, or isopachs. We will read the data lines and use the layers indistinguishably from the KMZ data lines.

Most of the application is contained in the description in Story 1. Story 0 (zero) is a foundation story needed by development to start working on the features of the main (1) story. To avoid distracting attention from the narrative of the main application, Story 0 is located at the end of this page.

Target Devices

Android 2.3, 4.0 Tablets Tablet specific layouts Layer view - left panel

Phones

Story 1

Android 4.0 features

  • 3 dot menus
  • Icons on top or side bars instead of menu options.

SmartPlan features from SmartDirt

  • Displaying plansheets/images
    • Switching images
    • Scaled output, georeferenced
  • Pictures and video
  • Distance to picked pixel (or KMZ point). Unlike SmartDirt we should support both.
  • Measure lengths and areas
  • (big if) Using El Charro makes me want Earthwork linework (without elevation, labels, etc) to display and be controlled with the layers control.

Unique Features

  • KMZ line display and picking SmartPlan KMZ example file (note, added video examples 5-14-13) we don't need to support these on read necessarily but write is handy.)
  • KMZ properties display (partial html for reports, etc.)
  • KMZ files may be opened directly without needing to be translated to ADF. This may give us more flexibility in sales prices.

KMZ entities to Read

  • MultiGeometry - (typically ours have multiple line strings). For data generated by desktop, Existing, Design, Annotation, Existing, and Design perimeters are written out in this entity.
  • Placemarks (name= layer name)- Common uses are photos, benchmarks. Placemarks can have properties (info button)
  • MultiGeometry-Polygon/Outerboundary/LinearRing - Common usage is Report Regions, Sectional Areas. This is a filled polygon with a color attached and a transparency value. I'd like to show the color with transparency overlaying. This is also an entity with properties.
  • GroundOverlay - This is any images that are stored within the KMZ. The phone probably precludes showing more than one at a time. GroundOverlay's do not have properties.

Support for visibility flag - Many AGTEK generated KMZ files have entities that are present but have the visibility turned off by default. We should honor this flag. (visibility. 1= on 0=off)

Properties (Info button) display for Placemarks, Polygons . Properties are use and entity called “description” and are contained with CDATA tags. The HTML is pretty simple, standard tags, tables, links, img.

ADF Reading Optimizations

The ADF file contains data that really doesn't add value to SmartPlan and it needs to be suppressed. There are also layers that should be assigned default colors by the application although they are not necessarily called out in the file itself. Some examples of these are:

  • Annotation lines should be a brown
  • Water should display as blue
  • Sewer displays as brown (yellow won't work outside)
  • Storm displays as dark green
  • Sectional Lines display as a medium blue
  • Existing ground displays as green

Hex values to follow. In cases where we have color precedence in other products like Existing, Design, Annotation, we should use the same coloring as Smartdirt and SmartGrade for consistency.

Landscape Tablet Screens

Portrait Phone Screens

Main Screen features

Top Info Bar (L-R)

  • Layer Control button - Controls visibility of layers (if present). This is a view control that we can use for mixed data including sheets, layers from PDF, Entities from KMZ files (lines, areas, models, points)
  • Info text - This layer name represents one of the following cases; 1) The layer name when a user has picked a point, or 2) the plan sheet name when the user has selected a point in the sheet. When in measure mode it displays the length and area read-outs
  • Measure - Does simple length and area calculations. When on the Icon shows down, and the info text switches to the length and area. This is a simpler hybrid of what we do in SmartDirt but without volumes and the need for a special menu. While in measure mode, the back key removes the last point entered and pressing and holding allows for moving individual measure points.
  • Track - Turns the track feature on (points every three feet or 1 m). The track feature here works pretty much the same as SmartDirt. Tracks export to KMZ.
  • Camera - Switches to the device camera software. Functionality is the same as SmartDirt. Pictures export to KMZ.
  • Length - Distance The distance from the current location to the selected point/pixel. The length between the last two points picked.
  • Menu - Includes options for File, Settings and Save (to force upload)
  • Info - Displays the properties of the KMZ data (ala' Google Earth) when appropriate. Primarily used for closed area.

Menu options

  • File - Displays the File menu for selection of a different file
  • Settings - For any various setting we think we need like GPS, Put Me here, Compass direction, North Up, About, Different Cursor colors?

Story 2

  • Deferred Uploader support
  • Save Dialog changes due to Deferred Uploader
  • Add Access Uploader button to the About tab
  • Check/Update to latest version
  • Adding Note feature

This is a small update mainly to add to Deferred Uploader to SmartPlan and other Android apps. The addition of the uploader means that we can clean up the Save dialog and also remove a potential issue for customers who don't select upload

The deferred uploader is already complete. In the past we could not exit the program and upload our tracks and pictures if we did not have an internet connection. Upload could continue once the program was restarted but this is hidden from the user. To reflect the new ability, the save window should now look like this:

The Upload and Save As options have been eliminated. Saving the file will automatically send the files to the uploader which will upload when a network connection is present. Also, the default file name is highlighted (minus the .kmz extension) and the keyboard raised when the user enters the screen. If the user just wants to save he can hit the save button and use the default name and upload.

Also notice that the file extension is added to the right of the filename and is not editable.

Access Upload status

The Access Upload status pages are something we on look at when something has gone wrong. It doesn't need to be on the menu and it's preferable that it be out the way. For lack of a better location I propose we add a button to Settings-About that takes upload status pages.

Check/Update to latest version

SmartPlan will be the first of the mobile products to check for updates. (Note: This works for mobile because it's sold on subscription.) (Questions to talk over are embedded)The user experience is this:

  • Upon startup (before or after login?) check version against current version. If not current prompt the user only once per session (day?) “There is a new version of Smartplan. Do you wish to download and install it?” Yes/No buttons.
  • If the user presses Yes, we download the latest and if possible install it.
  • If the user presses No, we proceed with normal program flow and don't bother him again for at least this session and possibly for that day (let's talk this over, I don't want to be annoying like VLC).

Mechanics of where to store and checking methods etc. tbd mostly by the programmer.

Note Feature

A user/sales desired feature that's been identified is the ability to create notes in SmartPlan. A user could currently walk to that area and do a short track or take a picture but that requires physically moving to that location. The note feature is not based on the current user location but instead uses the current picked point. Consequently it is not available unless a point is picked. The interface is this:

  1. The user picks a point where he wants the note to be placed (the glyph is positioned there)
  2. The user presses the note button (on the zoom controller underneath the camera icon)
  3. The note/label interface we currently use for photos or track labeling displays and the user puts in their note. (I'm not sure what the current note character limit is but we should be generous on this feature)
  4. On close the note glyph displays at that picked location and when tracks and photos are exported to KMZ we also export the notes.

My expectation is that the notes could be long and will not be appropriate as full labels in GE. First pass let's just use the first sentence (up to the first period) as the label. Pressing the glyph will bring up label window we use now. I would not highlight the entire label however because I could see deleting long notes by accident.

Story 3

Refinements, platform reconciliation and new functionality. As the IOS versions approach equivalence there are some features from IOS to integrate and reconcile the two platforms. Also, recent field experience is pointing out refinements in the measuring and saving of areas into the KMZ upload

  • The IOS version saves tracks, notes and pictures with the file rather than by session. Android should do the same and include measurement areas.
  • Put me here on IOS uses a long press on the compass instead of the button under Settings-GPS. Lets reconcile the two and add the option to remove the offset like IOS.
  • Save measure areas as part of the KMZ file. We don't currently do so.
  • Allow for multiple measure areas?
  • Add measure areas, photos, tracks to View control with the inherent controls (selectable, hide)
  • Direction on photos? Don't know if I trust the compass to be reliable

IOS Reconciliation

Bringing SmartPlan to equivalence on two platforms

Maintaining Added Data beyond Session

The IOS version has no clear exit point to save so it forced us to develop a way to save locally to avoid losing data from a phone call. In Android we do not save until the user initiates and we do not save it to the existing file. Story 3 changes that and makes created data persist beyond the session until cleared by the user.

Clearing would be done by long pressing on the file name on the file screen and would be another option on that popup. Alternatively we could also enable long press on view list items and allow a user to edit his local file (Note an argument against doing this is that we'd have to do it on IOS as well and that might be more difficult there.)

Put me Here

SmartPlan allows saving of an offset (Put me here) in both IOS and Android but the implementation is different. The Android version uses a button under the Settings-GPS tab. IOS uses a long press on the GPS compass. The IOS version is also slightly more capable in that it allows the user to remove any offset whereas the Android version require reloading of the file.

Android changes We're going to make the Android version behave like IOS. To do a put me here the user does the following:

  1. Picks a point from the data
  2. Presses and holds on the GPS icon
  3. A prompt appears confirming the move. The pictures below include the IOS verbiage.
  4. Pressing yes applies the offset
  5. Upon the pick, press and hold, as slightly different dialog appears (IOS example below). The user can clear the offset, change the offset to relate to the new pick point, or do neither and close (no)

Saving Measure in KMZ

(IOS and Android) Measure areas are not currently stored in KMZ file that contains photos, tracks, and notes. Story three adds saved measure areas to the KMZ file. (example KMZ link)

Story 4

Volumes returned from Lambda server against 3D ADF file based on kmz measurement area.

Story 5

  • Video support (can we display in GE, needs deferred uploader service)
  • Collada models?
  • Layer Drag redraw Order (if necessary)

ADF Creator

This is an overview of a critical piece of the SmartPlan story. The fleshed out ADF Creator stories are here (http://dev.agtek.com/wiki/doku.php?id=windows:adf:adf_creator). ADF Creator currently just reads .esw files (sitework). This new version of ADF creator needs create ADF files without Sitework 4D as the content provider. The new sources of content are:

  • PDF or image files (png,jpg,tif,bmp,gif) (note: ADF uses jpg for internal storage)
  • KMZ files
  • (future?) DWG, DXF, DGN files
  • PDF Files
    • Layered vs. Bitmap
    • Show by layer
    • Vectorize

Image files KMZ files

Features

Benchmark Creation

KMZ files require no user creation of benchmarks since the native coordinates are lat-long. The ADF creator itself needs to add two benchmarks automatically to any KMZ file exported via ADF for compatibility. Any other file requires a method of adding two benchmarks with Lat-Long.

Manual Entry
Via GE Line

Alignment of multiple sheets

Alignment method variations Use Kml line to establish scale, orientation,and alignment. A single line drawn between the known points.

Adapted File Screen (support Dropbox, Google Drive too?)

Supporting vector based PDF. The goal is the best possible view of plans while preserving speed and fluid behaviour.

Could support KMZ and respective interface in a pro version.

Story 0 (Android Zero Hour)

SmartPlan story 0 provides a user with an application that can be downloaded, installed, and run. It will display images read from an ADF, similar to SmartDirt. The application provides no ability to create date and doesn't need to have a deferred uploader at this stage. A runtime license is a possibility if there is enough clarity on the license sales situation (IOS sold different than the Android platform… probably true).

Android environment
The intention to support Android 4.0 natively pushes the same requirement into AGTEK_Lib, the AndroidV4 support library will be integrated into AGTEK Lib. Selected activities should be recoded to use the DialogFragment manager.

Code refactoring
SmartPlan is technically a significant departure from the previous application (SmartDirt and SmartGrade). Core functionality needs to be maintained as part of the AGTEK_Lib. The departure from previous means that many of the structural and data models are not longer appropriate. As such a certain amount of refactoring needs to be done before starting work on the main body of the application. Known refactoring areas are:

  • com.agtek.smartsuite.model.Project - Too specific to SG/SD now, need to make generic.
  • com.agtek.smartsuite.io.ADFReader/ADFWriter - Too specific to current Project, need to make generic.
  • com.agtek.smartsuite.graphics.ProjectGLView/Renderer - Too specific, genericize?

An item to consider is how we can decouple the layers from the model elements. There are too many references between the models and cached elements (model → cached elements, layer → cached elements, etc).

  • com.agtek.graphics - Remove Layer

User Upgrades
Hook into the Access version system to allow users to be notified of new releases. Single notification (not repetitive). URLs still on main web site.

android/planview/planstories.1468601348.txt.gz · Last modified: 2016/07/15 16:49 by mikeclapp