In Forms 11g Release 2 kann nun mit dem guiMode -
Konfigurations-Parameter das Window-Menue und/oder der Window-Frame
des Forms-Applets entfernen werden: ..\user_projects\domains\ClassicFxDomain\ config\fmwconfig\servers\AdminServer\applications\formsapp_11.1.2\config\formsweb.cfg:
Montag, 2. Januar 2012
Forms 11g R2 - Modul ohne Window - Menue bzw. Frame
Eingestellt von
Friedhold Matz
um
12:12
0
Kommentare
Labels: Oracle Forms 11g
Freitag, 30. Dezember 2011
Forms 11g und Reports 11g im Developer-Mode
Der Aufruf von Reports aus Forms 11g Release 2 im Developer-Mode ist recht einfach, hier nun ein vollständiger Demo - Ablauf:
- Start des WebLogic Servers:
- Erstellen eines emp - Demo - Modules im Forms 11g Builder
- Anlegen eines Reports-Objectes:
- Erstellen des Demo - Reports im Reports 11g Builder:
- Test des Reports-Servers:
- Im rwservlet.properties - File wird der Reports - Server Name ermittelt: D:\oraforms\user_projects\domains\ClassicFxDomain\servers\AdminServer\temp\_WL_user\ reports_11.1.2\90rnjo\configuation\rwservlet.properties :
- Erstellen der Reports - Procedur im Formsmodul:
Eingestellt von
Friedhold Matz
um
18:26
0
Kommentare
Labels: Oracle Forms 11g, Oracle Reports 11g
Montag, 26. Dezember 2011
Forms 11g getestet im Chromium Browser
Den aktuellsten Projektstand erhält man durch: http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/LATEST
und abhängig vom Ergebnis dann das jeweils aktuelle Projektverzeichnis, z.B.:
http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/5849/
In dem Forms-Developer wird nun der Chromium-WebBrowser eingetragen:
Unter: "Bearbeiten / Voreinstellungen / Laufzeit / Web-Browser-Speicherort:"
D:\Chromium\5849\chrome.exe .
Sinnvoll ist es auch, den FireBug Lite für Chrome zu installieren und die Debugging/Logging Features von FireBug zu verwenden:
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 ..
Gruß,
Friedhold
Eingestellt von
Friedhold Matz
um
13:03
0
Kommentare
Labels: Chromium Browser
Donnerstag, 15. Dezember 2011
Forms 11g mit Proxy - User
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 lediglich auf den Proxy - User konzentriert werden muss.
- Anlegen eines Proxy Users:
create user test_proxy identified by test_proxy;
- Freigabe des Proxy- Connects für einen End - User:
alter user scott grant connect through test_proxy;
- Test - Connect:

- Anmeldung im Forms 11gR2 - Developer:

- Implizite Anmeldung im ON-LOGON - Trigger:

- Nachweis des Connect - Status:


D.h. man kann mit get_Application_Property(USERNAME) den Proxy - User Account abfragen, USER liefert nach wie vor den End - User.
Übrigens kann sich der Proxy - User selbst nicht anmelden:

