01.12.2013 § Leave a Comment
If all the ice on land has melted and drained into the sea, the sea level would raise 216 feet (66 meters) and create new shorelines for our continents and inland seas.
National Geographic created interactive maps that show how would world coastlines look like if all the polar ice caps melt.
In Europe a lot of big and famous cities would go the away under the rising seas; like Copenhagen, Amsterdam, Venice, Riga, Lisbon, even London.
On the other side of the Atlantic Ocean the situation wouldn’t be any better, if even worse, the whole Florida would be not more, and most of the Eastern Coast of the United States would also go under see, including Boston, New York, Washington, D.C, and New Orleans.
There are more than five million cubic miles of ice on Earth, and some scientists say it would take more than 5,000 years to melt it all. If we continue adding carbon to the atmosphere, we’ll very likely create an ice-free planet, with an average temperature of perhaps 80 degrees Fahrenheit instead of the current 58.
I would love to see true interactive ice melting map, where GIS would be used. But nevertheless, these National Geographic maps are still very fascinating view of what might and probably will be in the not so far away future.
13.11.2013 § Leave a Comment
Intergraph announced new SG&I Support Knowledge Management Web Portal. Portal is based on Oracle’s Knowledge Management application, and provides access the most up-to-date Intergraph support information and now with just one login. Portal brings together systems that were once separated in one location such as product information and downloads, licensing resources, user forums, knowledge base, and Service Request management.
New portal provides:
- Enhanced customer support experience – The new user interface provides a simple and convenient way to access software product knowledge.
- A to Z product search – The Products (A-Z) page is a convenient way to find product family and product-specific information. Simply click on your product family or product to see the latest release information, announcements, support notices, and downloads.
- Intelligent natural language search – Every search uses state-of-the-art natural language processing to understand the true intent of each question. Then, using other search enhancement features such as industry-specific libraries, it finds the best possible answer.
- User forums for community collaboration – Find and share technical information and connect with the community of product peers globally.
- Integrated user interface to submit Service Requests – Manage all your Service Requests in one convenient location. You can also check on the status of Change Requests, whether they be your own, your company’s, or both.
- New content notification – Subscribe to content to receive notices when new or updated information is available.
- Ability to rate and recommend knowledge content – Help us improve your customer support experience by rating content and giving us feedback.
- Simple license management – The Licensing Resources page gives you easy access to the embedded license management system. Here you can view used and available licenses, generate licenses, and rehost license servers.
- Streamlined account management – View your company account information, such as contacts, products on maintenance, and license information.
16.07.2013 § Leave a Comment
If you are working with GeoMedia in a multi-user environment where other users are making modifications to the same dataset you are using, especially if other users are not using GeoMedia to update attribute data, GeoMedia command
Warehouse > Refresh with Warehouse Changes will not work as intended.
Warehouse > Refresh with Warehouse Changes is used to update the GeoWorkspace for any changes made to the data schema outside of your GeoMedia session. Changes that are made though non-GeoMedia software will not appear unless you close and reopen the connection or restart your session. If you are working with Oracle database, this will slow down your workflow. As described in my Very long Oracle connection opening time in GeoMedia post, this is happening because GeoMedia when establishing an Oracle connection is scanning all the tables in all the schemas for compatibility. The more schemas are available to the connected user, the longer the connection takes.
To solve this problem with Oracle Object Model data server, you can assign Modification Log triggers to the feature classes (tables in Oracle database) you wish to track. These Modification Log Triggers are assigned to feature classes using Database Utilities, and they log all insert, update, or delete events.
Warehouse > Refresh with Warehouse Changes then picks up external modifications on these feature classes even if the changes are made by non-GeoMedia applications.
Behind the scene, Database Utilities creates new trigger on the target table that looks like this:
CREATE OR REPLACE TRIGGER ADR.MYTABLEGMT AFTER INSERT OR DELETE OR UPDATE ON ADR.MYTABLE FOR EACH ROW DECLARE ModifiedTablesOwner VARCHAR2(255); ModifiedTablesTableName VARCHAR2(255); ModificationLogOwner VARCHAR2(255); ModificationLogTableName VARCHAR2(255); SessionID INTEGER; RecordCount INTEGER; RecordCount1 INTEGER; ModType INTEGER; TableID INTEGER; ModID INTEGER; v_Msg VARCHAR2(200); v_ErNum NUMBER; v_ErTxt VARCHAR2(200); v_TF INTEGER; e_TableID EXCEPTION; BEGIN ModificationLogOwner := 'GDOSYS'; ModificationLogTableName := 'MODIFICATIONLOG'; ModifiedTablesOwner := 'GDOSYS'; ModifiedTablesTableName := 'MODIFIEDTABLES'; v_Msg := 'Selecting GMODLOG.NEXTVAL'; EXECUTE IMMEDIATE 'SELECT GDOSYS.GMODLOG.NEXTVAL FROM DUAL' INTO ModID; v_Msg := 'Get SessionID'; SELECT USERENV('SESSIONID') INTO SessionID FROM DUAL ; v_Msg := 'Querying ModifiedTables for ADR.MYTABLE'; EXECUTE IMMEDIATE 'select count(*) from all_objects where OWNER=:1 and OBJECT_NAME = :2 ' into RecordCount1 using ModificationLogOwner, ModificationLogTableName ; EXECUTE IMMEDIATE 'select count(*) from all_objects where OWNER = :1 and OBJECT_NAME = :2 ' into RecordCount using ModifiedTablesOwner, ModifiedTablesTableName; IF RecordCount > 0 and RecordCount1 > 0 then EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM GDOSYS.MODIFIEDTABLES WHERE TABLENAME = '''||'ADR.MYTABLE'||''' ' INTO TableID ; IF TableID = 0 THEN EXECUTE IMMEDIATE 'SELECT OBJECT_ID FROM user_objects WHERE object_name = ''MYTABLE'' ' INTO TableID; EXECUTE IMMEDIATE 'INSERT INTO GDOSYS.MODIFIEDTABLES (MODIFIEDTABLEID,TABLENAME,KEYFIELD1) VALUES (:1,''ADR.MYTABLE'',''ID1'')' using TableID; ELSE EXECUTE IMMEDIATE 'SELECT MODIFIEDTABLEID FROM GDOSYS.MODIFIEDTABLES WHERE TABLENAME = ''ADR.MYTABLE'' ' INTO TableID ; END IF; v_Msg := 'Inserting ModificationLog record '; IF INSERTING THEN DBMS_OUTPUT.PUT_LINE(' ***** Logging an Attribute INSERT *****'); ModType := 1; EXECUTE IMMEDIATE 'INSERT INTO GDOSYS.MODIFICATIONLOG (MODIFICATIONNUMBER, SESSIONID, "TYPE",MODIFIEDTABLEID, MODIFIEDDATE, KEYVALUE1) VALUES (:1,:2,:3,:4,:5, :6)' using ModID, SessionID, ModType, TableID, SYSDATE, :new.ID1; ELSIF UPDATING THEN DBMS_OUTPUT.PUT_LINE(' ***** Logging an Attribute UPDATE *****'); ModType := 2; EXECUTE IMMEDIATE 'INSERT INTO GDOSYS.MODIFICATIONLOG (MODIFICATIONNUMBER, SESSIONID, "TYPE",MODIFIEDTABLEID, MODIFIEDDATE, KEYVALUE1) VALUES (:1,:2,:3,:4,:5, :6)' using ModID, SessionID, ModType, TableID, SYSDATE, :old.ID1; ELSE DBMS_OUTPUT.PUT_LINE(' ***** Logging an Attribute DELETE *****'); ModType := 3; EXECUTE IMMEDIATE 'INSERT INTO GDOSYS.MODIFICATIONLOG (MODIFICATIONNUMBER, SESSIONID, "TYPE",MODIFIEDTABLEID, MODIFIEDDATE, KEYVALUE1) VALUES (:1,:2,:3,:4,:5, :6)' using ModID, SessionID, ModType, TableID, SYSDATE, :old.ID1; END IF; END IF; END;
04.07.2013 § 1 Comment
Like described in future plans section of my GPS coordinates to Gauss–Krüger transformation tool introduction post, I’ve upgraded the tool with few new features. Now you can import external file with your coordinates in a CSV or GPX file (in a CSV file, coordinates need to be separated by comma). Also when you do the transformation you are now able to download new coordinates in a CSV file. From other improved things, it is worth noting much improved input coordinate validation and coordinate system detection, which is now based on a regular expression and not just on pure if statements. Not to mention number of bugs that were fixed on the way too.
Again, if you find this tool useful, or you have found a bug, or you have new feature request, please contact me via the contact form on the about page. I would love to hear your comments.
You can go and play with new GPS coordinates to Gauss–Krüger transformation tool features.
26.06.2013 § 1 Comment
This is a follow-up to my Is D3 a new web mapping tool? post with more great D3.js maps examples.
As a big beer lover, first I need to share an interactive map Mapping the Rise of Craft Beer that offers a detailed overview of the American craft-beer industry, based on the data gathered by the Brewers Association, created with D3.js.
Secondly, Mike Bostock, creator of D3.js, shared a transcript of his talk at Eyeo that includes more than 600 examples.
This talk does have a point, though. Examples are lightweight and informal; they can often be made in a few minutes; they lack the ceremony of polished graphics or official tools. Yet examples are a powerful medium of communication that is capable of expressing big ideas with immediate impact. And Eyeo is a unique opportunity for me to talk directly to all of you that are doing amazing things with code, data and visualization. So, if I can accomplish one thing here, it should be to get you to share more examples. In short, to share my love of examples with you.
18.06.2013 § Leave a Comment
- Simone Giannecchini and Andrea Aime: Geoserver
- Tim Schaub and Andreas Hocever: Say Hello to OpenLayers 3
- Paul Ramsey: LIDAR in PostgreSQL with PointCloud
- Alyssa Wright: OpenThreads, the community of open source mailing lists
- Juan Marin: GeoServer In Production
- David Winsow: GeoServer CSS Module
- Tim Schaub and Justin Deoliveira: Scripting GeoServer with GeoScript
- Paul Ramsey: PostGIS Feature Frenzy
- Justin Deoliveira: The State of GeoServer 2013
While on the topic of presentations, here’s also an excellent presentation of Leaflet: Past, Present and Future:
What’s the story behind Leaflet? How did it became so successful so quickly despite strong competition and lack of features? This talk will be presented by its lead developer and will cover lessons learned, the current state of the project and future challenges.
14.06.2013 § Leave a Comment
If you try to label a very small polygon (like a building), chances are that GeoServer will not display labels until you zoom in so the label fit into the (almost) whole polygon.
GeoServer will remove labels if they are a particularly bad fit for the geometry they are labeling.
Fortunately there is a goodnessOfFit parameter that is exposed through SLD vendorOption in the GeoServer.
The label is sampled approximately at every letter. The distance from these points to the polygon is determined and each sample votes based on how close it is to the polygon.
The default value for the
goodnessOfFit parameter is 0.5, so any lower value will allow more labels to be placed: