<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4026965637124869774</id><updated>2012-01-17T12:35:33.565+01:00</updated><category term='uDig'/><category term='Oracle SQL Developer'/><category term='Google Maps'/><category term='Oracle Spatial'/><category term='Oracle EPG'/><category term='ESRI Shapes'/><category term='Oracle APEX'/><category term='Javascript'/><category term='Yahoo Maps'/><category term='SUN WebStart'/><category term='Virtual Earth'/><category term='AJAX'/><category term='Oracle MapViewer'/><category term='Oracle PL/SQL'/><category term='Oracle Forms 11g'/><category term='Oracle Forms'/><category term='GeoJSON'/><category term='Oracle DB 11g'/><category term='GeoRaptor'/><category term='Chromium Browser'/><category term='OpenStreetMap'/><category term='JavaFX'/><category term='Proxy User'/><category term='Mashups'/><category term='Allgemeines'/><category term='Oracle Maps'/><category term='JSON'/><category term='Oracle Reports 11g'/><category term='OpenLayers'/><category term='Java Swing'/><title type='text'>Friedhold's Oracle World</title><subtitle type='html'>Meine "Practice" rund um Oracle</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6571082046851887189</id><published>2012-01-02T12:12:00.000+01:00</published><updated>2012-01-02T12:52:30.716+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms 11g'/><title type='text'>Forms 11g R2 - Modul ohne Window - Menue bzw. Frame</title><content type='html'>In Forms 11g Release 2 kann nun mit dem&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://docs.oracle.com/cd/E24269_01/doc.11120/e24477/basics.htm#BABGEGBC"&gt;&lt;b&gt;guiMode&lt;/b&gt;&amp;nbsp;-Konfigurations-Parameter&lt;/a&gt;&amp;nbsp;das Window-Menue und/oder der Window-Framedes Forms-Applets entfernen werden: &amp;nbsp;&lt;span style="font-size: medium;"&gt;..&lt;/span&gt;&lt;i&gt;\user_projects\domains\&lt;/i&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;ClassicFxDomain\ config\fmwconfig\servers\AdminServer\applications\formsapp_11.1.2\config\&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;formsweb.cfg:&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size: 9pt;"&gt;[jpi]&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: .0001pt; margin: 0cm;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size: 9pt;"&gt;..&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: .0001pt; margin: 0cm;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size: 9pt;"&gt;# Forms appletparameter, valid range [0-3]&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;br /&gt;&lt;div style="margin-bottom: .0001pt; margin: 0cm;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size: 9pt;"&gt;guiMode=3&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;br /&gt;&lt;div style="margin-bottom: .0001pt; margin: 0cm;"&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size: 9pt;"&gt;..&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-CSdrh2TB8HE/TwGQ4OaP6qI/AAAAAAAAAcs/AjegBsGpKQc/s1600/forms-visual-30-12-2011+21-20-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="269" src="http://2.bp.blogspot.com/-CSdrh2TB8HE/TwGQ4OaP6qI/AAAAAAAAAcs/AjegBsGpKQc/s320/forms-visual-30-12-2011+21-20-09.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center" class="separator" style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0.0001pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm;"&gt;Dies kommtnatürlich einem Layout mit integrativem Einbetten in HTML,einschliesslich&amp;nbsp;der Interaktionsfähigkeit von Forms mit JavaScript sehrentgegen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6571082046851887189?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6571082046851887189/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6571082046851887189' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6571082046851887189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6571082046851887189'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2012/01/forms-11g-r2-modul-ohne-window-menue.html' title='Forms 11g R2 - Modul ohne Window - Menue bzw. Frame'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-CSdrh2TB8HE/TwGQ4OaP6qI/AAAAAAAAAcs/AjegBsGpKQc/s72-c/forms-visual-30-12-2011+21-20-09.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-9047905722722565062</id><published>2011-12-30T18:26:00.001+01:00</published><updated>2012-01-14T16:15:24.633+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Reports 11g'/><title type='text'>Forms 11g und Reports 11g im Developer-Mode</title><content type='html'>Der Aufruf von Reports aus Forms 11g Release 2 im Developer-Mode&amp;nbsp;ist&amp;nbsp;recht einfach, hier nun ein vollständiger Demo - Ablauf:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Start des WebLogic Servers:&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-j4cgAQ3iUp0/Tv3tl0iJjGI/AAAAAAAAAa0/P4oI_28YF8Q/s1600/forms-start-30-12-2011+17-55-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="77" src="http://1.bp.blogspot.com/-j4cgAQ3iUp0/Tv3tl0iJjGI/AAAAAAAAAa0/P4oI_28YF8Q/s320/forms-start-30-12-2011+17-55-54.png" width="320" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Erstellen eines emp - Demo - Modules im Forms 11g Builder&lt;/li&gt;&lt;li&gt;Anlegen eines Reports-Objectes:&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-N-8NUsfgETo/Tv3xWzdA_eI/AAAAAAAAAbY/JBzw0kdJuCE/s1600/forms-proj-30-12-2011+18-06-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://3.bp.blogspot.com/-N-8NUsfgETo/Tv3xWzdA_eI/AAAAAAAAAbY/JBzw0kdJuCE/s320/forms-proj-30-12-2011+18-06-10.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Das Report-Object heißt hier&amp;nbsp;&lt;i&gt;'Report6'&lt;/i&gt; und der eigentliche&amp;nbsp;Report&lt;i style="font-weight: bold;"&gt;&amp;nbsp;&lt;/i&gt;ist für den &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Developer-Mode mit absoluter Pfadangabe &lt;i&gt;'D:\Forms11g-Workshop\chk_report.rdf' &lt;/i&gt;eingetragen.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Erstellen des Demo - Reports im Reports 11g Builder:&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8_CdtAAXGGI/Tv3zrBPaH2I/AAAAAAAAAbk/TJK9FjvoL84/s1600/reports-30-12-2011+18-21-55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="75" src="http://2.bp.blogspot.com/-8_CdtAAXGGI/Tv3zrBPaH2I/AAAAAAAAAbk/TJK9FjvoL84/s320/reports-30-12-2011+18-21-55.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;li&gt;Test des Reports-Servers:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nGHCQVzH9II/Tv4MUMmaF6I/AAAAAAAAAb8/7q196eTPwV0/s1600/reports-2-30-12-2011+20-07-58.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://4.bp.blogspot.com/-nGHCQVzH9II/Tv4MUMmaF6I/AAAAAAAAAb8/7q196eTPwV0/s320/reports-2-30-12-2011+20-07-58.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Im&amp;nbsp;&lt;i&gt;rwservlet.properties&amp;nbsp;&lt;/i&gt;- File&amp;nbsp;wird der Reports - Server Name ermittelt: &lt;i&gt;D:\oraforms\user_projects\domains\ClassicFxDomain\servers\AdminServer\temp\_WL_user\ reports_11.1.2\90rnjo\configuation\rwservlet.properties :&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6JuVj90twcI/Tv4PL4tku5I/AAAAAAAAAcI/Av52_ev9dv8/s1600/reports-4-30-12-2011+20-12-31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://2.bp.blogspot.com/-6JuVj90twcI/Tv4PL4tku5I/AAAAAAAAAcI/Av52_ev9dv8/s320/reports-4-30-12-2011+20-12-31.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #c00000; font-family: Arial, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Erstellen der Reports - Procedur im Formsmodul:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8TOisw0kyCM/Tv4LlzlRZuI/AAAAAAAAAbw/E8R6Snq93sY/s1600/forms-reports-2-30-12-2011+20-04-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://1.bp.blogspot.com/-8TOisw0kyCM/Tv4LlzlRZuI/AAAAAAAAAbw/E8R6Snq93sY/s320/forms-reports-2-30-12-2011+20-04-30.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Test des Reports - Startes aus dem Formsmodule mit dem Procedure - Call:&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-W8hi_SAxsjw/Tv4QUzhzp5I/AAAAAAAAAcU/RnpMKtgptUk/s1600/reports-5-30-12-2011+20-24-23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://2.bp.blogspot.com/-W8hi_SAxsjw/Tv4QUzhzp5I/AAAAAAAAAcU/RnpMKtgptUk/s320/reports-5-30-12-2011+20-24-23.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Dieser Ablauf kann ohne Konfigurierung des Forms - bzw. Reports - Servers problemlos nachvollzogen werden.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Viel Erfolg und beste Wünsche für das Neue Jahr&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Friedhold&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-9047905722722565062?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/9047905722722565062/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=9047905722722565062' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/9047905722722565062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/9047905722722565062'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/12/forms-11g-und-reports-11g-im-developer.html' title='Forms 11g und Reports 11g im Developer-Mode'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-j4cgAQ3iUp0/Tv3tl0iJjGI/AAAAAAAAAa0/P4oI_28YF8Q/s72-c/forms-start-30-12-2011+17-55-54.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6595641009297230479</id><published>2011-12-26T13:03:00.072+01:00</published><updated>2012-01-01T13:53:42.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chromium Browser'/><title type='text'>Forms 11g getestet im Chromium Browser</title><content type='html'>&lt;div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 100%;"&gt;Eine gute Testmöglichkeit ist für Forms 11g mit dem WebKit - Chromium-Browser des Open Source Chromium Projekts gegeben:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; text-align: center;"&gt;&lt;a href="http://www.chromium.org/Home" style="font-size: 100%;"&gt;&lt;img alt="" border="0" src="http://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif?revision=2" style="cursor: hand; cursor: pointer; height: 48px; width: 48px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Den aktuellsten Projektstand erhält man durch: &lt;/span&gt;&lt;a href="http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/LATEST" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/LATEST&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;und abhängig vom Ergebnis dann das jeweils aktuelle Projektverzeichnis, z.B.:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/5849/" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/5849/&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;Ich habe mir ein Chromium - Verzeichnis angelegt und entpackte das Zip-File:  &lt;span style="font-weight: bold;"&gt; chrome-win32.zip&lt;/span&gt;  in den neu angelegten Nummern-Folder: &lt;i&gt;.\Chromium\5849 .&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;In dem Forms-Developer wird nun der Chromium-WebBrowser eingetragen:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Unter: "&lt;/span&gt;&lt;span style="font-family: Georgia, serif; font-size: 100%; font-style: italic; font-variant: normal; font-weight: normal; line-height: normal;"&gt;Bearbeiten / Voreinstellungen / Laufzeit / Web-Browser-Speicherort:&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, serif; font-size: 100%; font-style: italic; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&lt;span style="font-weight: bold;"&gt;D:\Chromium\5849\chrome.exe&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Sinnvoll ist es auch, den &lt;/span&gt;&lt;a href="http://getfirebug.com/releases/lite/chrome/" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;FireBug Lite für Chrome&lt;/a&gt;&lt;span style="font-size: 100%;"&gt; zu installieren und die &lt;/span&gt;&lt;span style="font-family: Georgia, serif; font-size: 100%; font-style: italic; font-variant: normal; font-weight: normal; line-height: normal;"&gt;Debugging/Logging Features&lt;/span&gt;&lt;span style="font-size: 100%;"&gt; von FireBug zu verwenden:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Zentriert" border="0" class="gl_align_center" src="http://www.blogger.com/img/blank.gif" /&gt;&lt;a href="http://4.bp.blogspot.com/-FNJSos5c4rM/Tvh_0xhG2bI/AAAAAAAAAao/WLtNiU3q4YA/s1600/Chrom-26-12-2011%2B15-05-55.png" style="font-family: Georgia, serif; font-size: 100%;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5690438673804745138" src="http://4.bp.blogspot.com/-FNJSos5c4rM/Tvh_0xhG2bI/AAAAAAAAAao/WLtNiU3q4YA/s400/Chrom-26-12-2011%2B15-05-55.png" style="cursor: hand; cursor: pointer; height: 396px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Der Chromium-Browser ist schnell, portabel und enthält einen integrierten PDF-Viewer. Sollte irgendwann ein aktuelles Release Probleme bereiten, so setzt man den Web-Browser-Speicherort im Forms-Developer einfach auf ein anderes Release .. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Gruß,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Friedhold&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6595641009297230479?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6595641009297230479/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6595641009297230479' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6595641009297230479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6595641009297230479'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/12/forms-11g-getestet-im-chromium-browser.html' title='Forms 11g getestet im Chromium Browser'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-FNJSos5c4rM/Tvh_0xhG2bI/AAAAAAAAAao/WLtNiU3q4YA/s72-c/Chrom-26-12-2011%2B15-05-55.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6410213320403821025</id><published>2011-12-15T12:04:00.048+01:00</published><updated>2012-01-09T16:47:57.503+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Proxy User'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms 11g'/><title type='text'>Forms 11g mit Proxy - User</title><content type='html'>Eine wichtige Neuerung in Forms 11g ist die Möglichkeit des Anmeldens als Proxy - User, ich habe dies in Forms 11g Release 2 (11.1.2.0.0) getestet. Bei dieser Art der Anmeldung  muss nur der Proxy - User im LOGON bekannt sein, die jeweiligen Applikations- End User werden sozusagen durchgereicht. Damit kann der Umstellungsaufwand von Client- nach Web- Forms reduziert werden, da die Sicherung der Anmeldung&amp;nbsp;lediglich&amp;nbsp;auf den Proxy - User konzentriert werden muss.&lt;br /&gt;&lt;br /&gt;- Anlegen eines Proxy Users:&lt;br /&gt;&lt;code&gt; create user test_proxy identified by test_proxy; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Freigabe des Proxy- Connects für einen End - User:&lt;br /&gt;&lt;code&gt; alter user scott grant connect through test_proxy; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Test - Connect:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-VvPmeEfUiYM/Tunbj5ABQjI/AAAAAAAAAZQ/w-WO5l5GowA/s1600/Test-proxy-15-12-2011%2B12-33-08.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686317414174769714" src="http://4.bp.blogspot.com/-VvPmeEfUiYM/Tunbj5ABQjI/AAAAAAAAAZQ/w-WO5l5GowA/s400/Test-proxy-15-12-2011%2B12-33-08.png" style="cursor: hand; cursor: pointer; height: 133px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Anmeldung im Forms 11gR2 - Developer:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-hrUWMt2rGgk/TundhjqTN3I/AAAAAAAAAZc/vc0nM5R4Rs0/s1600/proxy-forms11g-15-12-2011%2B12-41-55.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686319573110044530" src="http://1.bp.blogspot.com/-hrUWMt2rGgk/TundhjqTN3I/AAAAAAAAAZc/vc0nM5R4Rs0/s400/proxy-forms11g-15-12-2011%2B12-41-55.png" style="cursor: hand; cursor: pointer; height: 177px; width: 337px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Implizite Anmeldung im ON-LOGON - Trigger:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-QG2FNVwyF3U/Tunec2nPBQI/AAAAAAAAAZo/eFsp_FcjYhk/s1600/forms11g-proxy-15-12-2011%2B12-45-53.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686320591809742082" src="http://2.bp.blogspot.com/-QG2FNVwyF3U/Tunec2nPBQI/AAAAAAAAAZo/eFsp_FcjYhk/s400/forms11g-proxy-15-12-2011%2B12-45-53.png" style="cursor: hand; cursor: pointer; height: 120px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Nachweis des Connect - Status:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-UEZ44DrLsPc/Tunf5OOouWI/AAAAAAAAAZ0/O5FSaxiSoFU/s1600/forms11g-conn-15-12-2011%2B12-52-41.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686322178696984930" src="http://4.bp.blogspot.com/-UEZ44DrLsPc/Tunf5OOouWI/AAAAAAAAAZ0/O5FSaxiSoFU/s400/forms11g-conn-15-12-2011%2B12-52-41.png" style="cursor: hand; cursor: pointer; height: 99px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-SHa5WZEf4-w/TungmGbeqLI/AAAAAAAAAaA/68vy9XFTDRY/s1600/forms11g-proxy-3-15-12-2011%2B12-56-02.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686322949697480882" src="http://2.bp.blogspot.com/-SHa5WZEf4-w/TungmGbeqLI/AAAAAAAAAaA/68vy9XFTDRY/s400/forms11g-proxy-3-15-12-2011%2B12-56-02.png" style="cursor: hand; cursor: pointer; height: 21px; width: 216px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;D.h. man kann mit &lt;code&gt; get_Application_Property(USERNAME) &lt;/code&gt; den Proxy - User Account abfragen, &lt;code&gt;USER&lt;/code&gt; liefert nach wie vor den End - User.&lt;br /&gt;&lt;br /&gt;Übrigens kann sich der Proxy - User selbst nicht anmelden:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-XP3Y1bv7tpw/TunjQFXMFGI/AAAAAAAAAaM/Z1tV5bFYGvM/s1600/test-proxy-2-15-12-2011%2B12-36-47.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5686325869988811874" src="http://4.bp.blogspot.com/-XP3Y1bv7tpw/TunjQFXMFGI/AAAAAAAAAaM/Z1tV5bFYGvM/s400/test-proxy-2-15-12-2011%2B12-36-47.png" style="cursor: hand; cursor: pointer; height: 74px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Aus Sicherheitsgründen&lt;/b&gt; und &lt;b&gt;besserer, nachhaltiger Wartung&lt;/b&gt; sollte ein End - User ohnedies als einziges Recht nur das &lt;code&gt; grant create session&lt;/code&gt; erhalten, eigene Objecte wie &lt;i&gt;Synonyme, temporäre Tabellen, Views etc. oder gar PL/SQL - Code&lt;/i&gt; sollte er keinesfalls besitzen! &lt;br /&gt;Jegliche Applikationsrechte sollten über Datenbank - Rollen, möglichst nach dem Prinzip der additiven Funktionserweiterung, vergeben werden.&lt;br /&gt;&lt;br /&gt;Ich hoffe, dass dies weiter hilft.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6410213320403821025?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6410213320403821025/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6410213320403821025' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6410213320403821025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6410213320403821025'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/12/proxy-anmeldung-in-forms-11g-release-2.html' title='Forms 11g mit Proxy - User'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-VvPmeEfUiYM/Tunbj5ABQjI/AAAAAAAAAZQ/w-WO5l5GowA/s72-c/Test-proxy-15-12-2011%2B12-33-08.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8904761484544266057</id><published>2011-06-20T22:35:00.016+02:00</published><updated>2012-01-02T10:04:32.618+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GeoRaptor'/><category scheme='http://www.blogger.com/atom/ns#' term='uDig'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Spatial'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SQL Developer'/><category scheme='http://www.blogger.com/atom/ns#' term='ESRI Shapes'/><title type='text'>GeoRaptor 3.0 Exportfunktionen - ESRI Shapefiles</title><content type='html'>Eine sehr nützliche Funktion ist das Exportieren von SDO_GEOMETRIES:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-b_GL4QxN2uY/Tf-wjGU1MfI/AAAAAAAAAWk/HcdhPDCerp0/s1600/20-06-2011%2B22-04-57-sql-dev1.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5620404977021563378" src="http://3.bp.blogspot.com/-b_GL4QxN2uY/Tf-wjGU1MfI/AAAAAAAAAWk/HcdhPDCerp0/s400/20-06-2011%2B22-04-57-sql-dev1.png" style="height: 400px; width: 383px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;in eines der folgenden Formate:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-r1MLe8R5ivk/Tf-xExD0xzI/AAAAAAAAAWs/SW5NCVFEtco/s1600/20-06-2011%2B22-31-56-sql-dev-5.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5620405555428640562" src="http://1.bp.blogspot.com/-r1MLe8R5ivk/Tf-xExD0xzI/AAAAAAAAAWs/SW5NCVFEtco/s400/20-06-2011%2B22-31-56-sql-dev-5.png" style="height: 359px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dabei muss der SRID natürlich OGC - konform angepasst werden:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-mD-4nBIpPkQ/Tf-xwcLbrsI/AAAAAAAAAW0/ok4LGfgtw8Q/s1600/20-06-2011%2B22-32-49-sql-dev6.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5620406305737649858" src="http://2.bp.blogspot.com/-mD-4nBIpPkQ/Tf-xwcLbrsI/AAAAAAAAAW0/ok4LGfgtw8Q/s400/20-06-2011%2B22-32-49-sql-dev6.png" style="height: 359px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Letztendlich wird das Ergebnis gemeldet:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-n1ffFhgsqA4/Tf-yP97wkEI/AAAAAAAAAW8/sXYtJ01rpVg/s1600/20-06-2011%2B22-33-15-sql-dev6.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5620406847374659650" src="http://1.bp.blogspot.com/-n1ffFhgsqA4/Tf-yP97wkEI/AAAAAAAAAW8/sXYtJ01rpVg/s400/20-06-2011%2B22-33-15-sql-dev6.png" style="height: 139px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Das erstellte Shapefile konnte ich mit dem OpenSource Desktop-GIS &lt;span style="font-weight: bold;"&gt;uDig&lt;/span&gt; (aktuelle Version: 1.2.2) verifizieren:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ov92giDt8Ro/Tf-y7ZuXUDI/AAAAAAAAAXE/YxaDW2ckzvI/s1600/20-06-2011%2B22-25-23-udig.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5620407593569046578" src="http://2.bp.blogspot.com/-ov92giDt8Ro/Tf-y7ZuXUDI/AAAAAAAAAXE/YxaDW2ckzvI/s400/20-06-2011%2B22-25-23-udig.png" style="height: 293px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Der Layer COUNTIES_GEOM ist unser Shapefile-Layer, COUNTIES ist der MVDEMO.COUNTIES.SDO_GEOMETRY-Layer: Beide Layer sind natürlich deckungsgleich.&lt;br /&gt;&lt;br /&gt;Großen Dank an das GeoRaptor Team!&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8904761484544266057?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8904761484544266057/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8904761484544266057' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8904761484544266057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8904761484544266057'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/06/georeptor-30-exportfunktionen-esri.html' title='GeoRaptor 3.0 Exportfunktionen - ESRI Shapefiles'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-b_GL4QxN2uY/Tf-wjGU1MfI/AAAAAAAAAWk/HcdhPDCerp0/s72-c/20-06-2011%2B22-04-57-sql-dev1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4054187958241030683</id><published>2011-06-13T22:11:00.009+02:00</published><updated>2011-06-13T22:33:25.867+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GeoRaptor'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Spatial'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SQL Developer'/><title type='text'>GeoRaptor 3.0 für SQL Developer 2.1 u. 3.0</title><content type='html'>Simon Greener hat im &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=2236754&amp;amp;tstart=0"&gt;Oracle Spatial Forum&lt;/a&gt; die Freigabe des GeoRaptor 3.0 für den SQL Developer 2.1 und 3.0 bekannt gegeben.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dies ist ein Super - Beispiel, wie ein kommerzielles Produkt durch freie Mitarbeit um sinnvolle Funktionen erweitert werden kann!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mit besten Wünschen,&lt;/div&gt;&lt;div&gt;Friedhold&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4054187958241030683?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4054187958241030683/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4054187958241030683' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4054187958241030683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4054187958241030683'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/06/georaptor-30-fur-sql-developer-21-u-30.html' title='GeoRaptor 3.0 für SQL Developer 2.1 u. 3.0'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-733889217971932965</id><published>2011-06-11T14:38:00.014+02:00</published><updated>2011-06-12T00:20:19.254+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><title type='text'>Oracle Maps mit Yahoo Maps inklusiv</title><content type='html'>Neulich hatte ich mir wieder einmal Oracle Maps in der vorletzten Version aus dem MapViewer 11g patch 3 (11.1.1.4.1)angesehen. Aufgefallen ist mir dabei, dass in&lt;span style="font-weight: bold; font-style: italic;"&gt;  oraclemaps.js&lt;/span&gt;  auch für Yahoo Maps die Custom Tiles Anwendung vorbereitet ist. Man braucht nur mit &lt;pre&gt;baseMap = new MVYahooTileLayer();&lt;/pre&gt; die Yahoo Base Map definieren, wobei auch bei Yahoo Maps ein Registrierungskey notwendig ist:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-aoR8OxIn9uU/TfNpXoDICEI/AAAAAAAAAWI/l6JZpg_B4L8/s1600/yahooMaps-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://4.bp.blogspot.com/-aoR8OxIn9uU/TfNpXoDICEI/AAAAAAAAAWI/l6JZpg_B4L8/s400/yahooMaps-2.png" alt="" id="BLOGGER_PHOTO_ID_5616949014869575746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Somit erhält man mit der Registrierung und &lt;b&gt;einem&lt;/b&gt; Funktionsaufruf die Yahoo Map Tiles als&lt;/div&gt;&lt;div&gt;Base Map in Oracle Maps:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-erq3J4JCNRw/TfNpQEpF4QI/AAAAAAAAAWA/7Vo1tjPBQGc/s1600/yahoomaps.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://3.bp.blogspot.com/-erq3J4JCNRw/TfNpQEpF4QI/AAAAAAAAAWA/7Vo1tjPBQGc/s400/yahoomaps.png" alt="" id="BLOGGER_PHOTO_ID_5616948885106057474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In diesem Demo ist die verschiebliche Oracle Maps Toolbar, mit der auch individuelle Erweiterungen möglich sind, enthalten.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Friedhold&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-733889217971932965?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/733889217971932965/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=733889217971932965' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/733889217971932965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/733889217971932965'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/06/oracle-maps-mit-yahoo-maps-inklusiv.html' title='Oracle Maps mit Yahoo Maps inklusiv'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-aoR8OxIn9uU/TfNpXoDICEI/AAAAAAAAAWI/l6JZpg_B4L8/s72-c/yahooMaps-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-7890348489026657647</id><published>2011-05-24T20:55:00.059+02:00</published><updated>2011-06-16T13:25:05.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenLayers'/><category scheme='http://www.blogger.com/atom/ns#' term='JSON'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle EPG'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoJSON'/><title type='text'>GeoJSON-Beispiel aus PL/SQL in OpenLayers</title><content type='html'>Oracle Maps und APEX seit der Version 4.0 verwenden das &lt;a href="http://json.org/"&gt;JSON - Format&lt;/a&gt; zum direkten Datenzugriff aus der Datenbank und effizienten Verarbeitung in Javascript. Dieses Format hat sich auf Grund seiner Kompaktheit, guten Lesbarkeit und der direkten Ansprechbarkeit in Javascript als implizite JavaScript-Objektnotation in der WebBrowser-Technologie recht gut durchgesetzt. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Somit ist es auch nahe liegend, dass Geo-Daten in dem JSON-Format als Vector-Layer z.B. in OpenLayers direkt dargestellt werden. Hierfür gibt es eine besondere Spezifikation zur Erstellung von Feature-Informationen: Das &lt;a href="http://geojson.org/geojson-spec.html"&gt;GeoJSON - Format&lt;/a&gt;. Unter anderem bieten der OGC-Konverter GDAL und der FME-Konverter von Safe die direkte Erstellung dieses Geo-Formates an. &lt;div&gt;In meinem hier vorgestellten Demo wird die Klick-Koordinate zum Suchen des Country-Polygons verwendet und anschließend das gefundene Polygon im GeoJSON-Format erzeugt:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE PROCEDURE get_simple_geojson_2 (p_x number, p_y number)  IS&lt;br /&gt;&lt;br /&gt;   l_state varchar2(2);&lt;br /&gt;&lt;br /&gt;  FUNCTION fnc_get_state(p_x NUMBER, p_y NUMBER )&lt;br /&gt;    RETURN varchar2 IS &lt;br /&gt;    li_state varchar2(2);&lt;br /&gt;  BEGIN&lt;br /&gt;   &lt;br /&gt;    SELECT /*+ ORDERD */&lt;br /&gt;      s.STATE_ABRV&lt;br /&gt;      into li_state&lt;br /&gt;      FROM states s&lt;br /&gt;     WHERE SDO_RELATE(s.geom,&lt;br /&gt;                      SDO_GEOMETRY(2001,&lt;br /&gt;                                   8307,&lt;br /&gt;                                   SDO_POINT_TYPE(p_x, p_y, NULL),&lt;br /&gt;                                   NULL,&lt;br /&gt;                                   NULL),&lt;br /&gt;                      'mask=CONTAINS') = 'TRUE'&lt;br /&gt;                      AND ROWNUM&lt;2;&lt;br /&gt;    RETURN(li_state);  &lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN OTHERS then&lt;br /&gt;      RETURN('RI');   &lt;br /&gt;  END fnc_get_state;&lt;br /&gt;  &lt;br /&gt;  FUNCTION get_XY (p_state varchar2) RETURN VARCHAR2 IS&lt;br /&gt;    l_coords varchar2(32767);&lt;br /&gt;  BEGIN&lt;br /&gt;    for l_xy in (SELECT t.X, t.Y&lt;br /&gt;                     FROM states s,&lt;br /&gt;                     TABLE(SDO_UTIL.GETVERTICES(s.geom)) t&lt;br /&gt;                 WHERE s. STATE_ABRV = p_state&lt;br /&gt;                ) loop&lt;br /&gt;                  l_coords:= l_coords || '['|| l_xy.X ||','|| l_xy.Y ||'],';&lt;br /&gt;                end loop;&lt;br /&gt;    RETURN( substr(l_coords, 1, length(l_coords)-1) );&lt;br /&gt;  END get_XY;&lt;br /&gt;  &lt;br /&gt;BEGIN&lt;br /&gt;  &lt;br /&gt;  l_state := fnc_get_state(p_x, p_y);&lt;br /&gt;  &lt;br /&gt;  htp.p('&lt;br /&gt;  {&lt;br /&gt;    "type": "FeatureCollection",&lt;br /&gt;    "features": [&lt;br /&gt;        {"type":"Feature", "id":"OpenLayers.Feature.Vector_1489", "properties":{},&lt;br /&gt;                "geometry":{ "type":"Polygon",&lt;br /&gt;                "coordinates":[['&lt;br /&gt;                || get_XY( l_state ) ||&lt;br /&gt;                ']] },'||&lt;br /&gt;         '"crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}&lt;br /&gt;         }'||&lt;br /&gt;     ']&lt;br /&gt;  }&lt;br /&gt;  '&lt;br /&gt;  );&lt;br /&gt;&lt;br /&gt;end get_simple_geojson_2;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Die Verifizierung dieser GeoJSON-Polygone habe ich OpenLayers mit der entsprechenden Darstellung überlassen:&lt;/div&gt;&lt;pre&gt;function handleMapClick(e)&lt;br /&gt;{&lt;br /&gt;var lonlat = map.getLonLatFromViewPortPx(e.xy);&lt;br /&gt;&lt;br /&gt;var newgeojson = new OpenLayers.Layer.GML("My GeoJSON Layer",&lt;br /&gt;              'http://localhost:8089/mvdemo/get_simple_geojson_2?p_x='+lonlat.lon+'&amp;amp;p_y='+lonlat.lat,&lt;br /&gt;              {format: OpenLayers.Format.GeoJSON});&lt;br /&gt; &lt;br /&gt;map.addLayer(newgeojson);&lt;br /&gt;} &lt;/pre&gt;&lt;div&gt;Hier nun das &lt;a href="http://www.free-dev.com/blog/geojson-22.html"&gt;Demo-Video GeoJSON aus PL/SQL in OpenLayers.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gruß,&lt;br /&gt;Friedhold&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-7890348489026657647?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/7890348489026657647/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=7890348489026657647' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7890348489026657647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7890348489026657647'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/05/geojson.html' title='GeoJSON-Beispiel aus PL/SQL in OpenLayers'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-7310380713725329667</id><published>2011-05-15T20:21:00.089+02:00</published><updated>2011-06-13T22:10:00.522+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle EPG'/><title type='text'>Oracle Embedded PL/SQL Gateway einrichten</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;p&gt;Das &lt;a href="http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_web.htm#insertedID4"&gt;Embedded PL/SQL Gateway&lt;/a&gt; ist ein 'interner' HTTP Listener der Oracle XMLDB und kann für die Entwicklung von PL/SQL - Web Toolkit Applikationen, z.B. mit Oracle Spatialfunktionen, sehr nützlich sein. Dabei wird die Konfigurierung des PL/SQL-DAD's mit der DBMS_EPG - Package verwendet. Entsprechend der hier gefundenen &lt;a href="http://www.astral-consultancy.co.uk/cgi-bin/hunbug/doco.cgi?11410"&gt;Beschreibung&lt;/a&gt; habe ich &lt;a href="http://www.free-dev.com/blog/config-epg.txt"&gt;&lt;span style="TEXT-DECORATION: underline"&gt;diesen Ablauf hier &lt;/span&gt;&lt;/a&gt;mit Erfolg getestet&lt;span style="FONT-WEIGHT: bold"&gt;.&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Test:&lt;/span&gt; &lt;a href="http://localhost:8089/mvdemo/testPage"&gt;http://localhost:8089/mvdemo/testPage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-hw_wwGGsCnU/TdBGc4weL5I/AAAAAAAAAVs/2yjMci2w1No/s1600/testpage.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5607058998162239378" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 168px" alt="" src="http://4.bp.blogspot.com/-hw_wwGGsCnU/TdBGc4weL5I/AAAAAAAAAVs/2yjMci2w1No/s400/testpage.png" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Nun könnten wir über dieses Embedded PL/SQL-Gateway auf die mvdemo - Geodaten zugreifen. Diese hier vorgestellte Konfigurierung sollte jedoch nur für Entwicklungszwecke dienen, für einen sicheren Betrieb müßte die &lt;strong&gt;Access Control List (ACL)&lt;/strong&gt; entsprechend konfiguriert werden. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Friedhold&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-7310380713725329667?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/7310380713725329667/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=7310380713725329667' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7310380713725329667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7310380713725329667'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/05/oracle-embedded-plsql-gateway.html' title='Oracle Embedded PL/SQL Gateway einrichten'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hw_wwGGsCnU/TdBGc4weL5I/AAAAAAAAAVs/2yjMci2w1No/s72-c/testpage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-5755220860003693329</id><published>2011-04-28T22:19:00.016+02:00</published><updated>2011-04-28T23:25:11.727+02:00</updated><title type='text'>SQL*PLUS für Windows in einer Oracle 11g DB Installation einrichten</title><content type='html'>Nach der Installation einer 11g Datenbank und eines 11g Clients suchte ich vergeblich das gewohnte SQL*PLUS für Windows (bin\sqlplusw.exe) !&lt;div&gt;Ganz so schnell geht der Umstieg auf DOS - sqlplus und SQLDeveloper, inzwischen in der Version 3.0 erschienen, nun doch nicht. Insbesondere haben sich in den Jahren Batch - Abläufe angesammelt,  die lauffähige Statement-TODO's darstellen und demzufolge recht gern in SQL*PLUS angewendet werden. (Man denke nur an den zu protokollierenden Abgleich zwischen einer Test- und Produktionsdatenbank.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Im &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=583263&amp;amp;start=0&amp;amp;tstart=0"&gt;Oracle Forum&lt;/a&gt; hatte ich den Hinweis zu einer Nachinstallation erhalten. Vorausgesetzt, es ist noch eine SQL*PLUS Installation vorhanden , kann man wie folgt vorgehen:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Kopie der CLIENT_10g\bin\&lt;b&gt;sqlplusw.exe&lt;/b&gt; in das ORACLE_11gDB\bin - Verzeichnis&lt;/li&gt;&lt;li&gt;Kopie der ORACLE_HOME\bin\&lt;b&gt;oraclient11.dll&lt;/b&gt;  in ORACLE_11gDB\bin\Kopie-oraclient11.dll&lt;/li&gt;&lt;li&gt;Umbenennung der &lt;b&gt;Kopie-oraclient11.dll&lt;/b&gt;  in  &lt;b&gt;oraclient10.dll&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;/b&gt;Kopie der &lt;b&gt;spwd.msd &amp;amp; spwus.msb&lt;/b&gt; aus dem CLIENT_10g\slqplus\msg - Verzeichnis in das ORACLE_11gDB\sqlplus\msg - Verzeichnis.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Ich habe mir auf dem Desktop den Link zum SQL*PLUS angelegt :-) &lt;a href="http://2.bp.blogspot.com/-xjLrJBXdJIw/TbnVFz3bKRI/AAAAAAAAAVc/HOmN_17nC28/s1600/sqlplus-28-04-2011%2B22-56-54.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 61px; height: 82px;" src="http://2.bp.blogspot.com/-xjLrJBXdJIw/TbnVFz3bKRI/AAAAAAAAAVc/HOmN_17nC28/s400/sqlplus-28-04-2011%2B22-56-54.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5600741907410659602" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hoffentlich hilft es Jemandem.&lt;/div&gt;&lt;div&gt;Friedhold&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span lang="EN-US" style="font-size:12.0pt; line-height:115%;font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;mso-fareast-theme-font:minor-fareast;color:red;mso-ansi-language: EN-US;mso-fareast-language:DE;mso-bidi-language:AR-SA"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-5755220860003693329?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/5755220860003693329/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=5755220860003693329' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5755220860003693329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5755220860003693329'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2011/04/sqlplus-fur-windows-in-einer-oracle-11g.html' title='SQL*PLUS für Windows in einer Oracle 11g DB Installation einrichten'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xjLrJBXdJIw/TbnVFz3bKRI/AAAAAAAAAVc/HOmN_17nC28/s72-c/sqlplus-28-04-2011%2B22-56-54.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8802937487801265690</id><published>2010-02-22T18:28:00.041+01:00</published><updated>2010-02-25T11:36:10.490+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle APEX'/><title type='text'>APEX als Web 2.0 BI Dashboard</title><content type='html'>Vor ca. 2 Jahren hatte ich an einem &lt;a href="http://friedhold-matz.blogspot.com/2008/04/oracle-application-express-fr-oracle.html"&gt;APEX - Roundtable mit Mike Hitchwa &lt;/a&gt; in Hamburg teilgenommenm, dabei konnten wir unsere Vorstellungen zu APEX - Komponenten äussern. Dass nun einige, dort diskutierte Komponenten real umsetzbar sind, zeigt &lt;a href="http://www.apex-home.com/pls/apex/f?p=56502:3:6606665786015173"&gt; folgendes Demo-Video&lt;/a&gt;, das &lt;a href="http://www.apex-home.com/pls/apex/f?p=117:1:4355523705249491"&gt;Live - Demo&lt;/a&gt; kann ebenfalls erprobt werden.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Informationen werden unterschiedlich wahrgenommen und diese Wahrnehmung ist auch noch von aktuellen Prozessereignissen abhängig. Gerade Ausnahmesituationen möchte man zu Dashboard - Sichten zusammenstellen, so dass diese zusammengefasst beobachtet werden können. &lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;PL/SQL &lt;/span&gt;&lt;/b&gt;trifft wieder einmal auf&lt;b&gt; &lt;/b&gt;JavaScript&lt;b&gt; &lt;/b&gt;und das mit der Robustheit und Performance von APEX !&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Gruß,&lt;br /&gt;Friedhold&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8802937487801265690?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8802937487801265690/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8802937487801265690' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8802937487801265690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8802937487801265690'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2010/02/apex-40-als-web-20-dashboard.html' title='APEX als Web 2.0 BI Dashboard'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6311639126415925440</id><published>2009-02-06T20:54:00.045+01:00</published><updated>2009-02-07T17:59:46.686+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SUN WebStart'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Oracle Forms WebStart mit dem JDK 1.6 und dem OC4J der iDSuite 10g</title><content type='html'>&lt;p&gt;Die im Blog &lt;a href="http://friedhold-matz.blogspot.com/2008/12/ein-beispiel-zur-modernisierung-von.html"&gt;"SUN's Applet-Technologie .."&lt;/a&gt; erwähnten drei RIA - Technologien von SUN, Adobe und Microsoft ermöglichen die Ausführung der Applikationen sowohl im WebBrowser als auch direkt auf dem Desktop!&lt;br /&gt;Ich möchte nun zeigen, wie man den Forms 10g WebStart mit dem OC4J der iDeveloper Suite 10gR2 und dem JDK 1.6 Update 11 testen kann:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Konfigurierung des &lt;strong&gt;OC4J der iDS10gR2&lt;/strong&gt; Suite:&lt;br /&gt;&lt;br /&gt;In der &lt;strong&gt;&lt;em&gt;C:\iDS10gR2&lt;/em&gt;\forms\j2ee\orion-web.xml&lt;/strong&gt; fügen wir in der Sektion "orion-web-app" ein : &lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;&lt;em&gt;directory-browsing="allow"&lt;/em&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Erstellen einer &lt;em&gt;start-web.html&lt;/em&gt; Seite und Speichern unter : &lt;strong&gt;C:\iDS10gR2\tools\web\html&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Start des OC4J &lt;/li&gt;&lt;li&gt;Test des Seiten-Zugriffes (Port anpassen) : &lt;strong&gt;http://localhost:8889/forms/html/start-web.html&lt;/strong&gt; =&gt; OK. &lt;/li&gt;&lt;li&gt;Anlegen des Verzeichnisses&lt;strong&gt; C:\iDS10gR2\tools\web\html\jnlp&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Anpassung des &lt;strong&gt;jnlp - Files&lt;/strong&gt; (Port, Modulname) und speichern in &lt;strong&gt;C:\iDS10gR2\tools\web\html\jnlp&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SY24DQJtBaI/AAAAAAAAARM/QjAlCHcyRLY/s1600-h/forms-webstart-3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5300094702499726754" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 305px" alt="" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SY24DQJtBaI/AAAAAAAAARM/QjAlCHcyRLY/s400/forms-webstart-3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kopieren des &lt;strong&gt;frmall.jar&lt;/strong&gt;-Files nach&lt;strong&gt; C:\iDS10gR2\tools\web\html\jnlp&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Anlegen des Verzeichnisses &lt;strong&gt;C:\iDS10gR2\tools\web\html\jnlp\oracle\forms &lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Kopie des &lt;strong&gt;Registry.dat&lt;/strong&gt;-Files nach &lt;strong&gt;C:\iDS10gR2\tools\web\html\jnlp\oracle\forms&lt;/strong&gt; &lt;/li&gt;&lt;li&gt;Erstellen eines &lt;strong&gt;Formsmodules &lt;/strong&gt;und Speichern des *.fmx in &lt;strong&gt;C:\iDS10gR2\forms&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Ausführung des WebStart's : &lt;a href="http://localhost:8889/forms/html/jnlp/formsStart.jnlp"&gt;&lt;strong&gt;http://localhost:8889/forms/html/jnlp/formsStart.jnlp&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_q0dsNP64rNY/SYyhAsCaE3I/AAAAAAAAAQ8/6J0E1oj_rdE/s1600-h/forms-webstart.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5299787894701560690" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 292px" alt="" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SYyhAsCaE3I/AAAAAAAAAQ8/6J0E1oj_rdE/s400/forms-webstart.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ausserdem wird im Programm-Menü der Applikationsstart eingetragen: &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_q0dsNP64rNY/SYyjIFKpXgI/AAAAAAAAARE/Hq95paokB-s/s1600-h/forms-webstart-2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5299790220729343490" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 43px" alt="" src="http://4.bp.blogspot.com/_q0dsNP64rNY/SYyjIFKpXgI/AAAAAAAAARE/Hq95paokB-s/s400/forms-webstart-2.png" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;so dass ein schneller Direktstart möglich ist.&lt;/p&gt;&lt;p&gt;Oracle Forms 10g als WebStart Application und damit eigentlich auch als &lt;strong&gt;RDA &lt;/strong&gt;: &lt;em&gt;&lt;strong&gt;Rich Desktop Application&lt;/strong&gt;&lt;/em&gt; ..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Friedhold &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6311639126415925440?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6311639126415925440/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6311639126415925440' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6311639126415925440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6311639126415925440'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2009/02/oracle-forms-webstart-mit-dem-jdk-16.html' title='Oracle Forms WebStart mit dem JDK 1.6 und dem OC4J der iDSuite 10g'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q0dsNP64rNY/SY24DQJtBaI/AAAAAAAAARM/QjAlCHcyRLY/s72-c/forms-webstart-3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-2002217630212556224</id><published>2008-12-26T23:42:00.022+01:00</published><updated>2009-02-07T18:02:06.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaFX'/><category scheme='http://www.blogger.com/atom/ns#' term='SUN WebStart'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>SUN's Applet-Technologie: JavaFX und Google Maps</title><content type='html'>In einem früheren Blog-Beitrag hatte ich bereits auf die Erneuerung von SUN's Applet-Technologie hingewiesen und dass dies durchaus Auswirkungen, auch auf Oracle Forms, haben kann!&lt;br /&gt;Anhand eines praktischen Beispieles möchte ich nun ein neues Feature demonstrieren: Eine JavaFX - Applikation inkl. Google Maps wird als Applet im Browser gestartet und läßt sich per Drag auf den Desktop, also ausserhalb des Browser-Fensters, ziehen. Danach kann das Browser-Fenster geschlossen werden, so dass wir hiermit eine Desktop - Applikation erhalten. Nun zum Ausprobieren, Voraussetzung ist das JDK 1.6 Update 10+ :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_q0dsNP64rNY/SVVqf_xuGYI/AAAAAAAAAQc/mwtyZIrJNtQ/s1600-h/JavaFXGMaps.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5284246835717609858" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 293px" alt="" src="http://1.bp.blogspot.com/_q0dsNP64rNY/SVVqf_xuGYI/AAAAAAAAAQc/mwtyZIrJNtQ/s400/JavaFXGMaps.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onclick="popWin = open('http://www.free-dev.com/javafx/StartNew.html','myWin','width=800,height=800');popWin.focus();return false" href="http://www.free-dev.com/javafx/StartNew.html"&gt;Start der JavaFX-Applikation in einem neuen Browser-Fenster (Bitte beachten: Dies ist nur ein Testbeispiel!) &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JavaFX ist übrigens SUN's Antwort auf Adobe's Flex &amp;amp; AIR und Microsoft's Silverlight, Applikationen, die sowohl im WebBrowser als auch im Desktop laufen.&lt;br /&gt;&lt;br /&gt;Mit etwas Anpassung können wir natürlich auch Oracle Maps als JavaFX - RDA (Rich Desktop Application) anwenden.&lt;br /&gt;&lt;br /&gt;Beste Grüße und ein erfolgreiches Neues Jahr&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-2002217630212556224?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/2002217630212556224/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=2002217630212556224' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2002217630212556224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2002217630212556224'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/12/ein-beispiel-zur-modernisierung-von.html' title='SUN&apos;s Applet-Technologie: JavaFX und Google Maps'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q0dsNP64rNY/SVVqf_xuGYI/AAAAAAAAAQc/mwtyZIrJNtQ/s72-c/JavaFXGMaps.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6436985558940344675</id><published>2008-11-30T13:18:00.020+01:00</published><updated>2008-12-02T15:52:06.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Earth'/><title type='text'>Oracle Maps mit externer Virtual Earth Satelliten Karte</title><content type='html'>Oracle Maps und Microsofts Virtual Earth ist eine durchaus akzeptable Mashup Kombination. Mit ein wenig Anpassung kann man die Vektor - Kartensicht in Virtual Earth übrigens auf die Satelliten - Rasteransicht umstellen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_q0dsNP64rNY/STQDo4gKY8I/AAAAAAAAAQM/6jqpgSxoFBA/s1600-h/omaps-ve-grid.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 263px;" src="http://4.bp.blogspot.com/_q0dsNP64rNY/STQDo4gKY8I/AAAAAAAAAQM/6jqpgSxoFBA/s400/omaps-ve-grid.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5274845064454628290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hier nun beide Oracle Maps - Demos, sozusagen live:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.free-dev.com/lomaps/ve-ext.php"&gt;* Virtual Earth mit Kartenansicht&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.free-dev.com/lomaps/ve-ext-grid.php"&gt;* Virtual Earth mit Satellitenansicht&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir sind mit unserer "slippy" Oracle Maps sehr flexible und können, wie bereits in der Mashup - Serie mit VE Custom Base Map Tiles gezeigt, nun auch auf einem &lt;strong&gt;Remote Customer Grid-Map Layer &lt;/strong&gt; eigene FOI - Layer darstellen.&lt;br /&gt;&lt;br /&gt;Viel Spaß,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6436985558940344675?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6436985558940344675/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6436985558940344675' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6436985558940344675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6436985558940344675'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/11/oracle-maps-mit-virtual-earth-ansichten.html' title='Oracle Maps mit externer Virtual Earth Satelliten Karte'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q0dsNP64rNY/STQDo4gKY8I/AAAAAAAAAQM/6jqpgSxoFBA/s72-c/omaps-ve-grid.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4637446132791570116</id><published>2008-10-19T21:42:00.017+02:00</published><updated>2009-02-07T18:04:47.411+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Java Swing'/><category scheme='http://www.blogger.com/atom/ns#' term='SUN WebStart'/><title type='text'>Remote Oracle Maps in einer Swing - Applikation</title><content type='html'>Natürlich ist es anschaulicher, wenn man Oracle Maps direkt und als Live - Demo präsentieren kann. Mit etwas Anpassung ist das &lt;a href="http://elocation.oracle.com/elocation/ajax/"&gt;&lt;em&gt;Oracle GeoCoding Demo&lt;/em&gt;&lt;/a&gt; als Web Start Swing-Applikation lauffähig, per rechtem Mouseclick erhält man die Koordinaten im InfoWindow :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_q0dsNP64rNY/SPuPahUQTsI/AAAAAAAAAQE/t_uLwShqWZM/s1600-h/OMaps-live-WebStart-2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5258954675667881666" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_q0dsNP64rNY/SPuPahUQTsI/AAAAAAAAAQE/t_uLwShqWZM/s400/OMaps-live-WebStart-2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Zum Ausprobieren habe ich das &lt;a href="http://www.free-dev.com/lomaps/launch.jnlp"&gt;Web Start - Demo &lt;/a&gt;bereitgestellt.&lt;br /&gt;&lt;br /&gt;Damit eröffnen sich mit SUN's Erneuerungen hinsichtlich der &lt;strong&gt;Applet- und Web Start- Technologie auch für Oracle Maps&lt;/strong&gt; neue Möglichkeiten ..&lt;br /&gt;&lt;br /&gt;Übrigens läuft das Demo auch problemlos unter &lt;strong&gt;&lt;em&gt;Googles WebBrowser Chrome&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4637446132791570116?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4637446132791570116/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4637446132791570116' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4637446132791570116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4637446132791570116'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/10/remote-oracle-maps-in-einer-swing.html' title='Remote Oracle Maps in einer Swing - Applikation'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q0dsNP64rNY/SPuPahUQTsI/AAAAAAAAAQE/t_uLwShqWZM/s72-c/OMaps-live-WebStart-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6201336150844687708</id><published>2008-10-10T20:16:00.038+02:00</published><updated>2009-02-07T18:00:05.584+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle MapViewer'/><category scheme='http://www.blogger.com/atom/ns#' term='Java Swing'/><category scheme='http://www.blogger.com/atom/ns#' term='SUN WebStart'/><title type='text'>Remote Oracle MapViewer Tiles in einer Web Start Swing - Applikation</title><content type='html'>Bisher hatte ich mich in den Oracle Maps - Mashups Blogs auf die sogenannten 'Slippy' - Maps bezogen: Diese laufen als Thin Clients in den Web-Browsern, programmiert mit JavaScript und sind auf Grund der Leichtgängigkeit sehr beliebt.&lt;br /&gt;&lt;br /&gt;Es gibt natürlich nach wie vor die Möglichkeit, die Oracle Map Tiles vom Oracle MapViewer anzufordern: Hierfür wird die Java-Library &lt;em&gt;mvclient.jar &lt;/em&gt;verwendet.&lt;br /&gt;&lt;br /&gt;Liujian Qian hat uns in seinem &lt;a href="http://oraclemaps.blogspot.com/2008/09/displaying-map-tiles-in-your-java-swing.html"&gt;wunderbaren Blog ein Swing Mapper-Demo &lt;/a&gt;vorgestellt: Dieses habe ich etwas angepasst (den Fokus auf die Lausitz verlagert ;-) ) und als &lt;a href="http://www.free-dev.com/smaps/launch.jnlp"&gt;&lt;strong&gt;Web Start - Demo &lt;/strong&gt;&lt;/a&gt;bereitgestellt:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SO-piIDQHoI/AAAAAAAAAP8/1TlfHywVIVM/s1600-h/Demo-OMV-Lusitia.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5255605693906427522" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SO-piIDQHoI/AAAAAAAAAP8/1TlfHywVIVM/s400/Demo-OMV-Lusitia.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wie bereits in der vorigen Blog-Serie zu den Oracle Maps - Mashups verwende ich hier ebenfalls das &lt;a href="http://elocation.oracle.com/elocation/ajax/"&gt;&lt;em&gt;Oracle GeoCoding Demo&lt;/em&gt;&lt;/a&gt;.&lt;br /&gt;Die Navigation in der Swing-Map erfolgt mit den Tasten des Nummern-Blockes: Die Positionsverschiebung mit den Pfeil-Tasten, das Zooming mit der &lt;+&gt; u. &lt;-&gt; - Taste.&lt;br /&gt;&lt;br /&gt;Somit haben wir jetzt ein Beipiel zum &lt;strong&gt;Remote - Zugriff &lt;/strong&gt;auf &lt;strong&gt;Oracle MapViewer Tiles &lt;/strong&gt;per &lt;strong&gt;Web Start - Swing Applikation&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6201336150844687708?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6201336150844687708/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6201336150844687708' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6201336150844687708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6201336150844687708'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/10/oracle-mapviewer-in-java-swing.html' title='Remote Oracle MapViewer Tiles in einer Web Start Swing - Applikation'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q0dsNP64rNY/SO-piIDQHoI/AAAAAAAAAP8/1TlfHywVIVM/s72-c/Demo-OMV-Lusitia.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-1827143363555047510</id><published>2008-09-04T21:02:00.013+02:00</published><updated>2008-09-04T21:33:18.239+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps und Oracle Maps Mashup mit externem Custom Map Tile Layer (8)</title><content type='html'>Im letzten Teil dieser Serie zu &lt;em&gt;'Oracle Maps Mashups mit externen Customer Map Tile Layern'&lt;/em&gt; möchte ich schliesslich die Lösung mit Google Maps Tiles vorstellen. Die Parameterdefinition zur Kartenprojektion ist wie beim &lt;a href="http://friedhold-matz.blogspot.com/2008/09/virtual-earth-und-oracle-maps-mashup.html"&gt;Virtual Earth Demo&lt;/a&gt; vorzunehmen. &lt;br /&gt;&lt;br /&gt;Die Google Tiles Url hatte ich bereits im Blog &lt;a href="http://friedhold-matz.blogspot.com/2008/09/google-maps-tiles-url-mit-plsql-bilden.html"&gt;"Google Maps Tile - URL mit PL/SQL bilden"&lt;/a&gt; vorgestellt, so dass eigentlich nur die &lt;em&gt;'getTileURL'&lt;/em&gt; - Funktion angepasst werden muss:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_q0dsNP64rNY/SMA0FGExxXI/AAAAAAAAAMU/ueCkcV041Sw/s1600-h/Google_mashup_code.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_q0dsNP64rNY/SMA0FGExxXI/AAAAAAAAAMU/ueCkcV041Sw/s400/Google_mashup_code.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5242247228393899378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Letzendlich erhalten wir das &lt;strong&gt;Google Maps / Oracle Maps Mashup&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_q0dsNP64rNY/SMA1bn7CwnI/AAAAAAAAAMc/3DkBnN1jyIg/s1600-h/Google_mashup-2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SMA1bn7CwnI/AAAAAAAAAMc/3DkBnN1jyIg/s400/Google_mashup-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5242248714948625010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Natürlich lassen sich auch auf der &lt;strong&gt;Google Maps - Base Map statische und dynamische Features of Interest Layers (FOIs)&lt;/strong&gt; darstellen, insbesondere auf der Basis von topologischen Abfragen direkt aus Oracle Spatial.&lt;br /&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-1827143363555047510?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/1827143363555047510/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=1827143363555047510' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1827143363555047510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1827143363555047510'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/09/google-maps-und-oracle-maps-mashup-mit.html' title='Google Maps und Oracle Maps Mashup mit externem Custom Map Tile Layer (8)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q0dsNP64rNY/SMA0FGExxXI/AAAAAAAAAMU/ueCkcV041Sw/s72-c/Google_mashup_code.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8552994294834249327</id><published>2008-09-04T19:05:00.018+02:00</published><updated>2008-09-07T21:03:52.205+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>OpenStreetMap - FOI, Virtual Earth und Oracle Maps Mashup (7)</title><content type='html'>Im &lt;a href="http://friedhold-matz.blogspot.com/2008/09/virtual-earth-und-oracle-maps-mashup.html"&gt;letzten Teil (6)&lt;/a&gt; hatte ich das Virtual Earth / Oracle Maps Mashup vorgestellt. Um Spatial - Daten als Features of Interest Layer (FOI) auf der extern (remote) gerenderten Customer Tile Map darzustellen, müssen wir die verwendeten OpenStreetMap Daten in den Spherical Mercator, sozusagen Map-konform, umrechnen (analog zum &lt;a href="http://friedhold-matz.blogspot.com/2008/08/openstreetmap-foi-oracle-maps-mashup.html"&gt;Teil (5) &lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;Dann können wir diesen FOI- Layer aktivieren:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SMAcAg-duJI/AAAAAAAAAME/3rRVA_7kBUA/s1600-h/MSVirtual_Earth_mashup_Berlin_code.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SMAcAg-duJI/AAAAAAAAAME/3rRVA_7kBUA/s400/MSVirtual_Earth_mashup_Berlin_code.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5242220761436764306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;und erhalten schliesslich das &lt;strong&gt;OpenStreetMap / Virtual Earth / Oracle Maps Mashup:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SMAc8LHz-QI/AAAAAAAAAMM/Vvbr_D_3qkc/s1600-h/MSVirtual_Earth_mashup_Berlin_2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SMAc8LHz-QI/AAAAAAAAAMM/Vvbr_D_3qkc/s400/MSVirtual_Earth_mashup_Berlin_2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5242221786362542338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8552994294834249327?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8552994294834249327/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8552994294834249327' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8552994294834249327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8552994294834249327'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/09/virtual-earth-openstreetmap-daten-und.html' title='OpenStreetMap - FOI, Virtual Earth und Oracle Maps Mashup (7)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q0dsNP64rNY/SMAcAg-duJI/AAAAAAAAAME/3rRVA_7kBUA/s72-c/MSVirtual_Earth_mashup_Berlin_code.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-3036833735420951309</id><published>2008-09-02T21:20:00.022+02:00</published><updated>2008-09-02T22:47:25.894+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>Virtual Earth und Oracle Maps Mashup mit externem Custom Map Tile Layer (6)</title><content type='html'>Nun haben wir uns so langsam dem Spherical Mercator genähert und möchten in Oracle Maps als &lt;strong&gt;externe Customer Base Map &lt;/strong&gt;die &lt;strong&gt;Virtual Earth Map &lt;/strong&gt;von Microsoft darstellen. Im &lt;a href="http://friedhold-matz.blogspot.com/2008/08/oracle-maps-mashup-mit-custom-map-tile.html"&gt;Teil 3&lt;/a&gt; dieser Serie hatte ich bereits auf die Notwendigkeit der Anwendung des &lt;strong&gt;Google/Vitual Earth Spherical Mercators&lt;/strong&gt; hingewiesen! Würde man als Map- Projektion den World Mercator 54004 verwenden, :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; var mapConfig=&lt;br /&gt;   {&lt;br /&gt;     "mapTileLayer":"GX_MERCATOR",&lt;br /&gt;     "format":"PNG",&lt;br /&gt;     "coordSys":&lt;br /&gt;     {&lt;br /&gt;       "srid":54004,&lt;br /&gt;       "type":"PROJECTED",&lt;br /&gt;       "distConvFactor":1.0,&lt;br /&gt;       "minX":-2.0037508E7,"minY":-2.0037508E7,&lt;br /&gt;       "maxX":2.0037508E7,"maxY":2.0037508E7&lt;br /&gt;     },&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;so wären die Demo- Daten leider nicht Karten - konform:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SL2aSys3N_I/AAAAAAAAAL8/g3lSaSGbu0k/s1600-h/customerMaps-Vergleich-VE-54004-FALSE.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SL2aSys3N_I/AAAAAAAAAL8/g3lSaSGbu0k/s400/customerMaps-Vergleich-VE-54004-FALSE.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241515188967389170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mit dem derzeit bekanntem (Im Oracle Forum ist der Spherical Mercator als SRID- Update bereits zugesagt worden!) und im Oracle Spatial Forum veröffentlichtem SRID:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; var mapConfig=&lt;br /&gt;   {&lt;br /&gt;     ...     &lt;br /&gt;     {&lt;br /&gt;       "srid:1000002,&lt;br /&gt;       ...&lt;br /&gt;     },&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;sieht das Mashup aus der Virtual Earth Customer Base Map und dem Oracle Maps Demo - FOI - Layer dann so aus:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SL2XIS4hoMI/AAAAAAAAAL0/Rt02IaAN3n0/s1600-h/MSVirtual_Earth_mashup_SF-OK.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SL2XIS4hoMI/AAAAAAAAAL0/Rt02IaAN3n0/s400/MSVirtual_Earth_mashup_SF-OK.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241511710092796098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft verwendet zum schnellen Zugriff auf die Virtual Earth - Tiles sogenannte Quad-Keys :&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt; function getVETileQuadKey(tileX, tileY, level)&lt;br /&gt;  {&lt;br /&gt;    var quadKey = "";&lt;br /&gt;    for (var i = level; i &gt; 0; i--)&lt;br /&gt;    {&lt;br /&gt;        var digit = 0;&lt;br /&gt;        var mask = 1 &lt;&lt; (i - 1);&lt;br /&gt;        if ((tileX &amp; mask) != 0)&lt;br /&gt;        {&lt;br /&gt;            digit++;&lt;br /&gt;        }&lt;br /&gt;        if ((tileY &amp; mask) != 0)&lt;br /&gt;        {&lt;br /&gt;            digit++;&lt;br /&gt;            digit++;&lt;br /&gt;        }&lt;br /&gt;        quadKey += digit;&lt;br /&gt;    }&lt;br /&gt;    return quadKey;&lt;br /&gt;  }&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;Mit dem Spherical Mercator eröffnen sich neue Mashup - Möglichkeiten !!&lt;br /&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-3036833735420951309?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/3036833735420951309/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=3036833735420951309' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3036833735420951309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3036833735420951309'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/09/virtual-earth-und-oracle-maps-mashup.html' title='Virtual Earth und Oracle Maps Mashup mit externem Custom Map Tile Layer (6)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q0dsNP64rNY/SL2aSys3N_I/AAAAAAAAAL8/g3lSaSGbu0k/s72-c/customerMaps-Vergleich-VE-54004-FALSE.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8007820687885034626</id><published>2008-09-02T19:42:00.033+02:00</published><updated>2008-09-02T22:29:54.624+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps Tile - URL mit PL/SQL bilden</title><content type='html'>Zum Verständnis von Googles / Virtual Earth's Sperical Mercator möchte ich zunächst die dabei verwendete &lt;a href="http://mathworld.wolfram.com/MercatorProjection.html"&gt;Mercator-Formel &lt;/a&gt; vorstellen : &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SL1-dSR1iyI/AAAAAAAAALk/xHGi6OzVhMA/s1600-h/Mercator-Gleichung.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SL1-dSR1iyI/AAAAAAAAALk/xHGi6OzVhMA/s400/Mercator-Gleichung.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241484582917081890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Möchte man nun auf die einzelnen Google-Tiles zugreifen, so muss die Umrechnung der Latitude - und Longitude - Werte mit der Mercator - Formel zunächst in die World-Pixel Koordinaten erfolgen, um letztendlich die Tiles Koordinaten zu bestimmen.&lt;br /&gt;&lt;br /&gt;Hier ein Beispiel zur Verifizierung der von mir erstellten PL/SQL- Prozeduren:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_q0dsNP64rNY/SL2BIOTnoZI/AAAAAAAAALs/GbKzeuaDphE/s1600-h/Tiles-demo-gmaps-Berlin.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SL2BIOTnoZI/AAAAAAAAALs/GbKzeuaDphE/s400/Tiles-demo-gmaps-Berlin.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241487519608447378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mit der PL/SQL - Package erstellen wir die Google Tile - URL (angewendet wird die sinus-Gleichung):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE PACKAGE BODY PKG_GET_GMAPS_URL AS&lt;br /&gt;&lt;br /&gt;  PI          CONSTANT NUMBER   := 3.141592653589793 ;&lt;br /&gt;  DTOR        CONSTANT NUMBER   := PI / 180;&lt;br /&gt;  RTOD        CONSTANT NUMBER   := 180 / PI;&lt;br /&gt;  TILE_SIZE   CONSTANT NUMBER   := 256;&lt;br /&gt;  MERC_BORDER CONSTANT NUMBER   := 85.0511287798066;&lt;br /&gt;&lt;br /&gt;  FUNCTION fnc_get_TileCoord (p_lat IN number, p_lon IN number, p_zoom IN number,  &lt;br /&gt;                              p_x OUT NUMBER, p_y OUT NUMBER, p_z OUT NUMBER) RETURN varchar2 IS&lt;br /&gt;    &lt;br /&gt;    l_sin_pi NUMBER;&lt;br /&gt;    l_norm_x NUMBER;&lt;br /&gt;    l_norm_y NUMBER;&lt;br /&gt;    l_col    NUMBER;&lt;br /&gt;    l_row    NUMBER;&lt;br /&gt; &lt;br /&gt;  BEGIN&lt;br /&gt;    IF abs(p_lat) &gt; MERC_BORDER THEN&lt;br /&gt;      RETURN('Invalide Latitude');&lt;br /&gt;    ELSE&lt;br /&gt;      l_sin_pi := SIN((p_lat) * DTOR);&lt;br /&gt;      l_norm_x := p_lon / 180;&lt;br /&gt;      l_norm_y := (0.5 * LN (  (( 1 + l_sin_pi) / (1 - l_sin_pi)) ) ) / PI;     &lt;br /&gt;      -- column&lt;br /&gt;      p_x := POWER(2, p_zoom) * (( l_norm_x + 1 ) / 2);  &lt;br /&gt;      -- row&lt;br /&gt;      p_y := POWER(2, p_zoom) * (( 1 - l_norm_y ) / 2);      &lt;br /&gt;      p_z:= p_zoom;&lt;br /&gt;      &lt;br /&gt;      RETURN('OK');   &lt;br /&gt;    END IF;&lt;br /&gt;  END fnc_get_TileCoord;&lt;br /&gt;    &lt;br /&gt;  PROCEDURE prc_get_TileCoord (p_lat IN number, p_lon IN number, p_zoom IN number) IS&lt;br /&gt;  &lt;br /&gt;    l_x      NUMBER;&lt;br /&gt;    l_y      NUMBER;&lt;br /&gt;    l_z      NUMBER;&lt;br /&gt;    l_xpos   NUMBER;&lt;br /&gt;    l_ypos   NUMBER;&lt;br /&gt;    l_res    VARCHAR2(2000);&lt;br /&gt;    l_paras  VARCHAR2(500);&lt;br /&gt;       &lt;br /&gt;  BEGIN&lt;br /&gt;    &lt;br /&gt;    l_res:= fnc_get_TileCoord(p_lat, p_lon, p_zoom, l_x, l_y, l_z);&lt;br /&gt;    &lt;br /&gt;    dbms_output.put_line(l_res);&lt;br /&gt;    &lt;br /&gt;    l_xpos:= trunc((l_x - trunc(l_x) ) * TILE_SIZE);&lt;br /&gt;    l_ypos:= trunc((l_y - trunc(l_y) ) * TILE_SIZE);&lt;br /&gt;    &lt;br /&gt;    dbms_output.put_line('x-Pos. in World: '||to_char(trunc(l_x * 256) ) || ' / ' ||&lt;br /&gt;                         'y-Pos. in World: '||to_char(trunc(l_y * 256) ));&lt;br /&gt;     &lt;br /&gt;    dbms_output.put_line('x-Pos. in Tile: '||to_char(l_xpos)|| ' / ' ||&lt;br /&gt;                         'y-Pos. in Tile: '||to_char(l_ypos));&lt;br /&gt;    dbms_output.put_line(' --- ');&lt;br /&gt;    &lt;br /&gt;    l_paras := 'x=' ||to_char( trunc( l_x ) )||&lt;br /&gt;               '&amp;y='||to_char( trunc( l_y ) )||&lt;br /&gt;               '&amp;zoom='||to_char(17-p_zoom);&lt;br /&gt;    &lt;br /&gt;    dbms_output.put_line('http://mt0.google.com/mt?'||l_paras);&lt;br /&gt;    &lt;br /&gt;  END prc_get_TileCoord;&lt;br /&gt;  &lt;br /&gt;END PKG_GET_GMAPS_URL;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Nachfolgend angewendet, erhalten wir die World- und Tile - Pixel Koordinaten und natürlich die Google- Tile URL:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; set serverout on &lt;br /&gt;SQL&gt; exec pkg_get_gmaps_URL.prc_get_TileCoord (52.514653902014715, 13.350105285644531, 13)&lt;br /&gt;OK&lt;br /&gt;x-Pos. in World: 1126345 / y-Pos. in World: 687822&lt;br /&gt;x-Pos. in Tile: 201 / y-Pos. in Tile: 206&lt;br /&gt;---&lt;br /&gt;&lt;a href="http://mt0.google.com/mt?x=4399&amp;y=2686&amp;zoom=4"&gt;http://mt0.google.com/mt?x=4399&amp;y=2686&amp;zoom=4&lt;/a&gt;&lt;/pre&gt;&lt;br /&gt;Eine Differenz von &lt;strong&gt;einem World-Pixel &lt;/strong&gt;zur obigen Tile - Map kann man gelten lassen !&lt;br /&gt;&lt;br /&gt;Dank Oracle's PL/SQL !&lt;br /&gt; &lt;br /&gt;Friedhold&lt;br /&gt;&lt;br /&gt;PS: Googles Mercator wird übrigens 900913 genannt und kommt eigentlich von 600613 -  in der SMS-Schrift : Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8007820687885034626?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8007820687885034626/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8007820687885034626' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8007820687885034626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8007820687885034626'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/09/google-maps-tiles-url-mit-plsql-bilden.html' title='Google Maps Tile - URL mit PL/SQL bilden'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q0dsNP64rNY/SL1-dSR1iyI/AAAAAAAAALk/xHGi6OzVhMA/s72-c/Mercator-Gleichung.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-1357857575940559989</id><published>2008-08-17T22:04:00.045+02:00</published><updated>2008-09-07T21:03:21.522+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>OpenStreetMap-FOI und Oracle Maps Mashup mit externem Custom Map Tile Layer (5)</title><content type='html'>&lt;div&gt;In dem Blog &lt;a href="http://friedhold-matz.blogspot.com/search/label/OpenStreetMap"&gt;"OpenLayers mit Google Maps, Yahoo! Maps und OpenStreetMap"&lt;/a&gt; hatte ich bereits eine &lt;a href="http://www.free-dev.com/OpenLayers-2.6/examples/osm-2.html"&gt;OpenStreetMap (OSM) gerenderte Karte&lt;/a&gt; vorgestellt.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openstreetmap.de/"&gt;OpenStreetMap&lt;/a&gt; - Daten sind nach der &lt;a href="http://creativecommons.org/licenses/by-sa/2.0/"&gt;CC-BY-SA - Lizenz&lt;/a&gt; frei verfügbar. Es kann bei der Datenerfassung jeder mitmachen und innerhalb weniger Stunden wird eine neu erfasste Strasse, ein Fahrradweg oder eine gute Kanustrecke in der Karte dargestellt.&lt;br /&gt;&lt;br /&gt;OpenStreetMap-Gründer Steve Coast hierzu: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"Jeder kann die Daten benutzen, die in OpenStreetMap gesammelt werden", erklärt er. "Vereine, Firmen, Kartographen, Programmierer - alle können unsere Daten benutzen, wie sie wollen, ohne dafür zu zahlen." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Die freie Verfügbarkeit der Daten setzt ein enormes, kreatives Potenzial frei: Es wird die Entwicklung neuer Software vorangetrieben und es werden Geodaten erfasst, die von Vermessungsautos nicht befahren werden können!&lt;br /&gt;&lt;br /&gt;Empfehlen kann ich hierfür das Buch "OpenStreetMap - Die freie Weltkarte nutzen und mitgestalten" der Authoren Frederik Ramm und Jochen Topf, das dankenderweise beim &lt;a href="http://www.lob.de/cgi-bin/work/outputexpert?mode=viewone&amp;titnr=249292782&amp;menupic=yes&amp;frame=no&amp;id=48a5f320740cd&amp;flag=google"&gt;Lehmanns Media Fachbuchverlag&lt;/a&gt; erschienen ist.&lt;br /&gt;&lt;br /&gt;In dem nun hier vorgestelltem Mashup habe ich zunächst die &lt;span style="font-weight:bold;"&gt;OpenStreetMap Strassen-Daten von Berlin&lt;/span&gt; in Oracle Spatial 11g, SRID 8307, geladen. &lt;br /&gt;&lt;br /&gt;Möchte man diese Daten in der fertig gerenderten Karte des Oracle Demos (Teil 1-4 dieser Serie) darstellen, so muß berücksichtigen werden, dass diese externe Karte im World Mercator 54004 vorliegt: Also brauchen wir die OSM- Daten auch in der 54004 Projektion. Voraussetzung ist natürlich die Definition der 54004 Projektion in Oracle Spatial!&lt;br /&gt;&lt;br /&gt;Wir bilden also einen FOI-Layer aus den in 54004 transformierten OSM - Daten und legen diesen auf die von Oracle/NAVTEQ gerenderte, externe Base Map. Hierfür habe ich im Demo einen Theme-Filter auf nur einige wenige Strassen definiert.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_q0dsNP64rNY/SKiMEk6kH5I/AAAAAAAAALE/j69zIQ6uLIQ/s1600-h/CustomMapTileLayerWorldBerlin2-OSM-code.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5235588577074880402" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_q0dsNP64rNY/SKiMEk6kH5I/AAAAAAAAALE/j69zIQ6uLIQ/s400/CustomMapTileLayerWorldBerlin2-OSM-code.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unser Mashup aus der Oracle/NAVTEQ StreetMap und den OSM- Berlin Strassen - Daten sieht nun so aus:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q0dsNP64rNY/SLEl4RR7zeI/AAAAAAAAALU/3NZ--VilBCo/s1600-h/CustomMapTileLayerWorldBerlin2-OSM-0.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_q0dsNP64rNY/SLEl4RR7zeI/AAAAAAAAALU/3NZ--VilBCo/s400/CustomMapTileLayerWorldBerlin2-OSM-0.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5238009490250124770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dargestellt in einer anderen Zoomstufe:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q0dsNP64rNY/SLEmZflSDaI/AAAAAAAAALc/Uj5VaVFJPo0/s1600-h/CustomMapTileLayerWorldBerlin2-OSM-3.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SLEmZflSDaI/AAAAAAAAALc/Uj5VaVFJPo0/s400/CustomMapTileLayerWorldBerlin2-OSM-3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5238010061025054114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wir können somit topologische Abfrageergebnisse aus Oracle Spatial OSM-Daten als FOI - Layer auf der externen Base Map in Oracle Maps darstellen.&lt;br /&gt;&lt;br /&gt;Viel Spaß dabei,&lt;br /&gt;Friedhold &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-1357857575940559989?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/1357857575940559989/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=1357857575940559989' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1357857575940559989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1357857575940559989'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/08/openstreetmap-foi-oracle-maps-mashup.html' title='OpenStreetMap-FOI und Oracle Maps Mashup mit externem Custom Map Tile Layer (5)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q0dsNP64rNY/SKiMEk6kH5I/AAAAAAAAALE/j69zIQ6uLIQ/s72-c/CustomMapTileLayerWorldBerlin2-OSM-code.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4428891588187757863</id><published>2008-08-16T15:41:00.032+02:00</published><updated>2008-08-24T19:31:58.095+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>Google Maps Street View und Oracle Maps Mashup mit externem Custom Map Tile Layer (4)</title><content type='html'>Auf Basis der Client seitigen Transformation der Koordinaten vom World Mercator 54004 in WGS84 (SRID 8307) sind wir nun in der Lage, ein Mashup mit Google Maps zu erstellen. Die Mouseclick - Koordinaten werden in Oracle Maps in WGS84 umgerechnet und als POI's an Google Maps übergeben:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_q0dsNP64rNY/SKbvTaqT8eI/AAAAAAAAAKs/5_ia2wZEXAQ/s1600-h/CustomMapTileLayerWorld-view-click-mr.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5235134733718122978" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_q0dsNP64rNY/SKbvTaqT8eI/AAAAAAAAAKs/5_ia2wZEXAQ/s400/CustomMapTileLayerWorld-view-click-mr.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recht eindrucksvoll läßt sich dies anhand der Street Views von Google Maps demonstrieren:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SKbaorfHskI/AAAAAAAAAKU/sJONcbYIs0w/s1600-h/CustomMapTileLayerWorld-view-click-GoldenGate.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5235112009267655234" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SKbaorfHskI/AAAAAAAAAKU/sJONcbYIs0w/s400/CustomMapTileLayerWorld-view-click-GoldenGate.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Und natürlich ein Street View von Oracles Headquarter:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_q0dsNP64rNY/SKbeQIb2epI/AAAAAAAAAKk/o--3J6FkUHw/s1600-h/CustomMapTileLayerWorld-view-click-Oracle.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5235115985588353682" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SKbeQIb2epI/AAAAAAAAAKk/o--3J6FkUHw/s400/CustomMapTileLayerWorld-view-click-Oracle.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Fassen wir zusammen:&lt;/strong&gt;&lt;/em&gt; &lt;br /&gt;Unsere Oracle Maps Mashup Applikation besteht aus der Base Map, die aus den Tiles des externen Oracle GeoCoding Demos gebildet wird, und den im InfoWindow eingefügten Google Maps Street Views, &lt;br /&gt;aktiviert mit der rechten Mouseclick-Position.&lt;br /&gt;&lt;br /&gt;Abschliessend noch ein Street View am Google Standort:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SKb06fOoWWI/AAAAAAAAAK8/sp4pvI-KubY/s1600-h/CustomMapTileLayerWorld-view-click-Google2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5235140902517234018" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SKb06fOoWWI/AAAAAAAAAK8/sp4pvI-KubY/s400/CustomMapTileLayerWorld-view-click-Google2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Viel Spaß,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4428891588187757863?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4428891588187757863/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4428891588187757863' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4428891588187757863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4428891588187757863'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/08/oracle-maps-mashup-mit-custom-map-tile_3859.html' title='Google Maps Street View und Oracle Maps Mashup mit externem Custom Map Tile Layer (4)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q0dsNP64rNY/SKbvTaqT8eI/AAAAAAAAAKs/5_ia2wZEXAQ/s72-c/CustomMapTileLayerWorld-view-click-mr.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-1571049022785792506</id><published>2008-08-15T22:36:00.021+02:00</published><updated>2008-08-18T22:33:34.153+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>Mercator 54004 Transformation und Oracle Maps Mashup mit externem Custom Map Tile Layer (3)</title><content type='html'>Oracle Maps liefert in der aktuellen Version natürlich auch Möglichkeiten zur Interaktion mit den externen Custom Map Tile Layern. Im Moment fehlt jedoch noch die Google Maps/Virtual Earth Tansformation auf der Client Seite (von OpenLayers praktiziert) bzw. in der Oracle Datenbank auf Basis einer SRID - Definition.&lt;br /&gt;&lt;br /&gt;Oracle Maps enthält aber implizit die World Mercator 54004 Transformation. Damit lassen sich die Tiles von Google Maps oder OpenLayers leider nicht so einfach ansprechen, wie ich in einem kleinen Vergleich zeigen möchte:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://elocation.oracle.com/mapviewer/mcserver?request=gettile&amp;amp;format=PNG&amp;amp;zoomlevel=12&amp;amp;mapcache=ELOCATION_MERCATOR.WORLD_MAP&amp;amp;mx=1308&amp;amp;my=5021"&gt;Oracle Maps 54004 Tile&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://mt2.google.com/mt?n=404&amp;amp;v=ap.80&amp;amp;hl=de&amp;amp;x=1308&amp;amp;y=3165&amp;amp;zoom=4&amp;amp;s=G"&gt;Google Maps 900913 Tile &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Deutlicher wird dies am Google Maps Ausschnitt mit InfoWindow:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_q0dsNP64rNY/SKXx-f3uUKI/AAAAAAAAAJk/UjsTgpJrJ_Y/s1600-h/GMaps-Tile.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5234856197897474210" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_q0dsNP64rNY/SKXx-f3uUKI/AAAAAAAAAJk/UjsTgpJrJ_Y/s400/GMaps-Tile.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Es unterscheiden sich bei identischen X-Tile-Koordinaten deutlich die Y-Tile-Koordinaten !&lt;br /&gt;&lt;br /&gt;Mit einer kleinen Erweiterung des im Teil (2) beschriebenen Demo möchten wir nun in einem InfoWindow die Koordinaten ausgeben bzw. Informationen loggen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_q0dsNP64rNY/SKX0kQD3iuI/AAAAAAAAAJs/RrU_Z2Jxfq4/s1600-h/CustomMapTileLayerWorld-view-click-Info.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_q0dsNP64rNY/SKX0kQD3iuI/AAAAAAAAAJs/RrU_Z2Jxfq4/s400/CustomMapTileLayerWorld-view-click-Info.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5234859045511727842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;D.h. zunächst liefert die Mouseclick - Position die Koordinaten der 54004 Map Projektion des Oracle Demos. Anschliessend werden diese 54004 Map Koordinaten in SRID 8307 Koordinaten transformiert:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_q0dsNP64rNY/SKX3BAcKLhI/AAAAAAAAAJ0/eDo3op4sE30/s1600-h/CustomMapTileLayerWorld-Test.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_q0dsNP64rNY/SKX3BAcKLhI/AAAAAAAAAJ0/eDo3op4sE30/s400/CustomMapTileLayerWorld-Test.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5234861738558107154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Auf Basis der SRID 8307 Koordinaten lassen sich nun Mashups mit Google Maps aufbauen, in einem weiteren Teil dieser Serie möchte ich darauf eingehen.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-1571049022785792506?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/1571049022785792506/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=1571049022785792506' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1571049022785792506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1571049022785792506'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/08/oracle-maps-mashup-mit-custom-map-tile.html' title='Mercator 54004 Transformation und Oracle Maps Mashup mit externem Custom Map Tile Layer (3)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_q0dsNP64rNY/SKXx-f3uUKI/AAAAAAAAAJk/UjsTgpJrJ_Y/s72-c/GMaps-Tile.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8973618318315235511</id><published>2008-07-30T20:14:00.053+02:00</published><updated>2008-08-17T22:13:11.730+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>Oracle Maps Mashup mit externem Custom Map Tile Layer (2)</title><content type='html'>Mit der neuen Möglichkeit, in Oracle Maps externe Layers fremder Web Tile Renderer Server zu integrieren, können Mashups aus diesen Basis - Layern und eigenen Anwendungs - Daten (Features of Interest Layer) erstellt werden. Hier ein Beispiel einer &lt;a href="http://mt2.google.com/mt?n=404&amp;amp;v=ap.80&amp;amp;hl=de&amp;amp;x=655&amp;amp;y=1582&amp;amp;zoom=5&amp;amp;s="&gt;Google TileMapUrl&lt;/a&gt;.&lt;br /&gt;Sowohl Google Maps, OpenLayers als auch Virtual Earth bieten recht transparent die Möglichkeit, selbst erstellte Map Tiles gerenderter Karten darzustellen. Als Map Projektion hat sich hierfür die &lt;em&gt;Sperical Mercator Projektion von Google Maps und Virtual Earth&lt;/em&gt;, auch &lt;em&gt;Web Mercator Projektion&lt;/em&gt; genannt, durchgesetzt, d.h. es erfolgen in den Map Clients die sogenannten &lt;em&gt;Forward und Inverse Transformations .&lt;/em&gt; Schliesslich ist auch diese Sperical Mercator Projektion von der &lt;a href="http://trac.osgeo.org/proj4js/browser/trunk/lib/defs/EPSG900913.js"&gt;OSGEO&lt;/a&gt; wie folgt aufgenommen worden:&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Proj4js.defs["EPSG:900913"] = "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Proj4js.defs["GOOGLE"]="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Im Oracle Spatial Forum wurde nun auch auf die Notwendigkeit dieser Projektion reagiert, wobei der Vorschlag, diesen Mercator &lt;a href="http://www.iter.dk/post/2008/05/SphericalWeb-Mercator-EPSG-code-3785.aspx"&gt;&lt;strong&gt;Web Mercator : EPSG:3785&lt;/strong&gt; &lt;/a&gt;zu benennen, aufgenommen wurde und &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=647988&amp;amp;tstart=45"&gt;im Release 11.2 bzw. in diversen Patches &lt;/a&gt;breitgestellt wird.&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;Derzeit können wir nur den &lt;em&gt;ESRI World Mercator 54004 &lt;/em&gt;anwenden, der auch im nachfolgenden Demo auf der Basis der Map Tiles des Oracle Online GeoCoding Demos, eingesetzt wird:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/SJDKpFB1QQI/AAAAAAAAAIs/nNAzXsFvXoI/s1600-h/CustomMapTileLayer.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228901974450454786" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_q0dsNP64rNY/SJDKpFB1QQI/AAAAAAAAAIs/nNAzXsFvXoI/s400/CustomMapTileLayer.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die Definition der Map Projektion und der Scale Ranges sehen wie folgt aus:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/SJIg20gPk3I/AAAAAAAAAI0/1LJoDsbNtRY/s1600-h/Definition-WorldMercator-OMaps.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5229278243509474162" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_q0dsNP64rNY/SJIg20gPk3I/AAAAAAAAAI0/1LJoDsbNtRY/s400/Definition-WorldMercator-OMaps.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wichtig ist noch die &lt;em&gt;getMapTileUrl &lt;/em&gt;- Function:&lt;br /&gt;&lt;pre&gt; &lt;code&gt;&lt;br /&gt;function getMapTileURL(minx, miny, width, height, level)&lt;br /&gt;{&lt;br /&gt;  var x = (minx-mapConfig.coordSys.minX)/mapConfig.zoomLevels[level].tileWidth ;&lt;br /&gt;  var y = (miny-mapConfig.coordSys.minY)/mapConfig.zoomLevels[level].tileHeight ;&lt;br /&gt;  return baseURL+"mcserver?request=gettile&amp;amp;format=" + mapConfig.format +    "&amp;amp;zoomlevel="+level+"&amp;amp;mapcache=ELOCATION_MERCATOR.WORLD_MAP&amp;amp;mx=" +  Math.round(x) + "&amp;amp;my=" + Math.round(y) ;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt; &lt;/pre&gt;&lt;br /&gt;Hier noch ein Beipiel einer &lt;a href="http://elocation.oracle.com/mapviewer/mcserver?request=gettile&amp;format=PNG&amp;zoomlevel=12&amp;mapcache=ELOCATION_MERCATOR.WORLD_MAP&amp;mx=1310&amp;my=5021"&gt;MapTileUrl&lt;/a&gt; obigen Oracle Maps Demos.&lt;br /&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8973618318315235511?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8973618318315235511/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8973618318315235511' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8973618318315235511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8973618318315235511'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/07/oracle-maps-mashup-mit-custom-map-tile_30.html' title='Oracle Maps Mashup mit externem Custom Map Tile Layer (2)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_q0dsNP64rNY/SJDKpFB1QQI/AAAAAAAAAIs/nNAzXsFvXoI/s72-c/CustomMapTileLayer.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-3902646321508440096</id><published>2008-07-24T21:51:00.070+02:00</published><updated>2008-08-17T22:13:34.898+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>Einführung in Oracle Maps Mashup mit externem Custom Map Tile Layer (1)</title><content type='html'>Google Maps und OpenLayers beispielswiese erlauben die Integration der Tiles Layer externer Web Tile Server, so dass auf &lt;span style="FONT-STYLE: italic"&gt;fertig gerenderten Tiles&lt;/span&gt; die Darstellung der dynamischen Anwenderdaten erfolgen kann.&lt;br /&gt;&lt;div&gt;Im neuen Oracle Maps (ich verwende Oracle Maps 11g Preview 2) muss nun analog zu obigen Map Clients der &lt;strong&gt;Oracle Map - Instanz&lt;/strong&gt; ein &lt;span style="FONT-WEIGHT: bold"&gt;Map Tile Layer &lt;/span&gt;zugewiesen werden:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;var baseURL = "http://"+document.location.host+"/mapviewer";&lt;br /&gt;&lt;br /&gt;// Create a MVMapView instance&lt;br /&gt;var mapview = new MVMapView(document.getElementById("map"), baseURL);&lt;br /&gt;&lt;br /&gt;// Add a map tile layer&lt;br /&gt;mapview.addMapTileLayer(new MVMapTileLayer("mvdemo.demo_map"));&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Die neue &lt;em&gt;&lt;span style="FONT-WEIGHT: bold"&gt;MVMapTileLayer Class&lt;/span&gt;&lt;/em&gt; wurde ausserdem folgerichtig um die &lt;em&gt;&lt;span style="FONT-WEIGHT: bold"&gt;MVCustomMapTileLayer Class&lt;/span&gt;&lt;/em&gt; zur Bildung eines &lt;em&gt;Custom Map Tile Layers &lt;/em&gt;erweitert.&lt;br /&gt;&lt;br /&gt;D.h., es werden die auf einem externen Map Tile Server erstellten Map Image Tiles per HTTP GET Map Tile Requests direkt angefordert und in der MapViewer Instanz als &lt;em&gt;Base Map Layer&lt;/em&gt; dargestellt. Die hierfür benötigte MapTile-URL wird in der JavaScript Function &lt;em&gt;getMapTileURL&lt;/em&gt; mit dem Return der Map Tile Image - URL gebildet.&lt;br /&gt;&lt;br /&gt;Als Input-Parameter benötigt die Function &lt;em&gt;getMapTileURL&lt;/em&gt; 5 Parameter, geliefert vom JavaScript Map Client:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;X coordinate of the left-lower corner of the tile in map coordinate system &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Y coordinate of the left-lower corner of the tile in map coordinate system &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tile width in map coordinate system &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tile height in map coordinate system &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Map zoom level :&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_q0dsNP64rNY/SItk7mkpYNI/AAAAAAAAAIk/Yh1YKUDJy6A/s1600-h/getMapTileURL.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5227382767622906066" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_q0dsNP64rNY/SItk7mkpYNI/AAAAAAAAAIk/Yh1YKUDJy6A/s400/getMapTileURL.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hierzu gibt es ein Demo in Oracle Maps, in dem der Zugriff auf lokale Demo Tiles mit der Funktion &lt;em&gt;MVCustomMapTileLayer &lt;/em&gt;präsentiert wird.&lt;br /&gt;&lt;br /&gt;Wenn man jedoch von externen Web Tile Servern die Tile Layers beziehen möchte, muss man die externe Map Projektion und die entsprechenden Scale Ranges in Oracle Maps vorgeben.&lt;br /&gt;&lt;br /&gt;Im Teil 2 zu &lt;span style="FONT-STYLE: italic"&gt;Oracle Maps Mashups&lt;/span&gt; werde ich die gerenderten Tiles des Online verfügbaren &lt;a href="http://elocation.oracle.com/elocation/ajax/"&gt;Oracle Geocoding Demos &lt;/a&gt;verwenden.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-3902646321508440096?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/3902646321508440096/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=3902646321508440096' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3902646321508440096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3902646321508440096'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/07/oracle-maps-mashup-mit-custom-map-tile.html' title='Einführung in Oracle Maps Mashup mit externem Custom Map Tile Layer (1)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_q0dsNP64rNY/SItk7mkpYNI/AAAAAAAAAIk/Yh1YKUDJy6A/s72-c/getMapTileURL.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-3509142844975081232</id><published>2008-06-01T17:57:00.018+02:00</published><updated>2008-07-02T15:10:41.718+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenLayers'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>OpenLayers mit Google Maps, Yahoo! Maps und OpenStreetMap</title><content type='html'>OpenLayers ist eine Open Source JavaScript-Bibliothek mit der sich Karten verschiedener Hersteller darstellen lassen - &lt;br /&gt;vergleichbare Demos habe ich hier einfach angepasst:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.free-dev.com/OpenLayers-2.6/examples/google-2.html"&gt;Google Maps&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.free-dev.com/OpenLayers-2.6/examples/yahoo-2.html"&gt;Yahoo! Maps&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.free-dev.com/OpenLayers-2.6/examples/osm-2.html"&gt;OpenStreetMap&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Hierbei wird auf die vorgefertigten Karten-Kacheln dieser Hersteller, den Tiles Renderer Servern, zugegriffen.&lt;br /&gt;&lt;br /&gt;In OpenLayers werden diese Base-Map Layer mit folgenden JavaScript-Instanzen gebildet:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var gmap = new OpenLayers.Layer.Google&lt;br /&gt;..&lt;br /&gt;var yahooLayer = new OpenLayers.Layer.Yahoo&lt;br /&gt;..&lt;br /&gt;var mapnik_layer = new OpenLayers.Layer.OSM.Mapnik&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-3509142844975081232?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/3509142844975081232/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=3509142844975081232' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3509142844975081232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3509142844975081232'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/06/openlayers-mit-google-maps-yahoo-maps.html' title='OpenLayers mit Google Maps, Yahoo! Maps und OpenStreetMap'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-2715031861053996988</id><published>2008-06-01T12:49:00.035+02:00</published><updated>2008-06-01T13:33:00.171+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Spatial'/><title type='text'>Alternative Bestimmung der MBR's in Oracle Spatial</title><content type='html'>Zur vollständigen Qualifizierung der Metadaten in Oracle Spatial benötigt man das &lt;em&gt;Minimal Bounding Rectangle, &lt;strong&gt;MBR&lt;/strong&gt;&lt;/em&gt;, dessen Seiten parallel zu den Achsen des Koordinatensystems verlaufen. Hiefür gibt es die speziellen Funktionen &lt;em&gt;sdo_min_mbr_ordinate &lt;/em&gt;u. &lt;em&gt;sdo_max_mbr_ordinate &lt;/em&gt;in Oracle Spatial.&lt;br /&gt;&lt;br /&gt;Unlängst bin ich beim Versuch der Bestimmung des MBR's in folgenden Fehler gelaufen (11g DB):&lt;br /&gt;&lt;code&gt; &lt;pre&gt;&lt;br /&gt;SQL&gt; select  MIN(sdo_geom.sdo_min_mbr_ordinate(geometry, 1)) minX,&lt;br /&gt;  2          MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 1)) maxX,&lt;br /&gt;  3          MIN(sdo_geom.sdo_min_mbr_ordinate(geometry, 2)) minY,&lt;br /&gt;  4          MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 2)) maxY &lt;br /&gt;  5  from    ROADS;&lt;br /&gt; MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 2)) maxY&lt;br /&gt;     *&lt;br /&gt;FEHLER in Zeile 4:&lt;br /&gt;ORA-06533: Index oberhalb der Grenze&lt;br /&gt;ORA-06512: in "MDSYS.SDO_GEOM", Zeile 2095&lt;br /&gt;ORA-06512: in "MDSYS.SDO_GEOM", Zeile 2113&lt;br /&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;In diesem Fall sollte man eine alternative MBR-Bestimmung anwenden: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select min(t.x),max(t.x),&lt;br /&gt;  2         min(t.y),max(t.y)&lt;br /&gt;  3         from   roads g, table(sdo_util.getvertices(g.geometry)) t;&lt;br /&gt;&lt;br /&gt;  MIN(T.X)   MAX(T.X)   MIN(T.Y)   MAX(T.Y)&lt;br /&gt;---------- ---------- ---------- ----------&lt;br /&gt;11,5615495   14,756139 51,3734974 53,4149581&lt;br /&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-2715031861053996988?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/2715031861053996988/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=2715031861053996988' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2715031861053996988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2715031861053996988'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/06/alternative-bestimmung-der-mbrs-in.html' title='Alternative Bestimmung der MBR&apos;s in Oracle Spatial'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4485957926874915276</id><published>2008-05-01T21:05:00.020+02:00</published><updated>2008-05-02T22:18:38.657+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle DB 11g'/><title type='text'>Alles neu macht der Mai : Die 11g' s !</title><content type='html'>Nach der Installation der &lt;span style="font-weight:bold;"&gt;11g Datenbank&lt;/span&gt; stellte ich fest, dass u.a. folgende Schemen hinzugekommen sind:&lt;br /&gt;&lt;br /&gt;- APEX : APEX_PUBLIC_USER, FLOWS_FILES u. FLOWS_030000&lt;br /&gt;&lt;br /&gt;- Oracle Spatial: MDDATA, SPATIAL_CSW_ADMIN_USR, SPATIAL_WFS_ADMIN_USR .&lt;br /&gt;&lt;br /&gt;Hier hat sich so Einiges getan und wir dürfen auf die weitere Entwicklung ruhig gespannt sein !&lt;br /&gt;&lt;br /&gt;Wenn sich nun die Oracle 11g DB so munter neben der 10g DB tummelt, liegt es doch nahe,  auch den neuesten &lt;span style="font-weight:bold;"&gt;Oracle MapViewer 11g Preview 2&lt;/span&gt; zu installieren. Dieser läuft auf dem &lt;span style="font-weight:bold;"&gt;OC4J 11g Preview&lt;/span&gt;, hierfür gibt es noch keinen EM, d.h. das &lt;em&gt;mapviewer.ear&lt;/em&gt; muss mit dem &lt;em&gt;admin_client &lt;/em&gt; deployed werden.&lt;br /&gt;Vorsichtshalber habe ich den OC4J 11g auf den Port 9998 gelegt, da der OC4J 10g auf dem Port 9999 läuft.&lt;br /&gt;&lt;br /&gt;Die Installation des MapViewer verlief problemlos, einschliesslich der Neuinstallation des MVDEMO's :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_q0dsNP64rNY/SBoil747iRI/AAAAAAAAAHU/TIeqVE8hvlw/s1600-h/oc4j11g.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/SBoil747iRI/AAAAAAAAAHU/TIeqVE8hvlw/s400/oc4j11g.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5195503155252267282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die Anzahl der Oracle Maps Demos ist auf &lt;span style="font-weight:bold;"&gt;58&lt;/span&gt; erweitert worden:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_q0dsNP64rNY/SBokm747iSI/AAAAAAAAAHc/A83tyneDs1E/s1600-h/mv-info.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/SBokm747iSI/AAAAAAAAAHc/A83tyneDs1E/s400/mv-info.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5195505371455392034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sehr erfreulich ist auch die Erneuerung des &lt;span style="font-style:italic;"&gt;Tiles-Managements&lt;/span&gt;, hier gibt es eine eigene Administrationsseite mit Vorschau der Tiled Maps:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_q0dsNP64rNY/SBomQL47iTI/AAAAAAAAAHk/ms0DGcITtIo/s1600-h/mv-tiles.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_q0dsNP64rNY/SBomQL47iTI/AAAAAAAAAHk/ms0DGcITtIo/s400/mv-tiles.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5195507179636623666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nun fehlt nur noch &lt;span style="font-weight:bold;"&gt;Forms 11g&lt;/span&gt; !&lt;br /&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4485957926874915276?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4485957926874915276/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4485957926874915276' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4485957926874915276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4485957926874915276'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/05/alles-neu-macht-der-mai-11g-s.html' title='Alles neu macht der Mai : Die 11g&apos; s !'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_q0dsNP64rNY/SBoil747iRI/AAAAAAAAAHU/TIeqVE8hvlw/s72-c/oc4j11g.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-2201348811079845119</id><published>2008-05-01T08:03:00.014+02:00</published><updated>2008-05-01T22:48:32.127+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Spatial'/><title type='text'>GDV stellt neuen Spatial Commander vor</title><content type='html'>Die GDV Gesellschaft für geografische Datenverarbeitung mbH wird am 13./14. Mai  eine neue Version des bewährten &lt;a href="http://gdv.com/down/scommander.php"&gt;Spatial Commanders &lt;/a&gt;vorstellen. Dies ist ein JAVA- Rich Client zum Visualisieren, Analysieren und Editieren, natürlich auch direkt in Oracle Spatial. Mir gefallen an diesem Spatial-Tool vor allem:&lt;br /&gt;&lt;br /&gt;- übersichtlich angeordnete Toolbars und Menüs&lt;br /&gt;- wichtigste Editierfunktionen sind vorhanden&lt;br /&gt;- Datenladen aus Dateien in Oracle Spatial&lt;br /&gt;- Darstellung der Sachdaten auf 'Clickable Elements'&lt;br /&gt;- Interaktion zwischen Sachdaten und Geometrien .&lt;br /&gt;&lt;br /&gt;Und dies alles zum Nulltarif: Zum Kennenlernen akzeptabel, in einer Industrieanwendung ist der Support des Produktes notwendig und wird von der GDV angeboten.&lt;br /&gt;&lt;br /&gt;Wenn man eine gute Datendrehscheibe zum Down- u. Upload der CAD- oder GIS-Formate (Konverter- oder GIS- basiert) hat, könnten die Daten mit dem Spatial Editor sehr einfach und übersichtlich bearbeitet werden.&lt;br /&gt;&lt;br /&gt;Die GDV hat für die neue Version u.a. folgende Features angekündigt:&lt;br /&gt;&lt;br /&gt;- neuer Updatemechanismus&lt;br /&gt;- überarbeitete Benutzeroberfläche&lt;br /&gt;- erweiterter Assistent zur Geoverarbeitung&lt;br /&gt;- Geschwindigkeits- optimierte Verschneidungsfunktion&lt;br /&gt;- zusätzliche Möglichkeiten von WMS- Diensten nutzbar&lt;br /&gt;- Bildung von Pufferzonen.&lt;br /&gt;&lt;br /&gt;Editoren direkt für Oracle Spatial und unabhängig von den großen GIS- Herstellern sind nunmal sehr rar !&lt;br /&gt;&lt;br /&gt;Ich bin sehr gespannt auf die neue Version des Spatial Commanders !&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-2201348811079845119?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/2201348811079845119/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=2201348811079845119' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2201348811079845119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2201348811079845119'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/05/gdv-stellt-neuen-spatial-commande-vor.html' title='GDV stellt neuen Spatial Commander vor'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4063406168916773669</id><published>2008-04-27T11:28:00.016+02:00</published><updated>2008-05-10T20:58:03.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle APEX'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>PL/SQL und JavaScript als Sprachbasis für RIA's in den Deutschen Oracle Communities</title><content type='html'>Rich Internet Applications (RIA) Funktionalität wird mit &lt;strong&gt;JavaScript und AJAX&lt;/strong&gt; erreicht; ob nun serverbasiert mit PHP, Ruby, Forms oder JSF.&lt;br /&gt;&lt;br /&gt;Da liegt es doch nahe, dass man als Oracle Entwickler Altbewährtes anwendet: PL/SQL, JavaScript und XHTML. &lt;br /&gt;&lt;br /&gt;Dank also an die drei Deutschen Oracle Communities &lt;a href="http://www.oracle.com/global/de/community/forms/index.html"&gt;Oracle Forms&lt;/a&gt;, &lt;a href="http://www.oracle.com/global/de/community/index.html"&gt;Oracle APEX&lt;/a&gt; und &lt;a href="http://www.oracle.com/global/de/community/spatial/index.html"&gt;Oracle Spatial/Maps&lt;/a&gt; : Die gemeinsame Sprachbasis ist PL/SQL und JavaScript ;-) ! &lt;br /&gt;&lt;br /&gt;Mit APEX und Oracle Maps wurde bereits die Interaktion in eindrucksvollen Demos praktiziert, mit der in Forms 11g enthaltenen JavaScript Unterstützung sollten dann auch Interaktionen von Forms mit Oracle Maps und APEX möglich sein.&lt;br /&gt;&lt;br /&gt;Grüße,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4063406168916773669?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4063406168916773669/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4063406168916773669' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4063406168916773669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4063406168916773669'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/04/plsql-und-javascript-als-sprachbasis-fr.html' title='PL/SQL und JavaScript als Sprachbasis für RIA&apos;s in den Deutschen Oracle Communities'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-2535638230586316001</id><published>2008-04-25T21:52:00.020+02:00</published><updated>2008-05-01T08:43:20.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle APEX'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Oracle Application Express für Oracle Forms Entwickler</title><content type='html'>Eigentlich wollte ich an dieser Stelle zusammenfassend über die Deutschen Oracle Communities berichten, dies muss ich aus aktuellem Anlass auf einen späteren Blog verschieben.&lt;br /&gt;&lt;br /&gt;Als Teilnehmer des Oracle APEX Roundtables, im September vorigen Jahres von &lt;a href="http://htmldb-de.blogspot.com/2007/09/mike-hichwa-roundtable-talk-in-hamburg.html"&gt;Bernhard Fischer-Wasels in Hamburg&lt;/a&gt; organisiert, stellte ich Mike Hitchwa die Frage nach eventuellen Migrationsmöglichkeiten von Oracle Forms nach APEX. Hier nun die Antwort von David Peake, Product Manager for Oracle Application Express:&lt;br /&gt;&lt;a href="http://dpeake.blogspot.com/2008/04/peek-over-application-express-horizon.html"&gt;A peek over the Application Express horizont&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;'&lt;em&gt;.. we are also working on Forms Migration. .. Using Oracle Form's XML conversion program we are looking to interpret the XML produced and derive the underlying design model to be able to generate Application Express components. As with the Access migration we don't expect to achieve 100% conversion but hopefully provide a valuable first-cut.&lt;/em&gt;'&lt;br /&gt;&lt;br /&gt;Great News ! Diese &lt;strong&gt;APEX PL/SQL Components&lt;/strong&gt; mit entsprechenden AJAX - Bibliotheken zu &lt;strong&gt;Rich Components &lt;/strong&gt;angereichert und man erhält robuste und &lt;strong&gt;performante Web 2.0 - 2 Tier - Datenbankapplikationen&lt;/strong&gt; !&lt;br /&gt;&lt;br /&gt;Den Hinweis habe ich übrigens auf der &lt;a href="http://www.oracle.com/global/de/community/index.html"&gt;Deutschen APEX Community - Seite&lt;/a&gt; gefunden und einen sehr gelungenen Forms und APEX - Vergleich findet man hier: &lt;a href="http://www.oracle.com/technology/products/database/application_express/html/apex_for_forms.html"&gt;Oracle Application Express for Oracle Forms Developers &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-2535638230586316001?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/2535638230586316001/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=2535638230586316001' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2535638230586316001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/2535638230586316001'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/04/oracle-application-express-fr-oracle.html' title='Oracle Application Express für Oracle Forms Entwickler'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8301318775224175211</id><published>2008-04-05T20:58:00.012+02:00</published><updated>2008-04-27T14:32:45.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Mashup Oracle Maps und Google Maps (3)</title><content type='html'>Nachdem wir im Teil (2) der Mashup Serie dynamische POI's aus dem mvdemo - Schema aktiviert haben, möchte ich nun den Aufruf von Google Maps aus Oracle Maps erklären. Hierbei wird, wie bereits im Beitrag zu &lt;a href="http://friedhold-matz.blogspot.com/2008/01/detail-map-im-userdefined-infowindow.html"&gt;Detail Maps .. &lt;/a&gt; gezeigt, in Oracle Maps ein InfoWindow mit IFRAME und der URL zu der Google Maps Applikation aufgerufen:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_q0dsNP64rNY/R_fPzpIYOBI/AAAAAAAAAG0/SRxSIPqyCU8/s1600-h/mashup-call.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_q0dsNP64rNY/R_fPzpIYOBI/AAAAAAAAAG0/SRxSIPqyCU8/s400/mashup-call.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5185841982061688850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dabei werden die Koordinaten des Mausklick und die Zoomstufe übermittelt und &lt;br /&gt;in Google Maps in der &lt;span style="font-weight:bold;"&gt;setCenterMap&lt;/span&gt; Function gesetzt:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_q0dsNP64rNY/R_fRT5IYOCI/AAAAAAAAAG8/9V3RDG5qTtM/s1600-h/mashup-paras.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_q0dsNP64rNY/R_fRT5IYOCI/AAAAAAAAAG8/9V3RDG5qTtM/s400/mashup-paras.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5185843635624097826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die POI Infos sehen wir in Oracle Maps :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_q0dsNP64rNY/R_fS5JIYODI/AAAAAAAAAHE/IryTW1acYiI/s1600-h/mashup-info.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R_fS5JIYODI/AAAAAAAAAHE/IryTW1acYiI/s400/mashup-info.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5185845375085852722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;und natürlich auch in Google Maps:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_q0dsNP64rNY/R_fTJJIYOEI/AAAAAAAAAHM/-Qaut58oemw/s1600-h/mashup-full.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R_fTJJIYOEI/AAAAAAAAAHM/-Qaut58oemw/s400/mashup-full.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5185845649963759682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Viel Spaß mit den Mashups!&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8301318775224175211?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8301318775224175211/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8301318775224175211' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8301318775224175211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8301318775224175211'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/04/mashup-oracle-maps-und-google-maps-3.html' title='Mashup Oracle Maps und Google Maps (3)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_q0dsNP64rNY/R_fPzpIYOBI/AAAAAAAAAG0/SRxSIPqyCU8/s72-c/mashup-call.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6624710257654239792</id><published>2008-03-23T18:20:00.024+01:00</published><updated>2008-03-23T21:52:25.297+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps Mashup mit AJAX - PL/SQL- DAD (2)</title><content type='html'>Nachdem wir im &lt;a href="http://friedhold-matz.blogspot.com/2008/03/google-maps-pois-mit-ajax-plsql-1.html"&gt;Teil 1&lt;/a&gt; die Funktionsweise des Google Maps Clients anhand der XML-Datei nachgewiesen haben, ersetzen wir im Teil 2 die XML-Datei durch den bewährten &lt;a href="http://friedhold-matz.blogspot.com/2008/01/einrichtung-eines-plsql-dad-fr-mvdemo.html"&gt;PL/SQL-DAD Zugriff&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Im mvdemo - Schema implementieren wir folgende Procedure zur serverseitigen Bereitstellung der AJAX-Daten:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_q0dsNP64rNY/R-aUrZIYN9I/AAAAAAAAAF8/7U5EqcihdgE/s1600-h/gmaps-plsql-genxml-new.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R-aUrZIYN9I/AAAAAAAAAF8/7U5EqcihdgE/s400/gmaps-plsql-genxml-new.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5180991894537648082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Diese Procedure testen wir mit der URL: &lt;span style="font-style:italic;"&gt;http://localhost:7777/pls/mvdemo/PLSQLAJAX_GENXML_CA&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;und erhalten die bereits mit der XML-Datei aus Teil 1 simulierten Daten, nun jedoch im dynamischen PL/SQL - Zugriff:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_q0dsNP64rNY/R-aYLZIYN-I/AAAAAAAAAGE/I-TS0KGITqs/s1600-h/gmaps-plsql-data-new.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R-aYLZIYN-I/AAAAAAAAAGE/I-TS0KGITqs/s400/gmaps-plsql-data-new.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5180995742828345314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Im &lt;a href="http://friedhold-matz.blogspot.com/2008/03/google-maps-pois-mit-ajax-plsql-1.html"&gt;Teil 1&lt;/a&gt; erfolgte der Funktionsnachweis der AJAX-Clientseite und jetzt können wir die dynamischen XML-Daten aus der Datenbank visuell verifizieren. &lt;br /&gt;So brauchen wir nur noch die Datenquelle in der &lt;span style="font-weight:bold;"&gt;GDownloadUrl&lt;/span&gt; - Funktion auswechseln:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;  GDownloadUrl("http://localhost:7777/pls/mvdemo/plsqlajax_genxml_ca", function(data) { .. }&lt;br /&gt;  //GDownloadUrl("http://localhost:7777/plsqlajax_genxml2.xml", function(data) { .. }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;und wir erhalten:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_q0dsNP64rNY/R-abdpIYN_I/AAAAAAAAAGM/21kB17eNdWE/s1600-h/gmaps-plsql-new.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/R-abdpIYN_I/AAAAAAAAAGM/21kB17eNdWE/s400/gmaps-plsql-new.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5180999354895841266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Einfacher geht es eigentlich nicht, zumal mit dem PL/SQL-DAD Zugriff die performanteste Technologie angewendet wird.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6624710257654239792?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6624710257654239792/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6624710257654239792' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6624710257654239792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6624710257654239792'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/03/google-maps-pois-mit-ajax-plsql-dad-2.html' title='Google Maps Mashup mit AJAX - PL/SQL- DAD (2)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_q0dsNP64rNY/R-aUrZIYN9I/AAAAAAAAAF8/7U5EqcihdgE/s72-c/gmaps-plsql-genxml-new.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6650549571320577008</id><published>2008-03-23T11:29:00.035+01:00</published><updated>2008-03-24T12:57:20.055+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps POI's mit AJAX - XML-Datei (1)</title><content type='html'>Die Möglichkeit zur Integration von Oracle Maps und Google Maps, sogenanntes Mashup, möchte ich mit der Darstellung von "Points of Interest" (POI) in Google Maps auf Basis des Oracle-DB - Zugriffes beginnen.&lt;br /&gt;Der serverseitige Datenzugriff für AJAX-Clients wird häufig mit Java Servlets, PHP oder neuerdings mit Ruby on Rails realisiert.&lt;br /&gt;&lt;br /&gt;Oracle stellt mit dem PL/SQL Toolkit, sozusagen im Database Core, umfangreiche HTTP-Funktionen bereit, mit denen sich AJAX und PL/SQL Datenzugriffe recht elegant verbinden lassen. Letztendlich werden diese Funktionen u.a. in APEX angewendet. Die APEX Community hat zum &lt;a href="http://www.oracle.com/global/de/community/tipps/ajax-01/index.html"&gt;Thema APEX und AJAX&lt;/a&gt; eine sehr gut nachvollziehbare TODO-Folge veröffentlicht.&lt;br /&gt;&lt;br /&gt;Mit der AJAX-Technologie können Datenschnittstellen abgefragt werden, die sinnvollerweise Daten in einem für Javascript gut verarbeitbarem Format, z.B. in XML oder JSON, liefern. &lt;br /&gt;Zur Entwicklung des AJAX-Clients habe ich die Daten der POI's im XML- Format bereitgestellt:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_q0dsNP64rNY/R-eW-ZIYOAI/AAAAAAAAAGU/N_wA-8g39bI/s1600-h/gmaps-xml-datax.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/R-eW-ZIYOAI/AAAAAAAAAGU/N_wA-8g39bI/s400/gmaps-xml-datax.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5181275894955128834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Diese Datei (&lt;em&gt;plsql_genxml.xml&lt;/em&gt;) legt man unter&lt;em&gt;:%ORACLE_HTTP_SERVER%\Apache\Apache\htdocs&lt;/em&gt; ab, die URL zu dieser Adresse lautet: &lt;em&gt;http://localhost:7777/plsql_genxml.xml &lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Nun kann man mit der Google Maps - Function :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;GDownloadUrl&lt;/strong&gt;("http://localhost:7777/plsqlajax_genxml2.xml", function(data) { .. }&lt;br /&gt;&lt;br /&gt;die XML-Daten lesen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_q0dsNP64rNY/R-ZNhJIYN6I/AAAAAAAAAFk/TAVLN7RDsO4/s1600-h/gmaps-xml-downl.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180913653118416802" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_q0dsNP64rNY/R-ZNhJIYN6I/AAAAAAAAAFk/TAVLN7RDsO4/s400/gmaps-xml-downl.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die Google Maps Seite wird unter : &lt;em&gt;%ORACLE_HTTP_SERVER%\Apache\Apache\htdocs&lt;/em&gt; abgelegt und der Start erfolgt mit der URL: &lt;em&gt;http://localhost:7777/plsqlajax_gmap.html&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Der Javascript - Code ist sehr kompakt, übersichtlich und gut lesbar:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;    function load() {&lt;br /&gt;      if (GBrowserIsCompatible()) {&lt;br /&gt;        var map = new GMap2(document.getElementById("map"));&lt;br /&gt;        //map.addControl(new GSmallMapControl());&lt;br /&gt;        //map.addControl(new GMapTypeControl());&lt;br /&gt;        map.addControl(new GLargeMapControl());&lt;br /&gt;        map.addControl(new GMapTypeControl());&lt;br /&gt;        map.addControl(new GScaleControl()) ;&lt;br /&gt;        map.addControl(new GOverviewMapControl()) ;&lt;br /&gt;        &lt;br /&gt;        // Logging&lt;br /&gt;        var sTemp = self.location.href &lt;br /&gt;        GLog.write(sTemp);&lt;br /&gt;      &lt;br /&gt;        map.setCenter(new GLatLng(37.7725, -122.39607), 13);&lt;br /&gt;        &lt;br /&gt;        map.enableScrollWheelZoom();&lt;br /&gt;        &lt;br /&gt;        //GDownloadUrl("http://localhost:7777/pls/mvdemo/plsqlajax_genxml_ca", function(data) {&lt;br /&gt;        GDownloadUrl("http://localhost:7777/plsqlajax_genxml2.xml", function(data) {&lt;br /&gt;          var xml = GXml.parse(data);&lt;br /&gt;          var markers = xml.documentElement.getElementsByTagName("marker");&lt;br /&gt;          for (var i = 0; i &lt; markers.length; i++) {&lt;br /&gt;            var name = markers[i].getAttribute("name");&lt;br /&gt;            var address = markers[i].getAttribute("address");&lt;br /&gt;            var type = markers[i].getAttribute("type");&lt;br /&gt;            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),&lt;br /&gt;                                    parseFloat(markers[i].getAttribute("lng")));&lt;br /&gt;            var marker = createMarker(point, name, address, type);&lt;br /&gt;            // Logging &lt;br /&gt;            GLog.write(point+ " / " + address + " / " + type );&lt;br /&gt;            map.addOverlay(marker);&lt;br /&gt;          }&lt;br /&gt;        });&lt;br /&gt;        &lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function createMarker(point, name, address, type) {&lt;br /&gt;      var marker = new GMarker(point, {title: name, icon: customIcons[type]} );&lt;br /&gt;      var html = name + " / " + address;&lt;br /&gt;      GEvent.addListener(marker, 'click', function() {&lt;br /&gt;        marker.openInfoWindowHtml(html);&lt;br /&gt;      });&lt;br /&gt;      return marker;&lt;br /&gt;    }&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Das Ergebnis sieht dann in Firefox und Firebug so aus:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_q0dsNP64rNY/R-ZX_ZIYN8I/AAAAAAAAAF0/NHefj-TkZn4/s1600-h/gmaps-xml-data.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180925167925737410" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_q0dsNP64rNY/R-ZX_ZIYN8I/AAAAAAAAAF0/NHefj-TkZn4/s400/gmaps-xml-data.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die gelieferten Daten können im Google Logger und in der Response - Ausgabe des Firebug betrachtet werden. &lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6650549571320577008?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6650549571320577008/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6650549571320577008' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6650549571320577008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6650549571320577008'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/03/google-maps-pois-mit-ajax-plsql-1.html' title='Google Maps POI&apos;s mit AJAX - XML-Datei (1)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_q0dsNP64rNY/R-eW-ZIYOAI/AAAAAAAAAGU/N_wA-8g39bI/s72-c/gmaps-xml-datax.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-7625100202096880232</id><published>2008-03-22T21:33:00.037+01:00</published><updated>2008-03-24T12:50:29.329+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><title type='text'>Javascript Logging mit dem Firefox-Plugin Firebug</title><content type='html'>Zum Programmieren mit Javascript ist Firefox mit dem &lt;a href="http://getfirebug.com/"&gt;Plugin Firebug &lt;/a&gt;zum schnellen Auffinden von z.B. Definitions-Fehlern ein sehr nützliches Entwicklungswerkzeug. Es zeichnet sich besonders durch das Binding von Grafik- und Codedarstellung und die intuitiven Bedienung aus.&lt;br /&gt;&lt;br /&gt;Sehr wichtig sind für eine gute Laufzeitumgebung, neben einem effizienten Deployment, auch die jeweiligen Logging - Mechanismen: Hierfür gibt es die ausgefeilten und weitestgehend symmetrisch anwendbaren Log4 {J / JS / NET / PLSQL ..}, d.h. mit  &lt;em&gt;Log4JS&lt;/em&gt;  besteht auch diese Möglichkeit für Javascript.&lt;br /&gt;&lt;br /&gt;Bei der Erstellung von Google Maps Anwendungen habe ich aber den Google Logger schätzen gelernt. Hierbei wird nur :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;..&lt;br /&gt;GLog.write(point+ " / " + address + " / " + type );&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;aufgerufen - einfach und gut (übrigens ohne Initialisierung!):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/R-YjxpIYN4I/AAAAAAAAAFU/2hnmjUGNqkk/s1600-h/glog.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/R-YjxpIYN4I/AAAAAAAAAFU/2hnmjUGNqkk/s400/glog.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5180867757097891714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nun gibt es aber speziell für den Firebug recht &lt;a href="http://www.getfirebug.com/console.html"&gt;ausgefeilte Möglichkeiten &lt;/a&gt;zum Logging, nachfolgendes Beispiel zeigt einen Leistungsausschnitt:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;  &lt;br /&gt;   ..&lt;br /&gt;   function foo(s) { &lt;br /&gt;     bar(s + ' jkl;'); &lt;br /&gt;   } &lt;br /&gt;   function bar(s) { &lt;br /&gt;     baz('qwerty ' + s); &lt;br /&gt;   } &lt;br /&gt;   function baz(s) { &lt;br /&gt;     // print stack trace &lt;br /&gt;     console.trace(); &lt;br /&gt;   } &lt;br /&gt;   function fib(n) { &lt;br /&gt;     // count # of times called &lt;br /&gt;     console.count('Number of times fib() called'); &lt;br /&gt;     if(n == 0 || n == 1) { &lt;br /&gt;       return 1; &lt;br /&gt;     } else { &lt;br /&gt;       return fib(n - 1) + fib(n - 2); &lt;br /&gt;     } &lt;br /&gt;   } &lt;br /&gt;   ..&lt;br /&gt;  // 5 logging methods&lt;br /&gt;  console.log  ('Using console.log()');&lt;br /&gt;  console.info ('Using console.info()');&lt;br /&gt;  console.debug('Using console.debug()');&lt;br /&gt;  console.warn ('Using console.warn()');&lt;br /&gt;  console.error('Using console.error()');&lt;br /&gt; &lt;br /&gt;  // printf style formatting&lt;br /&gt;  console.log('The value of %s is %d', 'foo', 516);&lt;br /&gt; &lt;br /&gt;  // can print complex structures&lt;br /&gt;  var array = [1, 1, 2, 3, 5, 8];&lt;br /&gt;  var object = {'foo': true, 'bar': 3.14, 'baz': [1, 2, 3]};&lt;br /&gt; &lt;br /&gt;  console.log(array);           &lt;br /&gt;  console.log(object);&lt;br /&gt; &lt;br /&gt;  // can even print DOM elements   &lt;br /&gt;  console.log(document.getElementById('header'));           &lt;br /&gt;  &lt;br /&gt;  // stack trace output&lt;br /&gt;  foo('asdf');&lt;br /&gt; &lt;br /&gt;  fib(10);&lt;br /&gt;..&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Das Logging-Protokoll in der Firebug-Console (Aktivierung mit F12) sieht so aus:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_q0dsNP64rNY/R-WEMZIYN3I/AAAAAAAAAFM/slm-0AGE_yM/s1600-h/firebug-logging.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_q0dsNP64rNY/R-WEMZIYN3I/AAAAAAAAAFM/slm-0AGE_yM/s400/firebug-logging.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5180692294798948210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dank Firefox und Firebug gibt es für die Entwicklung komplexer Oracle Maps Applikationen und Web 2.0 Mashups recht gute Voraussetzungen.&lt;br /&gt;&lt;br /&gt;Ein frohes Osterfest wünscht&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-7625100202096880232?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/7625100202096880232/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=7625100202096880232' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7625100202096880232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/7625100202096880232'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/03/javascript-logging-mit-dem-firefox.html' title='Javascript Logging mit dem Firefox-Plugin Firebug'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_q0dsNP64rNY/R-YjxpIYN4I/AAAAAAAAAFU/2hnmjUGNqkk/s72-c/glog.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-1010775492800906785</id><published>2008-01-03T15:04:00.000+01:00</published><updated>2008-01-09T10:33:11.846+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><title type='text'>Detail Maps im Userdefined InfoWindow von Oracle Maps (2)</title><content type='html'>Im Teil 2 über &lt;em&gt;Userdefined InfoWindows &lt;/em&gt; möchte ich meinen Lösungsvorschlag zu Detail Maps, auch Nested Maps genannt, vorstellen &lt;a href="http://www.free-dev.com/nested-maps.html"&gt;(Demo-Video)&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_q0dsNP64rNY/R3zs_RwW9OI/AAAAAAAAAEc/LaKfH5ZX6xo/s1600-h/nested-map.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R3zs_RwW9OI/AAAAAAAAAEc/LaKfH5ZX6xo/s400/nested-map.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151252645647152354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In der 'Master Map', wird wie im Teil 1 beschrieben, die Mouseclickposition in dem IFRAME - InfoWindow an die Detail Map übergeben:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/R36ZIRwW9PI/AAAAAAAAAEk/uEx5rNPOWz4/s1600-h/call-nested.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_q0dsNP64rNY/R36ZIRwW9PI/AAAAAAAAAEk/uEx5rNPOWz4/s400/call-nested.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151723391242663154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In der Detail Map werden die Parameter aus der URL separiert und der übergebene Masterpoint als Home Marker gesetzt: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_q0dsNP64rNY/R36eexwW9SI/AAAAAAAAAE8/A3qJa1C8-Mo/s1600-h/called-nested.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R36eexwW9SI/AAAAAAAAAE8/A3qJa1C8-Mo/s400/called-nested.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151729275347858722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In der Detail Map kann in den speziellen FOI's navigiert werden: Natürlich läßt sich auch das &lt;em&gt;Userdefined InfoWindow &lt;/em&gt; aus Teil 1 aufrufen ..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/R36dgBwW9RI/AAAAAAAAAE0/7eFdzvxsscI/s1600-h/call-nested-maps2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/R36dgBwW9RI/AAAAAAAAAE0/7eFdzvxsscI/s400/call-nested-maps2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5151728197311067410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In diesem Demo wird ebenfalls der Zugriff auf die PL/SQL-DAD 'mvdemo' vorausgesetzt, die Programme stehen hier zum &lt;a href="http://www.free-dev.com/nestedmap.zip"&gt;Download&lt;/a&gt; bereit.&lt;br /&gt;Die kleine Serie soll zeigen, dass man mit geringem Aufwand (JavaScript und PL/SQL) &lt;em&gt;Userdefined InfoWindows &lt;/em&gt;recht effektvoll mit IFRAMES einsetzen kann.&lt;br /&gt;&lt;br /&gt;Viel Erfolg,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-1010775492800906785?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/1010775492800906785/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=1010775492800906785' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1010775492800906785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1010775492800906785'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/01/detail-map-im-userdefined-infowindow.html' title='Detail Maps im Userdefined InfoWindow von Oracle Maps (2)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_q0dsNP64rNY/R3zs_RwW9OI/AAAAAAAAAEc/LaKfH5ZX6xo/s72-c/nested-map.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4843720517978206917</id><published>2008-01-02T19:11:00.000+01:00</published><updated>2008-01-04T22:18:55.886+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><title type='text'>Userdefined InfoWindows mit IFRAME in Oracle Maps (1)</title><content type='html'>In Oracle Maps können Info Windows entsprechender 'Features of Interest' - FOI's entweder mittels Mapbuilder statisch oder per XML-RPC im clientseitigen JavaScript dynamisch zugeordnet werden. Benötigt man bei mehrfach überdeckenden FOI-Layern jedoch Informationen, die sich z.B. auf die Basemap beziehen, kann der nachfolgend dargestellte Lösungsvorschlag &lt;a href="http://www.free-dev.com/userdefinfowin.html"&gt;(Demo-Video)&lt;/a&gt; weiterhelfen.&lt;br /&gt;&lt;br /&gt;Voraussetzung zum Nachvollziehen sind die Oracle Maps Demos und der zuvor eingerichtete PL/SQL-DAD Zugriff auf das Schema 'mvdemo'.&lt;br /&gt;&lt;br /&gt;Hierfür habe ich das unter:&lt;br /&gt;&lt;em&gt;%OC4J_HOME%\j2ee\home\applications\mapviewer\web\fsmc\tutorial\samples&lt;/em&gt; befindliche Demo: &lt;strong&gt;themeBasedFOIVisible.html &lt;/strong&gt;in: &lt;strong&gt;themeBasedFOIVisibleIframe.html&lt;/strong&gt; kopiert und folgende Änderungen eingefügt:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.) Aktivierung des rechten Mouseclicks&lt;/strong&gt; in der Hauptfunktion:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;..&lt;br /&gt;mapview.addEventListener("mouse_right_click", mouseclickright);&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;2.) Rechte Mouseclick-Function &lt;/strong&gt;inkl. IFRAME - Aufbau:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/R3vYoBwW9DI/AAAAAAAAADE/yq7lPwbmXWc/s1600-h/r-mouse.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150948781005927474" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_q0dsNP64rNY/R3vYoBwW9DI/AAAAAAAAADE/yq7lPwbmXWc/s400/r-mouse.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In der JavaSript-Function wird die x/y-Location des rechten Mouseclicks an die PL/SQL-DAD Procedure &lt;em&gt;mvdemo.show_info(p_x, p_y)&lt;/em&gt; übergeben.&lt;br /&gt;Dort wird zunächst anhand der Punktkoordinaten die zugehörige Geometry gesucht -&lt;br /&gt;&lt;br /&gt;Function: &lt;em&gt;pkg_geo_mvdemo.fnc_get_fip&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/R3ydGxwW9NI/AAAAAAAAAEU/EcbWG7kBP8I/s1600-h/fnc_get_fip.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5151164813565949138" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_q0dsNP64rNY/R3ydGxwW9NI/AAAAAAAAAEU/EcbWG7kBP8I/s400/fnc_get_fip.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aus der Tabelle COUNTIES wird die Geometry-ID aus FIPSSTCO ermittelt und es werden in der Procedure &lt;em&gt;show_county &lt;/em&gt;ausserdem falsche Punktkoordinaten erkannt.&lt;br /&gt;&lt;br /&gt;- Ungültige Punktkoordinate - im Pazifik gibt es natürlich kein County :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_q0dsNP64rNY/R3ya9BwW9MI/AAAAAAAAAEM/3Tq-ziqDYWg/s1600-h/show_info-bad.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5151162447038969026" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_q0dsNP64rNY/R3ya9BwW9MI/AAAAAAAAAEM/3Tq-ziqDYWg/s400/show_info-bad.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- So sieht das &lt;em&gt;&lt;strong&gt;Userdefined InfoWindow &lt;/strong&gt;&lt;/em&gt;mit IFRAME letztendlich aus:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/R3vjWBwW9LI/AAAAAAAAAEE/VAOEPGPxisY/s1600-h/county.info.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150960566396187826" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_q0dsNP64rNY/R3vjWBwW9LI/AAAAAAAAAEE/VAOEPGPxisY/s400/county.info.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Die Programme stehen zum &lt;a href="http://www.free-dev.com/udefinfowin.zip"&gt;Download&lt;/a&gt; bereit.&lt;br /&gt;&lt;br /&gt;Viel Spaß dabei,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4843720517978206917?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4843720517978206917/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4843720517978206917' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4843720517978206917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4843720517978206917'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/01/info-windows-in-oracle-maps-mit-iframe.html' title='Userdefined InfoWindows mit IFRAME in Oracle Maps (1)'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_q0dsNP64rNY/R3vYoBwW9DI/AAAAAAAAADE/yq7lPwbmXWc/s72-c/r-mouse.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4193673397445339785</id><published>2008-01-02T11:33:00.000+01:00</published><updated>2008-01-03T11:40:39.626+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle PL/SQL'/><title type='text'>Einrichtung eines PL/SQL - DAD für das Schema mvdemo</title><content type='html'>Seit der Einführung der Oracle HTMLDB u. APEX wird die Web-Konfigurationsseite zum Einrichten anwenderdefinierter PL/SQL-DAD's nicht mehr angeboten, so dass die hier beschriebene, manuelle Einrichtung notwendig ist. Als Datenbankschema verwenden wir  das 'mvdemo', da wir uns in Folgebeiträgen hierauf beziehen werden.&lt;br /&gt;&lt;br /&gt;Im Verzeichnis &lt;em&gt;%APEX_HOME%\Apache\modplsql\conf &lt;/em&gt; wird die DAD-Definition in die &lt;strong&gt;dads.conf &lt;/strong&gt; eingetragen:&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_q0dsNP64rNY/R3t74RwW9BI/AAAAAAAAAC0/zn5F8bFLhwk/s1600-h/mvdemo-dad2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_q0dsNP64rNY/R3t74RwW9BI/AAAAAAAAAC0/zn5F8bFLhwk/s400/mvdemo-dad2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5150846805597418514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Danach wird der Apache neu gestartet und ein kleine Test-Procedure im Schema 'mvdemo' gespeichert:&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_q0dsNP64rNY/R3t8ZhwW9CI/AAAAAAAAAC8/oalijH76rmw/s1600-h/Test-DAD.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/R3t8ZhwW9CI/AAAAAAAAAC8/oalijH76rmw/s400/Test-DAD.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5150847376828068898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Entsprechend der 'Location' in der DAD-Definition ist der URL-Path vorgegeben und wir testen den PL/SQL-DAD Zugriff:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_q0dsNP64rNY/R3t5eBwW9AI/AAAAAAAAACs/NGFYtWsiDsA/s1600-h/mvdemo-dad.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150844155602596866" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_q0dsNP64rNY/R3t5eBwW9AI/AAAAAAAAACs/NGFYtWsiDsA/s320/mvdemo-dad.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Der Konfigurationseintrag und das Testprogramm sind &lt;a href="http://www.free-dev.com/conf-dad.zip"&gt;hier&lt;/a&gt; zu finden.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4193673397445339785?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4193673397445339785/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4193673397445339785' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4193673397445339785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4193673397445339785'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2008/01/einrichtung-eines-plsql-dad-fr-mvdemo.html' title='Einrichtung eines PL/SQL - DAD für das Schema mvdemo'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_q0dsNP64rNY/R3t74RwW9BI/AAAAAAAAAC0/zn5F8bFLhwk/s72-c/mvdemo-dad2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-6775586089733952437</id><published>2007-11-29T14:32:00.000+01:00</published><updated>2007-12-31T12:37:17.848+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Mein Vortrag zur 20. DOAG Tagung : "Oracle Maps in der Praxis"</title><content type='html'>Nach einer Pause möchte ich meine Beiträge in meinem Blog wieder forcieren: Eine Applikationsmigration und die Vorbereitung meines &lt;a href="http://www.free-dev.com/viewlets/DOAG-Vortrag.pdf"&gt;DOAG-Vortrages&lt;/a&gt; inkl. Life-Demos haben mich stark beschäftigt. Der Vortrag war dann auch am 22. Nov.  sehr gut besucht.&lt;br /&gt;&lt;br /&gt;Letztendlich bin ich ganz zufrieden, da die Interaktions-,  Analyse- und  Präsentationsfähigkeit von Oracle Maps nachgewiesen werden konnte. Für die Interaktion mit den Sachdaten verwende ich eine Foms 6i Fachschalenapplikation, geschaffen zur Interaktion mit Bentley Microstation DGN - Files. Diese Fachschale ist eine 'On Top' - Applikation, d.h. sie liegt stets über der Kartenapplikation.&lt;br /&gt;&lt;br /&gt;Folgende Interaktions-Funktionen wurden realisiert:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Lokalisieren von 1 .. n Flächen von der Fachschale zu Oracle Maps, markierte Darstellung inkl. Hervorhebung der aktiven Fläche&lt;br /&gt;&amp;nbsp;- auswählen von Flächen in Oracle Maps (clickable Polygons) und Übernahme in die Fachschale durch Re-Query&lt;br /&gt;&lt;br /&gt;Mit Oracle Maps konnte ich folgende Funktionen erfüllen:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- User Defined Windows auf der Basis von displayInfoWindow und IFRAME für :&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  o Informations-Klick (rechte Maustaste) durch dynamisches HTML erstellt in PL/SQL Webtool package&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  o setzen von 'Points of Interest' und Informationserfassung&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  o 'Nested Maps' zur Detaildarstellung der Klickposition der Mastermap&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Darstellung von 'Points of Interrest' und 'Layers of Interest'&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Geometrische Abfragen mit einem Rechteck, Kreis und Polygon und Sachdatenbestimmung&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  o nach 'Points of Interest'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  o nach Flächen&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Marquee - Zoom&lt;br /&gt;&lt;br /&gt;Diese Funktionen wurden in der Oracle Maps Legende unter 4 Modi implementiert:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;View mode &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select mode &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Query mode &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Zoom mode . &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Die Funktionen wurden ausschliesslich mit PL/SQL und Javascript realisiert und die ca 170 Codezeilen sprechen ausserdem für einen sehr guten "Code-Wirkungsgrad".&lt;br /&gt;Besten Dank nochmals an &lt;a href="http://oracle-maps.blogspot.com/2007/11/doag-rckblick.html"&gt;Bernhard Fischer-Wasels&lt;/a&gt; und Carsten Czarski von Oracle für die Unterstützung in der Vorbereitungsphase und bei der Durchführung des Vortrages.&lt;br /&gt;&lt;br /&gt;Einfach prima, was man mit Oracle Maps realisieren kann.&lt;br /&gt;In Folge möchte ich über einige Lösungsdetails berichten.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-6775586089733952437?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/6775586089733952437/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=6775586089733952437' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6775586089733952437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/6775586089733952437'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/11/mein-vortrag-oracle-maps-in-der-praxis.html' title='Mein Vortrag zur 20. DOAG Tagung : &quot;Oracle Maps in der Praxis&quot;'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-5781578023901761492</id><published>2007-11-29T13:10:00.001+01:00</published><updated>2009-02-07T18:03:17.749+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SUN WebStart'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Gute Nachrichten für Forms auf der 20. DOAG - Tagung</title><content type='html'>Die 20. DOAG Tagung vom 21. - 22. November in Nürnberg stand dieses Jahr eindeutig im Zeichen der SOA - Technologien.&lt;br /&gt;&lt;br /&gt;So konnte ich mir als passionierter Forms-Fan den &lt;a href="http://groundside.com/blog/GrantRonald.php?p=639&amp;amp;more=1&amp;amp;c=1&amp;amp;tb=1&amp;amp;pb=1"&gt;Vortrag von Grant Ronald&lt;/a&gt;, Group Product Manager in Oracle's Tools Division, verantwortlich für Oracle Forms, JDeveloper and ADF, anhören und daraus mitnehmen, dass die Forms-Integration und Interaktion mit anderen Technolgien über die Middletier per SOA passieren soll. Dabei erfolgt die Interaktion durch Calling &amp;amp; Consuming von Forms heraus. Dass nun die Forms-Logik in Richtung Service-Orientierung refactored werden muss, liegt völlig nahe, zumal Oracle sich deutlich den serverbasierten (3-tier) Architekturen : APEX, J2EE, PHP und neuerdings Ruby on Rails stellt und unterstützt.&lt;br /&gt;&lt;br /&gt;Die letztendlich als Webbrowser-Seiten dem Nutzer angebotenen Applikationen zeichnen sich durch gute Bedienbarkeit aus. Die oben genannten Middletier-Technologien wenden hierfür ausnahmslos XHTML, CSS &amp;amp; AJAX und Javascript an, so dass nun in Oracle Forms 11g für die Interaktion mit Javascript ein Javascript-Event-Trigger integriert ist.&lt;br /&gt;Analog zur AJAX-Technologie, bei der man Informationsregionen in Webseiten per XHR asynchron auffrischen kann, ist es nun mit Oracle Forms 11g auch möglich, auf asynchrone Nachrichten an der AQ zu warten.&lt;br /&gt;Das ganze Szenarion ist somit komplett: AJAX - getriebene XHTML - Applikationsseiten mit integrierten und interagierenden, stark transaktionalen Forms 11g -Modulen inkl. partieller asynchroner Events an AQ's .. Als PL/SQL-Programmierer kann man sich dies auch recht gut auf der Basis von APEX vorstellen.&lt;br /&gt;&lt;br /&gt;Von Sun ist zu hören, dass an 'schlanken' JRE's gearbeitet wird (Java 7), auch in Hinblick auf Applets - sozusagen auch eine Renaissance der Applets bevorsteht.&lt;br /&gt;&lt;br /&gt;Alles gute Nachrichten für uns Forms - Enthusiasten.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-5781578023901761492?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/5781578023901761492/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=5781578023901761492' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5781578023901761492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5781578023901761492'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/11/eeee.html' title='Gute Nachrichten für Forms auf der 20. DOAG - Tagung'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-8191557010581049945</id><published>2007-09-16T21:16:00.000+02:00</published><updated>2007-12-31T12:41:36.997+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Logging in Forms und PL/SQL</title><content type='html'>Derzeit verwende ich in Forms und Stored PL/SQL einen eigenen Logging-Mechanismus in einer Logger-Table:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/Ru2DQrBJQiI/AAAAAAAAABc/9uxOoK4QfIo/s1600-h/logger-plsql.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/Ru2DQrBJQiI/AAAAAAAAABc/9uxOoK4QfIo/s400/logger-plsql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5110885474584052258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Soweit so gut : Wenn ich jedoch mit JAVA anfangen möchte, sollte der JAVA-Logger mit dem PL/SQL-Logger der Client- und Serverseite sinnvollerweise identisch sein.&lt;br /&gt;Hier der JAVA-Logger, wonach ich die PL/SQL-Logger angleichen möchte:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/Ru2EXrBJQjI/AAAAAAAAABk/OYSEvIGQkdM/s1600-h/logger-java.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/Ru2EXrBJQjI/AAAAAAAAABk/OYSEvIGQkdM/s400/logger-java.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5110886694354764338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Man stelle sich das Szenarion einmal vor: Javascript -&gt; Forms 11g -&gt; PJC -&gt; DB-PL/SQL ..&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-8191557010581049945?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/8191557010581049945/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=8191557010581049945' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8191557010581049945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/8191557010581049945'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/09/logging-in-forms-und-plsql.html' title='Logging in Forms und PL/SQL'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_q0dsNP64rNY/Ru2DQrBJQiI/AAAAAAAAABc/9uxOoK4QfIo/s72-c/logger-plsql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-5185822107883663280</id><published>2007-09-03T22:55:00.000+02:00</published><updated>2007-12-31T12:38:07.286+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Autocomplete Combobox</title><content type='html'>Mit der AJAX - Technologie wird das Handling auf Webseiten anwenderfreundlicher.&lt;br /&gt;Der nützliche Effekt, möglichst nur sich ändernde dynamische Inhalte zu übertragen,&lt;br /&gt;wird auch ergänzt durch die Anwendung sogenannter Autocomplete Items :&lt;br /&gt;&lt;iframe name="autocomplete demo" src="http://www.free-dev.com/jm-autocomplete/acb.html" frameborder="5px" width="300" height="90"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Ich möchte hier nun nachfolgend ein Demo mit einer Autocomplete Combo Box in Forms 6i vorstellen.&lt;br /&gt;In der &lt;a href="http://www.free-dev.com/chk_lboxproto2.htm"&gt;Lösung&lt;/a&gt; wird auf einem Stacked Canvas ein 'List Block' erstellt, der je nach Tasteneingabe in der Combo Box dynamisch gefiltert wird. Häufig findet man auch die Bezeichnung 'Combo Box inkl. Filter' zur treffenden Beschreibung dieser Komponentenfunktion. Mit dem Aktivieren der Combo Box wird der 'List Block' aufgeklappt und dynamisch mit jedem Tastendruck aufgefrischt:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_q0dsNP64rNY/Ru1ByrBJQfI/AAAAAAAAABE/1zo3McJUv6I/s1600-h/autocombox3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_q0dsNP64rNY/Ru1ByrBJQfI/AAAAAAAAABE/1zo3McJUv6I/s400/autocombox3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5110813490932171250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anwendung&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.)&lt;/strong&gt; In die jeweilige Form wird aus der &lt;em&gt;&lt;strong&gt;cbox.olb&lt;/strong&gt;&lt;/em&gt; die Objectgruppe &lt;em&gt;&lt;strong&gt;OG_CBOX&lt;/strong&gt;&lt;/em&gt; per Drag &amp; Copy integriert:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_q0dsNP64rNY/Ru1G7LBJQhI/AAAAAAAAABU/sPemU8yCD70/s1600-h/autocombox3-tree.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_q0dsNP64rNY/Ru1G7LBJQhI/AAAAAAAAABU/sPemU8yCD70/s400/autocombox3-tree.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5110819134519198226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.)&lt;/strong&gt; Das Combo Box Item ist auf dem übernommenen &lt;em&gt;&lt;strong&gt;C&lt;/strong&gt; - Canvas &lt;/em&gt;platziert und sollte hiermit entsprechend angepasst werden.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.)&lt;/strong&gt; Die Position des 'List-Blockes' ist im dafür verwendeten Canvas anzupassen:&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_q0dsNP64rNY/Ru1FWbBJQgI/AAAAAAAAABM/1_PaZcGwA3Q/s1600-h/autocombox3-prop.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_q0dsNP64rNY/Ru1FWbBJQgI/AAAAAAAAABM/1_PaZcGwA3Q/s400/autocombox3-prop.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5110817403647377922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4.)&lt;/strong&gt; Die Initiierung der Autocomplete Combo Box erfolgt im &lt;strong&gt;WHEN-NEW-FORM-INSTANCE &lt;/strong&gt;Trigger:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt; pkg_CBOX.populate_auto_cbox(&lt;br /&gt; 'CBOX', &lt;br /&gt; 'select name, name&lt;br /&gt;    from europecities &lt;br /&gt;    order by 1',&lt;br /&gt; 'C.DUMMY');&lt;br /&gt;.&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Das hiermit übernommene Item &lt;em&gt;&lt;strong&gt;C.DUMMY&lt;/strong&gt;&lt;/em&gt; sollte durch das reale NEXT-ITEM der Combo Box ersetzt werden.&lt;br /&gt;&lt;br /&gt;Der Test der Lösung kann folgenden Stufen erfolgen:&lt;br /&gt;- &lt;a href="http://www.free-dev.com/chk_lboxproto2.zip"&gt;Download&lt;/a&gt;&lt;br /&gt;- Scott/Tiger: SQL&gt;&lt;strong&gt;@cr_eurocities.sql&lt;/strong&gt;&lt;br /&gt;- ausführen und testen der Form &lt;em&gt;&lt;strong&gt;chk_lboxproto2&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;- neue Form erstellen, nach &lt;strong&gt;1.) &lt;/strong&gt;: Übernahme der &lt;em&gt;&lt;strong&gt;OG_CBOX&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;- ausführen und testen der neuen Form .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Viel Spaß,&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-5185822107883663280?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/5185822107883663280/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=5185822107883663280' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5185822107883663280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/5185822107883663280'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/09/autocomplete-combobox.html' title='Autocomplete Combobox'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_q0dsNP64rNY/Ru1ByrBJQfI/AAAAAAAAABE/1zo3McJUv6I/s72-c/autocombox3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-1679972682948108607</id><published>2007-08-14T21:40:00.000+02:00</published><updated>2007-12-31T12:40:29.554+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle PL/SQL'/><title type='text'>Ein PL/SQL String-Tokenizer mit mehreren Trennzeichen</title><content type='html'>Häufig sieht man String-Tokenizer, die nur &lt;em&gt;ein&lt;/em&gt; Trennzeichen zwischen den Tokens verarbeiten können. Hiermit nun eine Lösung mit beliebig vielen Trennzeichen: &lt;a href="http://www.free-dev.com/parse_string.zip"&gt;download Package&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anwendung&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; declare&lt;br /&gt;  separators varchar2(10) :='-;/,. ''';&lt;br /&gt;  string varchar2(100):= 'Black;Blue-Green/Yellow''Green-Blue Black Red.Yellow';&lt;br /&gt;  token varchar2(100);&lt;br /&gt;begin&lt;br /&gt;  token:=parse_string.strtok(string, separators);&lt;br /&gt;  while token is not NULL loop&lt;br /&gt;     dbms_output.put_line(token);&lt;br /&gt;     token:= parse_string.strtok(NULL, separators);&lt;br /&gt;  end loop;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;Black&lt;br /&gt;Blue&lt;br /&gt;Green&lt;br /&gt;Yellow&lt;br /&gt;Green&lt;br /&gt;Blue&lt;br /&gt;Black&lt;br /&gt;Red&lt;br /&gt;Yellow&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;SQL&gt;&lt;br /&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-1679972682948108607?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/1679972682948108607/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=1679972682948108607' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1679972682948108607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/1679972682948108607'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/08/ein-plsql-string-tokenizer-mit-mehreren.html' title='Ein PL/SQL String-Tokenizer mit mehreren Trennzeichen'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4886412129438737328</id><published>2007-08-12T12:34:00.000+02:00</published><updated>2007-12-31T12:39:54.835+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Ausgabe aktiver Locks in einem Formsmodul</title><content type='html'>Es kommt vor, daß wir in Supportanfragen nach dem Verursacher der Datensatzsperre gefragt werden, da man seine Datenänderungen nicht speichern kann. Hier nun ein Formsmodul (6i)  zur Ausgabe der Locks, im unten dargestellten Beispiel unter Scott: &lt;br /&gt;&lt;a href="http://www.free-dev.com/locksall.htm"&gt;www.free-dev.com/locksall.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Voraussetzung&lt;/strong&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; conn sys/passwd as sysdba&lt;br /&gt;&lt;br /&gt;SQL&gt; grant select on v_$locked_object to scott;&lt;br /&gt;Grant succeeded.&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; conn scott/tiger&lt;br /&gt;SQL&gt;  update emp set sal=4000 where ename='FORD';&lt;br /&gt;1 row updated.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into dept values (50, 'MANAGEMENT', 'Charlston');&lt;br /&gt;1 row created.&lt;br /&gt;.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;Ausgabe&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/lockall-2.png"&gt;&lt;img style="WIDTH: 760px; CURSOR: hand" alt="" src="http://www.free-dev.com/lockall-2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;BR&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4886412129438737328?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4886412129438737328/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4886412129438737328' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4886412129438737328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4886412129438737328'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/08/ausgabe-aktiver-locks-in-einem.html' title='Ausgabe aktiver Locks in einem Formsmodul'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-3844699392879594216</id><published>2007-08-05T20:44:00.000+02:00</published><updated>2007-12-31T12:40:13.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Forms'/><title type='text'>Erstellung von Excel.XLS - Dateien aus Forms 6i ohne OLE</title><content type='html'>Unlängst hatte ich folgenden Blog entdeckt: &lt;a href="http://sanjeev-oracle-world.blogspot.com/"&gt;http://sanjeev-oracle-world.blogspot.com/&lt;/a&gt; und die darin vorgestellte serverseitige Lösung getestet. Nach kleineren Tests (Umlaute) habe ich dann eine Clientversion für Oracle Forms 6i angepasst: &lt;a href="http://www.free-dev.com/create_xls4emp.htm"&gt;http://www.free-dev.com/create_xls4emp.htm&lt;/a&gt;&lt;br /&gt;Das Demo läuft auf Scott und erstellt EXCEL 2002+ XLS-Files als XML.&lt;br /&gt;Die Sreenshots und der Sourcecode sind nachfolgend zu finden:&lt;br /&gt;&lt;a href="http://www.free-dev.com/find-i-3.png"&gt;&lt;img style="WIDTH: 773px; CURSOR: hand" alt="" src="http://www.free-dev.com/find-i-3.png" border="0" /&gt;&lt;/a&gt; &lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  l_res VARCHAR2(250);&lt;br /&gt;BEGIN&lt;br /&gt;--&lt;br /&gt;-- &lt;strong&gt;Ablauf zur EXCEL-Erstellung&lt;/strong&gt;&lt;br /&gt;--&lt;br /&gt;-- Erstellen des Files&lt;br /&gt;l_res:=pkg_genexlxml.create_excel('C:\TEMP', 'emp.xls') ;&lt;br /&gt;if l_res&lt;&gt;'OK' then&lt;br /&gt;   prc_show_error(l_res);&lt;br /&gt;   raise form_trigger_failure;&lt;br /&gt;end if;&lt;br /&gt;..&lt;br /&gt;-- Erstellen des Worksheets&lt;br /&gt;pkg_genexlxml.create_worksheet( 'sheet1');&lt;br /&gt;..&lt;br /&gt;-- Erstellen der Styles&lt;br /&gt;l_res:=pkg_genexlxml.create_style( 'sgs1' , 'Courier', 'red', 16, TRUE , p_backcolor =&gt; 'LightGray', P_underline =&gt; 'Single' );&lt;br /&gt;if l_res&lt;&gt;'OK' then&lt;br /&gt;   prc_show_error(l_res);&lt;br /&gt;   raise form_trigger_failure;&lt;br /&gt;end if;&lt;br /&gt;..&lt;br /&gt;-- Definieren der Zeilenhöhe, falls speziell&lt;br /&gt;pkg_genexlxml.set_row_height ( 1, 20 ,'sheet1' );&lt;br /&gt;..&lt;br /&gt;-- Definieren der Spaltenbreiten&lt;br /&gt;pkg_genexlxml.set_column_width( 1, 50, 'sheet1' );&lt;br /&gt;..&lt;br /&gt;-- Schreiben der Header-Spalten&lt;br /&gt;l_res:=pkg_genexlxml.write_cell_char( l_r,1, 'sheet1', 'EMPNO' ,'sgs1' );&lt;br /&gt;if l_res&lt;&gt;'OK' then&lt;br /&gt;   prc_show_error(l_res);&lt;br /&gt;   raise form_trigger_failure;&lt;br /&gt;end if;&lt;br /&gt;..&lt;br /&gt;-- Schreiben der Daten in die einzelnen Spalten&lt;br /&gt;l_res:=pkg_genexlxml.write_cell_num ( l_r, 1, 'sheet1' , :EMP.EMPNO, 'sgs3' );&lt;br /&gt;if l_res&lt;&gt;'OK' then&lt;br /&gt;   prc_show_error(l_res);&lt;br /&gt;   raise form_trigger_failure;&lt;br /&gt;end if;&lt;br /&gt;..&lt;br /&gt;EXCEPTION WHEN OTHERS THEN&lt;br /&gt;  NULL;&lt;br /&gt;END;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;Besten Dank an Sanjeev Sapre.&lt;br /&gt;&lt;br /&gt;Friedhold&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-3844699392879594216?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/3844699392879594216/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=3844699392879594216' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3844699392879594216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/3844699392879594216'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/08/erstellung-von-excel-xls-dateien-aus.html' title='Erstellung von Excel.XLS - Dateien aus Forms 6i ohne OLE'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4026965637124869774.post-4291967684121998751</id><published>2007-05-28T00:04:00.000+02:00</published><updated>2007-12-31T12:39:00.223+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Allgemeines'/><title type='text'>Start my blog.</title><content type='html'>&lt;ul&gt;&lt;li&gt;Oracle Designer&lt;/li&gt;&lt;li&gt;Oracle Forms&lt;/li&gt;&lt;li&gt;Oracle Reports&lt;/li&gt;&lt;li&gt;Oracle PL/SQL Web Toolkit&lt;/li&gt;&lt;li&gt;Oracle Maps&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4026965637124869774-4291967684121998751?l=friedhold-matz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://friedhold-matz.blogspot.com/feeds/4291967684121998751/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4026965637124869774&amp;postID=4291967684121998751' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4291967684121998751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4026965637124869774/posts/default/4291967684121998751'/><link rel='alternate' type='text/html' href='http://friedhold-matz.blogspot.com/2007/05/start-my-blog.html' title='Start my blog.'/><author><name>Friedhold Matz</name><uri>http://www.blogger.com/profile/10340577232633666723</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-dG_VBdGveB0/TpMuHtzxBPI/AAAAAAAAAYc/djAOvK9idFI/s220/abnY-work-2-skale.jpeg'/></author><thr:total>1</thr:total></entry></feed>
