Several iGIS users are having trouble loading Russian language shapefiles. The trick is to get the right character set. The character set that we’ve had most luck with is ‘Eurpopean Languages – CP1251′ or ‘Windows Cyrillic – CP1251′. Not obvious but it works for at least some datasets.
In iGIS v5, we have added the ability to load and view your own raster imagery on maps. Many of our users have asked for this functionality, and new features of iOS 4 have allowed us to do it. Working with raster imagery is CPU and memory intensive when done poorly, so we had to think of a process which avoids overloading the iPhone’s resources.
What we have chosen to do is pre-process imagery using an opensource tool, MapTiler. This tool converts many image formats into a series of tiles, similar to the Google map tiles. We then use these tiles in the app as an overlay on the map, allowing us to retain great map speed, since the app doesn’t have to re-project to re-process any imagery. We’re very happy with the results, and hope that you will be too.
Several steps are involved in getting your imagery onto the app, however once you have been through the process a first time, you should find these steps simple to replicate and well worth the effort.
- Install the MapTiler software on your PC or Mac – only needed the first time.
- Re-project and tile your maps using MapTiler.
- Zip up the resulting imagery directory.
- Copy the zip file to the iPhone using our importer or via USB (we’ve got USB importing in V5 too).
- Add the layer to the map.
To install MapTiler, please download from maptiler.org, and follow the instructions on the web site to install.
Once you have the software installed on your Mac or PC. Follow the wizard interface. I’ve provided the settings that I’ve used below.
Chose the Google Map compatible tiles – that’s what we’re using.
Choose the file that you wish to convert.
If your imagery is geo-referenced you should see projection information in this screen. Otherwise you may have to define the geo-referencing information yourself using the ‘Georeference’ button.
The Zoom Levels are automatically calculated, however you may have to zoom the may in or out to see the imagery. You can always reduce the minimum or increase the maximum zoom to see the imagery at more scales.
PNG produces the best results, but you may want to try JPEG if space is an issue, however you may end up with black borders around the imagery.
Choose a directory where the resulting files will be created.
Select Google Maps here. Others could be chosen too. This helps when testing.
Select the defaults here.
Press Render to start creating image tiles.
Once the rendering is complete, which may take a long time depending on the size of your imagery, it is a good idea to test the results. Click on the directory hyperlink to go the tile directory.
You will see that a directory has been created with several sub-directories. Have a look at the images in the directories to see what the tiler has done.
Don’t delete tilemapresource.xml, this is the file we use in iGIS.
Click on googlemaps.html to test out whether MapTiler did it’s job. You may need to zoom in or out to see the imagery on the map.
You need to zip or compress the directory that Map Tiler created. On a Mac use Compress on a PC you can use a free zip utility, like 7 Zip.
Start iTunes with your iPhone connected, and bring up the File Sharing section under the Apps tab on your device. See Help on Import for more information. Add the zip file you created and this will automatically sync to the iPhone.
Go into Import mode on your iPhone and the imagery will appear.
Select your image and press Import.
Now edit your Project settings and choose Add Layer. Select the Imagery layer type.
Add the image that you have just created.
Go to your project, pan and zoom to your imagery in the map. Hopefully you see the imagery perfectly aligned to your other data.
Note: The project extent button will not automatically zoom to image bounds. You will have to manually pan and zoom. We’ll fix this in an update.
I hope that you’ve been able to follow this tutorial. Please contact us if you have any queries and I hope that you enjoy using iGIS with your own imagery.
With iGIS you are able to design your own customized data entry forms, making data entry so much easier. What you can do with customized forms is:
- rename form fields to be more readable,
- set default values for fields,
- add a help prompt,
- use a date/time picker,
- use code lists to select from a set of values with readable text
We’ll be adding new features over time to make data entry on iGIS as easy as it can be.
To start using customized forms, you will need at least version 4.0.3 of iGIS. You can check that by touching the Info button.
You define the format of the data entry form in an XML file, which is imported along with the data. This file is of type .glc and have the same name as the shapefile.
The .glc file defines information for each shapefile attribute so that a nice data entry form can be produced.
To start using customized forms, we recommend that you follow the following steps:
- Step 1. Download the below linked sample glc shapefile data and become familiar with the format by; investigating the file in a text editor, importing it into iGIS, editing the shapefile in iGIS.
- Step 2. Use the generate .glc file tool on the WiFi import menu to create a *.glc template for your own shapefile data.
- Step 3. Edit your iGIS created *.glc template file with a text editor to add lookup code lists. Use the sample *.glc file from step 1 as a syntax reference.
- Step 4. Import your shapefile into iGIS with your *.glc file, and begin editing your data with codelists.
We’ve produced a sample .glc file which is available here; FieldPoints2.zip
Use these samples to create your own customized forms. The sample data entry form is:
Generating .glc Files
We recommend that you download the sample .glc file and shapefile and import these into a blank project to start using custom data entry forms. You can then generate your own .glc files based on your data.
What field types are supported for iGIS *.glc files?
A full listing of supported field types can be found here; All supported field types
Instead of seeing the shapefile names, which can be truncated, you can show a readable name by using readable-name=”Nice Name”.
You can define an attribute as a unique identifier. this will usually be a number, denoted by the data-type of ‘N’. Set the field-type of ‘AutoIncrement’ to automatically produce the next highest number.
Use code lists to show readable values instead of codes in your forms. For example, the code list below will show ‘Small’ instead of ’1′ in the form. Note that this code list has a name, in this case ‘SizeCodes’, which will be used by the attributes.
<CodeList name="SizeCodes" type="N" length="1">
To use a code list, in the attribute set the field-type to ‘CodeList’ and the field-param to the code list name.
<Attribute column="ShortInt" readable-name="Size"> <Value data-type="N" length="4"> <field-type>CodeList</field-type> <field-param>SizeCodes</field-param> ...
Default Values and Prompts
For text and number fields, use default to set a default value for the field. If you don’t set a default, you can set a prompt for the field, to aid data entry.
You can’t use both default values and prompts. Default values don’t work with codelists.
As the date type in shapefiles only hold dates, not times, we recommend that you use a text field to hold dates, which contains both dates and times. Use at least a 25 character field with field-type of ‘Date’. Setting the default value to current will mean that the timestamp is autopopulated when the attribute edit window is invoked in the App.
<Attribute column="Timestamp" readable-name="Timestamp"> <Value data-type="C" length="25"> <field-type>Date</field-type> <default>current</default> </Value> ...
If you get the following error from iGIS:
“iGIS could not retrieve your current location or compass direction. The application must be allowed to access your location data for this function to work”
Then make sure you have location services enabled in the Settings app, under General: