Τετάρτη 17 Ιουνίου 2009

Google Map σε Oracle Bi Suite...

Υπάρχει ένας εύκολος και γρήγορος τρόπος για να βλέπει "οπτικά" ο πελάτης τα καταστήματά του - γραφεία σε χάρτη . Χρειαζόμαστε :

1.Κλειδί για το google map ,το οποιο είναι δωρεάν και το παίρνουμε από τοhttp://code.google.com/apis/maps/signup.html , το μόνο που χρειάζεται είναι το όνομα του server που τρέχει το Bi. Οταν γράψετε το όνομα του server προτιμήστε να δώσετε το "αρχικό" όνομα και όχι την ip ή την πορτα που τρέχει ή ".....¨9704/analytics../".

Τώρα είτε θα βάλουμε "καρφωτά" κάποιες διευθύνσεις είτε (κάλυτερα...) θα τις πάρουμε από τον dimension πίνακα -Καταστήματα- .Εγω προτιμώ το δεύτερο τρόπο.

2.Πάμε στο answers και ειδικότερα στο narrative view .

3.Βάζουμε τον παρακάτω κώδικα......


PREFIX


<script src="http://maps.google.com/maps?file=api&v=2&oe=utf8&key=***my key for my server***"
type="text/javascript">
</script>
<script type="text/javascript">
var map = null;
var geocoder = null;
var marker = null;
function initialize() {
if (GBrowserIsCompatible()) {
// Create the map
map = new GMap2(document.getElementById("map_canvas"));
// Set the center without markers; 13 is the zoom level
map.setCenter(new GLatLng(37.4419, -122.1419), 11);
// Add the compass and zoom control
map.addControl(new GLargeMapControl());
// Add the Map type control
map.addControl(new GMapTypeControl());
// Get a new geocoder (needed to convert adresses to coordinates
geocoder = new GClientGeocoder();
// Get the ICON for the marker
icon0 = new GIcon();
icon0.image = "http://www.google.com/mapfiles/marker.png";
icon0.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon0.iconSize = new GSize(20, 34);
icon0.shadowSize = new GSize(37, 34);
icon0.iconAnchor = new GPoint(9, 34);
icon0.infoWindowAnchor = new GPoint(9, 2);
icon0.infoShadowAnchor = new GPoint(18, 25);
// Get the Adresses
GetMapAdress ()
}
}
function showAddress(address,comment) {
// Coverts adresses to coordinates and set the marker on the chart
if (geocoder)
{
geocoder.getLatLng
(
address,
function(point)
{
if (!point)
{
alert(address + " not found");
}
else
{
map.setCenter(point, 13);
var marker = createMarker(point,icon0,'>center>>a href= "'+comment+'" target="_blank">Informations>/a>>/center>');
map.addOverlay(marker);
}
}
);
}
}
function createMarker(point, icon, popuphtml)
{
var popuphtml = ">div id=\"popup\">" + popuphtml + ">\/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(popuphtml);});
return marker;
}
function newwindow()
{
window.open('comment','jav','width=400,height=300,resizable=yes');
}
function GetMapAdress ()
{

NARRATIVE


showAddress('@2', '@3');


POSTFIX

}
</script>
<body onload="initialize();return false" onunload="GUnload()">
<div id="map_canvas" style="width: 600px; height: 400px">>/div>
</body>
</html>
/////////////////////////////////////////////////////////////////////////

Ουσιαστικά παίρνουμε απο "showAddress('@2', '@3');" δυναμικά την διέυθυνση απο την 2 κολώνα και το link που θέλουμε να αντιστοιχίσουμε από την 3 .
Ανάλογα ποιον πίνακα έχετε φέρει και το σε ποιες κολώνες βρίσκονται οι πληροφορίες που θέλετε , τροποποιείτε την εντολή .

4.Πάντα σε κάτι καλό , υπάρχει και κάτι κακό.Στο firefox παίζει μία χαρά ενώ στο Explorer...μόνο στο preview(από το Answer).Ουτε στο metalink3 , forum της Oracle έχει δοθεί
κάποια λογική εξήγηση.

2 σχόλια:

  1. Πάρα πολύ καλό blog!! Πάρα πολύ καλή προσπάθεια!!Συνεχίστε την καλή δουλειά!!

    ΑπάντησηΔιαγραφή
  2. Σε ευχαριστώ φίλε μου....
    Οποιαδήποτε πληροφορία ή βοήθεια πες μου.

    ΑπάντησηΔιαγραφή