Aus Sicherheitsgründen und besserer, nachhaltiger Wartung sollte ein End - User ohnedies als einziges Recht nur das grant create session erhalten, eigene Objecte wie Synonyme, temporäre Tabellen, Views etc. oder gar PL/SQL - Code sollte er keinesfalls besitzen!
Jegliche Applikationsrechte sollten über Datenbank - Rollen, möglichst nach dem Prinzip der additiven Funktionserweiterung, vergeben werden.
Ich hoffe, dass dies weiter hilft.
Friedhold
Eingestellt von
Friedhold Matz
um
12:04
0
Kommentare
Labels: Oracle Forms 11g, Proxy User
Montag, 20. Juni 2011
GeoRaptor 3.0 Exportfunktionen - ESRI Shapefiles
Eine sehr nützliche Funktion ist das Exportieren von SDO_GEOMETRIES:
in eines der folgenden Formate:
Dabei muss der SRID natürlich OGC - konform angepasst werden:
Letztendlich wird das Ergebnis gemeldet:
Das erstellte Shapefile konnte ich mit dem OpenSource Desktop-GIS uDig (aktuelle Version: 1.2.2) verifizieren:
Der Layer COUNTIES_GEOM ist unser Shapefile-Layer, COUNTIES ist der MVDEMO.COUNTIES.SDO_GEOMETRY-Layer: Beide Layer sind natürlich deckungsgleich.
Großen Dank an das GeoRaptor Team!
Friedhold
Eingestellt von
Friedhold Matz
um
22:35
0
Kommentare
Labels: ESRI Shapes, GeoRaptor, Oracle Spatial, Oracle SQL Developer, uDig
Montag, 13. Juni 2011
GeoRaptor 3.0 für SQL Developer 2.1 u. 3.0
Simon Greener hat im Oracle Spatial Forum die Freigabe des GeoRaptor 3.0 für den SQL Developer 2.1 und 3.0 bekannt gegeben.
Eingestellt von
Friedhold Matz
um
22:11
0
Kommentare
Labels: GeoRaptor, Oracle Spatial, Oracle SQL Developer
Samstag, 11. Juni 2011
Oracle Maps mit Yahoo Maps inklusiv
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 oraclemaps.js auch für Yahoo Maps die Custom Tiles Anwendung vorbereitet ist. Man braucht nur mit
baseMap = new MVYahooTileLayer();die Yahoo Base Map definieren, wobei auch bei Yahoo Maps ein Registrierungskey notwendig ist:

Eingestellt von
Friedhold Matz
um
14:38
0
Kommentare
Labels: Oracle Maps, Yahoo Maps
Dienstag, 24. Mai 2011
GeoJSON-Beispiel aus PL/SQL in OpenLayers
Oracle Maps und APEX seit der Version 4.0 verwenden das JSON - Format 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.
CREATE OR REPLACE PROCEDURE get_simple_geojson_2 (p_x number, p_y number) IS
l_state varchar2(2);
FUNCTION fnc_get_state(p_x NUMBER, p_y NUMBER )
RETURN varchar2 IS
li_state varchar2(2);
BEGIN
SELECT /*+ ORDERD */
s.STATE_ABRV
into li_state
FROM states s
WHERE SDO_RELATE(s.geom,
SDO_GEOMETRY(2001,
8307,
SDO_POINT_TYPE(p_x, p_y, NULL),
NULL,
NULL),
'mask=CONTAINS') = 'TRUE'
AND ROWNUM<2;
RETURN(li_state);
EXCEPTION
WHEN OTHERS then
RETURN('RI');
END fnc_get_state;
FUNCTION get_XY (p_state varchar2) RETURN VARCHAR2 IS
l_coords varchar2(32767);
BEGIN
for l_xy in (SELECT t.X, t.Y
FROM states s,
TABLE(SDO_UTIL.GETVERTICES(s.geom)) t
WHERE s. STATE_ABRV = p_state
) loop
l_coords:= l_coords || '['|| l_xy.X ||','|| l_xy.Y ||'],';
end loop;
RETURN( substr(l_coords, 1, length(l_coords)-1) );
END get_XY;
BEGIN
l_state := fnc_get_state(p_x, p_y);
htp.p('
{
"type": "FeatureCollection",
"features": [
{"type":"Feature", "id":"OpenLayers.Feature.Vector_1489", "properties":{},
"geometry":{ "type":"Polygon",
"coordinates":[['
|| get_XY( l_state ) ||
']] },'||
'"crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}
}'||
']
}
'
);
end get_simple_geojson_2;
/
function handleMapClick(e)
{
var lonlat = map.getLonLatFromViewPortPx(e.xy);
var newgeojson = new OpenLayers.Layer.GML("My GeoJSON Layer",
'http://localhost:8089/mvdemo/get_simple_geojson_2?p_x='+lonlat.lon+'&p_y='+lonlat.lat,
{format: OpenLayers.Format.GeoJSON});
map.addLayer(newgeojson);
}
Eingestellt von
Friedhold Matz
um
20:55
0
Kommentare
Labels: GeoJSON, JSON, OpenLayers, Oracle EPG, Oracle PL/SQL
Sonntag, 15. Mai 2011
Oracle Embedded PL/SQL Gateway einrichten
Das Embedded PL/SQL Gateway 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 Beschreibung habe ich diesen Ablauf hier mit Erfolg getestet.
Test: http://localhost:8089/mvdemo/testPage
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 Access Control List (ACL) entsprechend konfiguriert werden.
Friedhold
Eingestellt von
Friedhold Matz
um
20:21
0
Kommentare
Labels: Oracle EPG
Donnerstag, 28. April 2011
SQL*PLUS für Windows in einer Oracle 11g DB Installation einrichten
Nach der Installation einer 11g Datenbank und eines 11g Clients suchte ich vergeblich das gewohnte SQL*PLUS für Windows (bin\sqlplusw.exe) !
- Kopie der CLIENT_10g\bin\sqlplusw.exe in das ORACLE_11gDB\bin - Verzeichnis
- Kopie der ORACLE_HOME\bin\oraclient11.dll in ORACLE_11gDB\bin\Kopie-oraclient11.dll
- Umbenennung der Kopie-oraclient11.dll in oraclient10.dll
- Kopie der spwd.msd & spwus.msb aus dem CLIENT_10g\slqplus\msg - Verzeichnis in das ORACLE_11gDB\sqlplus\msg - Verzeichnis.
Eingestellt von
Friedhold Matz
um
22:19
0
Kommentare
Montag, 22. Februar 2010
APEX als Web 2.0 BI Dashboard
Vor ca. 2 Jahren hatte ich an einem APEX - Roundtable mit Mike Hitchwa in Hamburg teilgenommenm, dabei konnten wir unsere Vorstellungen zu APEX - Komponenten äussern. Dass nun einige, dort diskutierte Komponenten real umsetzbar sind, zeigt folgendes Demo-Video, das Live - Demo kann ebenfalls erprobt werden.
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.
Friedhold
Eingestellt von
Friedhold Matz
um
18:28
0
Kommentare
Labels: Oracle APEX
Freitag, 6. Februar 2009
Oracle Forms WebStart mit dem JDK 1.6 und dem OC4J der iDSuite 10g
Die im Blog "SUN's Applet-Technologie .." 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!
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:
- Konfigurierung des OC4J der iDS10gR2 Suite:
In der C:\iDS10gR2\forms\j2ee\orion-web.xml fügen wir in der Sektion "orion-web-app" ein :
directory-browsing="allow"
- Erstellen einer start-web.html Seite und Speichern unter : C:\iDS10gR2\tools\web\html
- Start des OC4J
- Test des Seiten-Zugriffes (Port anpassen) : http://localhost:8889/forms/html/start-web.html => OK.
- Anlegen des Verzeichnisses C:\iDS10gR2\tools\web\html\jnlp
- Anpassung des jnlp - Files (Port, Modulname) und speichern in C:\iDS10gR2\tools\web\html\jnlp

- Kopieren des frmall.jar-Files nach C:\iDS10gR2\tools\web\html\jnlp
- Anlegen des Verzeichnisses C:\iDS10gR2\tools\web\html\jnlp\oracle\forms
- Kopie des Registry.dat-Files nach C:\iDS10gR2\tools\web\html\jnlp\oracle\forms
- Erstellen eines Formsmodules und Speichern des *.fmx in C:\iDS10gR2\forms
- Ausführung des WebStart's : http://localhost:8889/forms/html/jnlp/formsStart.jnlp

Ausserdem wird im Programm-Menü der Applikationsstart eingetragen:
so dass ein schneller Direktstart möglich ist.
Oracle Forms 10g als WebStart Application und damit eigentlich auch als RDA : Rich Desktop Application ..
Friedhold
Eingestellt von
Friedhold Matz
um
20:54
0
Kommentare
Labels: Oracle Forms, SUN WebStart
Freitag, 26. Dezember 2008
SUN's Applet-Technologie: JavaFX und Google Maps
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!
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+ :
Start der JavaFX-Applikation in einem neuen Browser-Fenster (Bitte beachten: Dies ist nur ein Testbeispiel!)
JavaFX ist übrigens SUN's Antwort auf Adobe's Flex & AIR und Microsoft's Silverlight, Applikationen, die sowohl im WebBrowser als auch im Desktop laufen.
Mit etwas Anpassung können wir natürlich auch Oracle Maps als JavaFX - RDA (Rich Desktop Application) anwenden.
Beste Grüße und ein erfolgreiches Neues Jahr
Friedhold
Eingestellt von
Friedhold Matz
um
23:42
0
Kommentare
Labels: Google Maps, JavaFX, SUN WebStart
Sonntag, 30. November 2008
Oracle Maps mit externer Virtual Earth Satelliten Karte
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:
Hier nun beide Oracle Maps - Demos, sozusagen live:
* Virtual Earth mit Kartenansicht
* Virtual Earth mit Satellitenansicht
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 Remote Customer Grid-Map Layer eigene FOI - Layer darstellen.
Viel Spaß,
Friedhold
Eingestellt von
Friedhold Matz
um
13:18
0
Kommentare
Labels: Oracle Maps, Virtual Earth
Sonntag, 19. Oktober 2008
Remote Oracle Maps in einer Swing - Applikation
Natürlich ist es anschaulicher, wenn man Oracle Maps direkt und als Live - Demo präsentieren kann. Mit etwas Anpassung ist das Oracle GeoCoding Demo als Web Start Swing-Applikation lauffähig, per rechtem Mouseclick erhält man die Koordinaten im InfoWindow :
Zum Ausprobieren habe ich das Web Start - Demo bereitgestellt.
Damit eröffnen sich mit SUN's Erneuerungen hinsichtlich der Applet- und Web Start- Technologie auch für Oracle Maps neue Möglichkeiten ..
Übrigens läuft das Demo auch problemlos unter Googles WebBrowser Chrome.
Friedhold
Eingestellt von
Friedhold Matz
um
21:42
0
Kommentare
Labels: Java Swing, Oracle Maps, SUN WebStart
Freitag, 10. Oktober 2008
Remote Oracle MapViewer Tiles in einer Web Start Swing - Applikation
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.
Es gibt natürlich nach wie vor die Möglichkeit, die Oracle Map Tiles vom Oracle MapViewer anzufordern: Hierfür wird die Java-Library mvclient.jar verwendet.
Liujian Qian hat uns in seinem wunderbaren Blog ein Swing Mapper-Demo vorgestellt: Dieses habe ich etwas angepasst (den Fokus auf die Lausitz verlagert ;-) ) und als Web Start - Demo bereitgestellt:
Wie bereits in der vorigen Blog-Serie zu den Oracle Maps - Mashups verwende ich hier ebenfalls das Oracle GeoCoding Demo.
Die Navigation in der Swing-Map erfolgt mit den Tasten des Nummern-Blockes: Die Positionsverschiebung mit den Pfeil-Tasten, das Zooming mit der <+> u. <-> - Taste.
Somit haben wir jetzt ein Beipiel zum Remote - Zugriff auf Oracle MapViewer Tiles per Web Start - Swing Applikation.
Friedhold
Eingestellt von
Friedhold Matz
um
20:16
0
Kommentare
Labels: Java Swing, Oracle MapViewer, SUN WebStart
Donnerstag, 4. September 2008
Google Maps und Oracle Maps Mashup mit externem Custom Map Tile Layer (8)
Im letzten Teil dieser Serie zu 'Oracle Maps Mashups mit externen Customer Map Tile Layern' möchte ich schliesslich die Lösung mit Google Maps Tiles vorstellen. Die Parameterdefinition zur Kartenprojektion ist wie beim Virtual Earth Demo vorzunehmen.
Die Google Tiles Url hatte ich bereits im Blog "Google Maps Tile - URL mit PL/SQL bilden" vorgestellt, so dass eigentlich nur die 'getTileURL' - Funktion angepasst werden muss:
Letzendlich erhalten wir das Google Maps / Oracle Maps Mashup:
Natürlich lassen sich auch auf der Google Maps - Base Map statische und dynamische Features of Interest Layers (FOIs) darstellen, insbesondere auf der Basis von topologischen Abfragen direkt aus Oracle Spatial.
Grüße,
Friedhold
Eingestellt von
Friedhold Matz
um
21:02
0
Kommentare
Labels: Google Maps, Mashups, Oracle Maps
OpenStreetMap - FOI, Virtual Earth und Oracle Maps Mashup (7)
Im letzten Teil (6) 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 Teil (5) ).
Dann können wir diesen FOI- Layer aktivieren:
und erhalten schliesslich das OpenStreetMap / Virtual Earth / Oracle Maps Mashup:
Friedhold
Eingestellt von
Friedhold Matz
um
19:05
0
Kommentare
Labels: Mashups, OpenStreetMap, Oracle Maps, Virtual Earth
Dienstag, 2. September 2008
Virtual Earth und Oracle Maps Mashup mit externem Custom Map Tile Layer (6)
Nun haben wir uns so langsam dem Spherical Mercator genähert und möchten in Oracle Maps als externe Customer Base Map die Virtual Earth Map von Microsoft darstellen. Im Teil 3 dieser Serie hatte ich bereits auf die Notwendigkeit der Anwendung des Google/Vitual Earth Spherical Mercators hingewiesen! Würde man als Map- Projektion den World Mercator 54004 verwenden, :
var mapConfig=
{
"mapTileLayer":"GX_MERCATOR",
"format":"PNG",
"coordSys":
{
"srid":54004,
"type":"PROJECTED",
"distConvFactor":1.0,
"minX":-2.0037508E7,"minY":-2.0037508E7,
"maxX":2.0037508E7,"maxY":2.0037508E7
},
so wären die Demo- Daten leider nicht Karten - konform:

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:
var mapConfig=
{
...
{
"srid:1000002,
...
},
sieht das Mashup aus der Virtual Earth Customer Base Map und dem Oracle Maps Demo - FOI - Layer dann so aus:

Microsoft verwendet zum schnellen Zugriff auf die Virtual Earth - Tiles sogenannte Quad-Keys :
function getVETileQuadKey(tileX, tileY, level)
{
var quadKey = "";
for (var i = level; i > 0; i--)
{
var digit = 0;
var mask = 1 << (i - 1);
if ((tileX & mask) != 0)
{
digit++;
}
if ((tileY & mask) != 0)
{
digit++;
digit++;
}
quadKey += digit;
}
return quadKey;
}
Mit dem Spherical Mercator eröffnen sich neue Mashup - Möglichkeiten !!
Grüße,
Friedhold
Eingestellt von
Friedhold Matz
um
21:20
0
Kommentare
Labels: Mashups, Oracle Maps, Virtual Earth
Google Maps Tile - URL mit PL/SQL bilden
Zum Verständnis von Googles / Virtual Earth's Sperical Mercator möchte ich zunächst die dabei verwendete Mercator-Formel vorstellen : 
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.
Hier ein Beispiel zur Verifizierung der von mir erstellten PL/SQL- Prozeduren:
Mit der PL/SQL - Package erstellen wir die Google Tile - URL (angewendet wird die sinus-Gleichung):
CREATE OR REPLACE PACKAGE BODY PKG_GET_GMAPS_URL AS
PI CONSTANT NUMBER := 3.141592653589793 ;
DTOR CONSTANT NUMBER := PI / 180;
RTOD CONSTANT NUMBER := 180 / PI;
TILE_SIZE CONSTANT NUMBER := 256;
MERC_BORDER CONSTANT NUMBER := 85.0511287798066;
FUNCTION fnc_get_TileCoord (p_lat IN number, p_lon IN number, p_zoom IN number,
p_x OUT NUMBER, p_y OUT NUMBER, p_z OUT NUMBER) RETURN varchar2 IS
l_sin_pi NUMBER;
l_norm_x NUMBER;
l_norm_y NUMBER;
l_col NUMBER;
l_row NUMBER;
BEGIN
IF abs(p_lat) > MERC_BORDER THEN
RETURN('Invalide Latitude');
ELSE
l_sin_pi := SIN((p_lat) * DTOR);
l_norm_x := p_lon / 180;
l_norm_y := (0.5 * LN ( (( 1 + l_sin_pi) / (1 - l_sin_pi)) ) ) / PI;
-- column
p_x := POWER(2, p_zoom) * (( l_norm_x + 1 ) / 2);
-- row
p_y := POWER(2, p_zoom) * (( 1 - l_norm_y ) / 2);
p_z:= p_zoom;
RETURN('OK');
END IF;
END fnc_get_TileCoord;
PROCEDURE prc_get_TileCoord (p_lat IN number, p_lon IN number, p_zoom IN number) IS
l_x NUMBER;
l_y NUMBER;
l_z NUMBER;
l_xpos NUMBER;
l_ypos NUMBER;
l_res VARCHAR2(2000);
l_paras VARCHAR2(500);
BEGIN
l_res:= fnc_get_TileCoord(p_lat, p_lon, p_zoom, l_x, l_y, l_z);
dbms_output.put_line(l_res);
l_xpos:= trunc((l_x - trunc(l_x) ) * TILE_SIZE);
l_ypos:= trunc((l_y - trunc(l_y) ) * TILE_SIZE);
dbms_output.put_line('x-Pos. in World: '||to_char(trunc(l_x * 256) ) || ' / ' ||
'y-Pos. in World: '||to_char(trunc(l_y * 256) ));
dbms_output.put_line('x-Pos. in Tile: '||to_char(l_xpos)|| ' / ' ||
'y-Pos. in Tile: '||to_char(l_ypos));
dbms_output.put_line(' --- ');
l_paras := 'x=' ||to_char( trunc( l_x ) )||
'&y='||to_char( trunc( l_y ) )||
'&zoom='||to_char(17-p_zoom);
dbms_output.put_line('http://mt0.google.com/mt?'||l_paras);
END prc_get_TileCoord;
END PKG_GET_GMAPS_URL;
Nachfolgend angewendet, erhalten wir die World- und Tile - Pixel Koordinaten und natürlich die Google- Tile URL:
SQL> set serverout on
SQL> exec pkg_get_gmaps_URL.prc_get_TileCoord (52.514653902014715, 13.350105285644531, 13)
OK
x-Pos. in World: 1126345 / y-Pos. in World: 687822
x-Pos. in Tile: 201 / y-Pos. in Tile: 206
---
http://mt0.google.com/mt?x=4399&y=2686&zoom=4
Eine Differenz von einem World-Pixel zur obigen Tile - Map kann man gelten lassen !
Dank Oracle's PL/SQL !
Friedhold
PS: Googles Mercator wird übrigens 900913 genannt und kommt eigentlich von 600613 - in der SMS-Schrift : Google.
Eingestellt von
Friedhold Matz
um
19:42
0
Kommentare
Labels: Google Maps, Oracle PL/SQL

















