FOSS4G 2009 in Sydney, NSW

Posted in Uncategorized on November 10, 2009 by gordonluckett

At the end of October I decided to attend the Free and Open Source For Geospatial FOSS4G conference in Sydney.  I really wanted to learn more about OpenLayers (as I love how FUSION and MapGuide have now implemented OpenLayers). 

The conference was great.  Not only did I learn about OpenLayers (I had a great lab where I got to play!), but I learned about geoserver and mapserver technologies (very cool).

I was hoping for some more MapGuide, luckily Geoff Zeiss discused some really neat RestFull web services and Jackie Ng showed off his very powerful FDOToolbox.

I think I will have to submit some labs for Essential MapGuide next year in Barcelona. :)

I also brought my Bike Friday to Sydney and cycled for a week up the coast from Sydney and caught the train back at the end of the week.

Gordon on his Bike Friday in Port Stephens, Australia

Experimenting with Google/Virtual Earth and MapGuide

Posted in Uncategorized on August 10, 2009 by gordonluckett

Lately I have been experimenting with Google and Virtual Earth with MapGuide.  Using the FUSION/Flexible Web Layouts, I have been able to communicate with the OpenLayers API to add and remove layers to use as a background to my maps.

Having this data in the background is fantastic news.  Cartographically, many people have to pay 10’s to 100’s of thousands of dollars just to have a robust background to their map data.  Now you can just put in your own thematics and dynamic data without housing terra-bytes of data by leveraging other data stores such as Microsoft’s Virtual Earth, Google Maps or Yahoo! Maps.

My google/mapguide mashup is at: http://mapguide.ca/guelph/ (my current city in Canada)

My virtual earth/mapguide mashup is at: http://mapguide.ca/sydney/ (where I am heading in October for the FOSS4G conference)

ADLM (Autodesk License Manager) with Windows Server 2003

Posted in Uncategorized on August 4, 2009 by gordonluckett

I installed the ADLM that came with my Autodesk MapGuide Enterprise 2010  but everytime I clicked the “system settings” tab in the LMTOOLS it crashed.

Luckily I found a link to update all my files: http://www.globes.com/support/fnp_utilities_download.htm#downloads

Once I replaced the:

  • lmgrd
  • lmutil
  • lmtools

I was ok…I wonder why the bundled version gives me such pain?

MapGuide Server 2010 License Suddenly Expires

Posted in Uncategorized with tags , , , on June 17, 2009 by gordonluckett

I had a proper license using the Autodesk License Manager (ADLM) but suddenly my MapGuide Server said “Evaluation Copy Expired”…so here is how to fix it:

 

Here is a link with the solution to fix the issue. http://usa.autodesk.com/adsk/servlet/ps/item?siteID=123112&id=10707697&linkID=9242178

You will need to modify your “serverconfig.ini” file, located in
“C:\Program Files\Autodesk\MapGuideEnterprise2009\Server\Bin” on your MapGuide Server.
Locate the following entries under the “General Properties” section in the file and add the following details…

The path to your network license file
LicenseServerPath = C:\Program Files\Autodesk Network License Manager\License\license.lic

The serial number of your software
SerialNumber = xxx-xxxxxxxx
(replace the x’s with your serial number)

Restart the MapGuide Server and all should be up and running again.

I didn’t know about this one…double entry anyone?

Google Projection in MapGuide 2010

Posted in Uncategorized with tags , , , , on May 29, 2009 by gordonluckett

So to line up Google Maps on top of my data, I need to use the Spherical Mercator.
Ok, so how do I do that? Took a little digging but this is how:

1. Get the Projection Definition:
PROJCS["Popular Visualisation CRS / Mercator", GEOGCS["Popular Visualisation CRS", DATUM["Popular Visualisation Datum", SPHEROID["Popular Visualisation Sphere", 6378137, 0, AUTHORITY["EPSG",7059]], TOWGS84[0, 0, 0, 0, 0, 0, 0], AUTHORITY["EPSG",6055]], PRIMEM["Greenwich", 0, AUTHORITY["EPSG", "8901"]], UNIT["degree", 0.0174532925199433, AUTHORITY["EPSG", "9102"]], AXIS["E", EAST], AXIS["N", NORTH], AUTHORITY["EPSG",4055]], PROJECTION["Mercator"], PARAMETER["False_Easting", 0], PARAMETER["False_Northing", 0], PARAMETER["Central_Meridian", 0], PARAMETER["Latitude_of_origin", 0], UNIT["metre", 1, AUTHORITY["EPSG", "9001"]], AXIS["East", EAST], AXIS["North", NORTH], AUTHORITY["EPSG",3785]]

2. Get the Map definition that you are using by logging into the http://server/mapguide2010/mapagent site

    Click the GetRecourseContentFor Resource ID, put in the full MapGuide Resource ID of your map: Library://Sheboygan/Maps/CITY.MapDefinition

3. Next save the XML to a file.

    Then modify the tag with the coordinate system in above.

4. Next click SETRESOURCE
For resource ID, use the same one: Library://Sheboygan/Maps/CITY.MapDefinition
For the Content, browse to your new XML file.
Click Submit.

5. You now have an updated map with the correct coordinate system …this works for any coordinate system you need in MapGuide.

Using Map 3D 2010 with Oracle? Better use 10G client!

Posted in Uncategorized with tags , , , , on May 11, 2009 by gordonluckett

Hi All, here’s one that stumped me (I should have read the documentation!).

If you want to connect AutoCAD Map 3D 2010 to Oracle with FDO, remember to use the 10G client and not the 9i one. Even if you are connecting to a 9i database.

That one stumped me for a while.

gordon

PHP and AJAX Caching Bug

Posted in Uncategorized with tags , , , , on March 3, 2009 by gordonluckett

Wow, this one “bugged” me for days. 

I have a PHP form that gets data from Oracle.  When I click the submit button, I want another page to process some script to keep a many-to-many table up to data.

For example:

<input type=submit onClick=submitDistricts($PUBID)>

The Javascript calls a GET

function submitDistricts(PUBID)
{
var xmlHttp = getXMLHttp();
    xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleDistrictResponse(xmlHttp.responseText);
    }
  }
 xmlHttp.open(“GET”, “updateDistricts.php?PUBID=”+PUBID);
  xmlHttp.send(null);
}

And this works pretty well.  Except that the call gets cached and I can only submit it once.  YIKES!!

How did I fix it?  Well ensure the GET is always unique.

Change the line from:

xmlHttp.open(“GET”, “updateDistricts.php?PUBID=”+PUBID);

TO:

xmlHttp.open(“GET”, “updateDistricts.php?PUBID=”+PUBID + ‘&’ + Math.random());

That’s it. Now my AJAX call to the database is always unique and has no caching…

That was a weird one!

Arrow Geomatics Inc. turns 10 today!

Posted in Uncategorized with tags , on February 2, 2009 by gordonluckett

Punxsutawney, PA

Punxsutawney, PA

Happy Groundhog day!  Arrow Geomatics Inc. celebrates its 10 year as a corp today. 

Yay us!

gordon

FME Supports DWG Object Data AND MPolygons!

Posted in Uncategorized with tags , , , , , , , on January 19, 2009 by gordonluckett

Finally!  SAFE  Software, has released the BETA of FME Translator that will convert AutoCAD Map 3D’s Object Data AND its associated MPOLYGONS.  MPolygons enable AutoCAD Map to create Islands, Holes and Multipolygon within the AutoCAD environment.  Object Data is the internal custom attributes you can add to each object (i.e. Pipe Diameter and install data on PLINE).

Now you can use FME to convert the DWG that has Object Data and MPOLYGONs into anything.  In my case, Oracle Spatial!

Great News!

Get Line Centoids – still on the LINE!

Posted in Uncategorized with tags , , , , on December 3, 2008 by gordonluckett

Here at AU 2008 in Las Vegas, I was having a dicussion about Oracle Spatial with Lance Maidlow of Landor Investments Ltd.  We were discussing converting a Line in Oracle and using LRS function to get the CENTROID on the line (geographic center of the object).

Well he suggested that rather than getting the start and end point of the line with LRS and dividing by 2 – which may not land on the line, that I should use the SDO_LRS.LOCATE_PT function that will find a point on a line based on how far down the line you want to go. 

So.. you get the length of the line, divide by 2 and then use the SDO_LRS.LOCATE_PT to get the middle point on the line…oh and convert it to LL if you need.  See below:

 

select sdo_cs.transform(SDO_LRS.CONVERT_TO_STD_GEOM(SDO_LRS.LOCATE_PT(SDO_LRS.CONVERT_TO_LRS_GEOM(GEOM, 3), SDO_GEOM.SDO_LENGTH(GEOM,3)/2)),8307).SDO_POINT.X  as LON,
sdo_cs.transform(SDO_LRS.CONVERT_TO_STD_GEOM(SDO_LRS.LOCATE_PT(SDO_LRS.CONVERT_TO_LRS_GEOM(GEOM, 3), SDO_GEOM.SDO_LENGTH(GEOM,3)/2)),8307).SDO_POINT.Y as LAT
from DUBLIN_CALIFORNIA_CA83IIIF.sewer_pipe

I was lazy and set the toleraces to 3 rather than query the SDO_METADATA…

Thanks Lance!

gordon