[Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

13. März 2010 14:03

Hallo zusammen! Ich habe in der Entität Kontakte und Firma jeweils eine neue Registerkarte mit Abschnitt und IFRAME angelegt, in dem die Adresse des Kontaktes und besser noch die Route von unserer Organisation zum Kontakt / zur Firma angezeigt werden soll (auf der CeBIT gesehen). Dabei habe ich das Problem, dass wenn ich einen Kontakt oder eine Firma öffne, scheinbar das Laden der Karte im IFRAME nicht so recht klappen will. Die Adresse wird zwar angezeigt, aber da wo die Karte kommen müsste, steht nur da: Einen Augenblick.... Wenn man aber sofort nach dem Öffnen des Kontaktes in die Registerkarte mit der Karte klickt, funktioniert es.

Weiß jemand einen Rat? Und eventuell auch, wie das mit der Route gehen könnte? Ich habe mich schon ausführlich mit der Bing Maps Hilfe beschäftigt, aber noch keine Lösung gefunden. Ich habe den Code aus einem anderen Blog verwendet:

Code:
// Load Map URL
{
  var AccountStreet = crmForm.all.address1_line1.DataValue;
  var AccountCity = crmForm.all.address1_city.DataValue;
  var AccountZip = crmForm.all.address1_postalcode.DataValue;

  var MapURL = "http://www.bing.com/maps/default.aspx?v=2&where1=" + AccountStreet + "%2C%20" + AccountZip + "%20" + AccountCity + "";

  if (MapURL != null){
    crmForm.all.IFRAME_map.src = MapURL;
  }
}

Vielen Dank für Eure Antworten im Voraus!

Gruß,
usagi
Zuletzt geändert von usagi-chan am 17. März 2010 17:25, insgesamt 1-mal geändert.

Re: Bing Maps als IFRAME in Firma oder Kontakt

13. März 2010 18:56

Hallo,

sieh dir einmal diesen Beitrag an, der sollte dir weiterhelfen:
http://blog.protechnology.de/index.php/2010/03/bing-maps-in-dynamics-crm-einbinden

Re: Bing Maps als IFRAME in Firma oder Kontakt

13. März 2010 19:13

Vielen Dank für die Antwort. Den Blog habe ich mir auch schon angesehen. Der Code stimmt ja mit meinem im Prinzip überein. Trotzdem geht es nicht richtig (siehe oben)

Re: Bing Maps als IFRAME in Firma oder Kontakt

14. März 2010 10:58

Hallo,

ich habe das jetzt einmal ausprobiert und es stimmt, die Karte wird nicht immer angezeigt. Woran das liegt, kann ich dir allerdings auch nicht sagen, da müsste ich erst einmal ein bisschen forschen, und dazu habe ich im Moment leider keine Zeit.

Re: Bing Maps als IFRAME in Firma oder Kontakt

15. März 2010 11:47

Hallo,

ich hatte vor kurzem ein ähnliches Problem... ich habe es dann dadurch gelöst, dass ich von Bing Maps auf Google Maps umgestiegen bin.

Der Code sieht bei mir so aus:

Code:
var AccountStreet = "";
if(  crmForm.all.address1_line1.DataValue != null){
AccountStreet = crmForm.all.address1_line1.DataValue.replace(" ", "%20");
}
var AccountCity = crmForm.all.address1_city.DataValue;
var AccountZip = crmForm.all.address1_postalcode.DataValue;

var MapURL = "http://maps.google.de/maps?f=d&source=embed&saddr=<Strasse>+<Hausnummer>,+<Postleitzahl>+<Ort>&daddr=" + AccountStreet + "+" + AccountZip + "+" + AccountCity  + "&view=map&hl=de";

if (MapURL != null)
   {
      crmForm.all.IFRAME_map.src = MapURL;
   }


Du musst noch <Strasse>+<Hausnummer>,+<Postleitzahl>+<Ort> durch deine entsprechenden Adressdaten (also deiner Firma) ersetzen. Bei Bing Maps habe ich die Routenplanung leider überhaupt nicht hinbekommen. Da die Kollegen aus verschiedenen Gründen Google Maps bevorzugen, war es für uns die erste Wahl. Vielleicht ist es ja auch für dich eine Alternative.

EDIT:
Kleine Anmerkung: Das Ersetzen der Whitespaces ist für Google Maps nicht nötig. Das benötige ich nur, da ich die aufbereitete Adresse auch gleich nutze, um ein IFrame für die Fahrtplanung mit der Bahn einzubinden.

EDIT2: Habe nochmal nachgeschaut.
Eine Anleitung für Bing Maps URLs gibt es unter http://help.live.com/help.aspx?project= ... ildurl.htm

Die Adresse müsste so aussehen:
Code:
var MapURL =" http://www.bing.com/maps/default.aspx?v=2&mkt=de-de&rtp=adr.<Straße> <Hausnummer>, <Postleitzahl> <Ort>~adr." + AccountStreet + ", " + AccountZip + " " + AccountCity;

Einziges Problem sind Umlaute... unter Firefox werden diese komplett falsch interpretiert (liegt wahrscheinlich an meiner Codepage), im IE funktioniert die Interpretation, allerdings werden Adressen mit Umlauten nicht gefunden, du musst also zuerst alle Umlaute ersetzen.
Leider hatte ich aber auch hier die Ladeprobleme mit Bing, bei Google ist sowas noch nicht aufgetreten. (Hatte erst gedacht es liegt am Haken "Frameübergreifendes Scripting verhinden").

Viele Grüße,
Florian

Re: Bing Maps als IFRAME in Firma oder Kontakt

15. März 2010 17:52

Danke für das Beispiel mit Google Maps. Das habe ich auch schon probiert, nur um zu schauen, ob es dort richtig funktioniert. Bei uns wird leider die Umsetzung mit Bing Maps gefordert ;(

Gruß,
usagi

Re: Bing Maps als IFRAME in Firma oder Kontakt

16. März 2010 18:36

Ich habe etwas rumprobiert... allerdings werde ich nicht so richtig schlau. Nutze ich die erzeugte URL direkt als Adresse in der IFrame-Konfiguration funktioniert alles problemlos. Sobald sie aber per JScript gesetzt wird treten die von dir beschriebenen Probleme auf. Wenn du in der defekten Ansicht im oberen Teil auf den Link klickst, der nur halbwegs zu sehen ist, dann funktioniert die Ansicht im IFrame auch. Ich habe keine Ahnung woran das liegt...

Wenn jemand eine Lösung hat, wäre es doch interessant woher das kommt.

Gruß Florian

Re: Bing Maps als IFRAME in Firma oder Kontakt

16. März 2010 18:52

Hallo Florian,

ich vermute, das es sich schlicht und ergreifend um ein Timing-Problem handelt. Ändere doch deinen Code einmal so um, das das IFrame nicht beim laden des Formulares, sondern beim klick auf den Tab geladen wird, dann sollte es funktionieren.

Re: Bing Maps als IFRAME in Firma oder Kontakt

16. März 2010 23:29

Ich habe den Tipp mal versucht umzusetzen.

Code:
crmForm.all.tab4Tab.onclick = function() {
  var AccountStreet = crmForm.all.address1_line1.DataValue;
  var AccountCity = crmForm.all.address1_city.DataValue;
  var AccountZip = crmForm.all.address1_postalcode.DataValue;

  var MapURL = "http://www.bing.com/maps/default.aspx?v=2&where1=" + AccountStreet + "%2C%20" + AccountZip + "%20" + AccountCity + "";

  if (MapURL != null){
    crmForm.all.IFRAME_map.src = MapURL;
  }
}

Kann man das mit dem Code so machen? Kenne mich leider mit JScript nicht so aus.

Danke & Gruß,
usagi
Zuletzt geändert von usagi-chan am 17. März 2010 17:24, insgesamt 1-mal geändert.

Re: Bing Maps als IFRAME in Firma oder Kontakt

17. März 2010 16:48

Hallo Usagi,

ich habe es jetzt mal ausprobiert um umgesetzt und es funktioniert, ab und zu gabs beim laden ein kleines Delay, aber das sollte nichts ausmachen.

Hier ist der Code, die Nummer nach tab gibt an, bei Klick auf welchen Tab das Skript ausgeführt werden soll. Allerdings ist es eine id die bei 0 startet. D.h. wenn deine Map der 1. Tab ist muss dastehen
Code:
document.all.tab0Tab.onclick {...}
, beim 2. Tab dann entsprechend
Code:
document.all.tab1Tab.onclick {...}

Code:
crmForm.all.tab4Tab.onclick = function(){ 
  var AccountStreet = crmForm.all.address1_line1.DataValue;
  var AccountCity = crmForm.all.address1_city.DataValue;
  var AccountZip = crmForm.all.address1_postalcode.DataValue;

  //Nur Anzeige auf Bing Maps
  //var MapURL = 'http://www.bing.com/maps/default.aspx?v=2&where1=' + AccountStreet + ', ' + AccountZip + ' ' + AccountCity;
  //Routplanung mit Bing Maps, <Straße> <Hausnummer> <PLZ> <Ort> entsprechend ersetzen.
  var MapURL ='http://www.bing.com/maps/default.aspx?v=2&mkt=de-de&rtp=adr.<Straße> <Hausnummer>, <PLZ> <Ort>~adr.' + AccountStreet + ', ' + AccountZip + ' ' + AccountCity;
 
  if (MapURL != null){
    //Hier muss noch der IFramename ergänzt werden (in deinem Fall "IFRAME_map").
    crmForm.all.<Name des IFrames>.src = encodeURI(MapURL);
  }
};


Ich hoffe das klappt, bei mir geht's problemlos. Das Encode URI löst auch das Umlautproblem.

EDIT: Ganz nebenbei, danke euch Beiden, wieder einiges gelernt im Rahmen der Lösungssuche. Bspw. das Javascript zur Entwicklung in eine eigene Datei auslagern und sich so die ständige Veröffentlichung sparen, vom onLoad die anderen Events ansteuern (auch die, die man nicht offensichtlich im CRM pflegen kann) und zu guter Letzt die richtige Codierung für URLs verwenden.

Viele Grüße,
Florian

Re: Bing Maps als IFRAME in Firma oder Kontakt

17. März 2010 17:25

Ich danke euch auch!

Viele Grüße,
usagi

Re: [Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

20. Januar 2011 17:13

@FloKo: Mich würde interessieren wie du das mit der Bahnauskunft ins CRM integriert hast.
Wäre schön wenn du es hier posten könntest.

Danke & Gruß
merlin666

Re: [Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

21. Januar 2011 19:57

Hi ich habe es so gelöst:
Der Reiter ist der 5. Reiter in der Firmenansicht (sonst einfach in der ersten Zeile das tab5Tab in tab%Reiternummer%Tab ändern, der IFrame heißt IFRAME_Bahn, cross-scripting ist im IFRAME erlaubt. Dann einfach noch %%%%%Abfahrtsort%%%%% und %%%%%Straße und Hausnummer%%%%% durch deine Daten ersetzen. Das Javascript wird ins OnLoad des Formulars eingebunden.

Code:
crmForm.all.tab5Tab.onclick = function(){
    var AccountStreet = crmForm.all.address1_line1.DataValue;
    var AccountCity = crmForm.all.address1_city.DataValue;
    var AccountZip = crmForm.all.address1_postalcode.DataValue;

    var BahnURL = 'http://reiseauskunft.bahn.de/bin/query.exe/dn?ld=212.24&searchMode=ADVANCED&REQ0JourneyStopsSA=2&REQ0JourneyStopsSG=%%%%%Abfahrtsort%%%%%,%%%%%Straße und Hausnummer%%%%%';

    if(AccountStreet != '' || AccountCity != '' || AccountZip != '' )
       {
          BahnURL = BahnURL + '&REQ0JourneyStopsZA=2&REQ0JourneyStopsZG=';
       if (AccountZip != '')
       {
           BahnURL = BahnURL + AccountZip + ' ';
       }   
       if (AccountCity != '')
       {
          BahnURL = BahnURL + AccountCity;
       }
       if (AccountStreet != '')
       {
          BahnURL = BahnURL + ', ' + AccountStreet;
       }
    }
    crmForm.all.IFRAME_Bahn.src = encodeURI(BahnURL);
}


Fals noch was ist melde dich einfach :)

Viele Grüße,
Florian

Re: [Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

26. Januar 2011 12:17

Hallo FloKo,
vielen Dank für deine Antwort.

Ich habe versucht Bing Maps und die Bahnauskunft wie folgt ins OnLoad einzubinden:
Code:
crmForm.all.tab4Tab.onclick = function()
{
 var AccountStreet = crmForm.all.address1_line3.DataValue;
 var AccountCity = crmForm.all.address1_city.DataValue;
 var AccountZip = crmForm.all.address1_postalcode.DataValue;
 
//Routplanung mit Bing Maps, <Straße> <Hausnummer> <PLZ> <Ort> entsprechend ersetzen
var MapURL ='http://www.bing.com/maps/default.aspx?v=2&mkt=de-de&rtp=adr. Straße Nr, PLZ Ort~adr.' + AccountStreet + ', ' + AccountZip + ' ' + AccountCity;
 
  if (MapURL != null){
    //Hier muss noch der IFramename ergänzt werden (in deinem Fall "IFRAME_map")
    crmForm.all.IFRAME_map.src = encodeURI(MapURL);
  }
};



crmForm.all.tab5Tab.onclick = function(){
    var AccountStreet = crmForm.all.address1_line1.DataValue;
    var AccountCity = crmForm.all.address1_city.DataValue;
    var AccountZip = crmForm.all.address1_postalcode.DataValue;

    var BahnURL = 'http://reiseauskunft.bahn.de/bin/query.exe/dn?ld=212.24&searchMode=ADVANCED&REQ0JourneyStopsSA=1&REQ0JourneyStopsSG=Ort Hbf';

    if(AccountStreet != '' || AccountCity != '' || AccountZip != '' )
       {
          BahnURL = BahnURL + '&REQ0JourneyStopsZA=2&REQ0JourneyStopsZG=';
       if (AccountZip != '')
       {
           BahnURL = BahnURL + AccountZip + ' ';
       }   
       if (AccountCity != '')
       {
          BahnURL = BahnURL + AccountCity;
       }
       if (AccountStreet != '')
       {
          BahnURL = BahnURL + ', ' + AccountStreet;
       }
    }
    crmForm.all.IFRAME_Bahn.src = encodeURI(BahnURL);
}

Bing Maps funktioniert, aber bei der Bahnauskunft bleibt das Fenster leer.
Kann man das so verknüpfen oder mache ich grundsätzlich was falsch? Bin leider nicht der Experte.

Re: [Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

26. Januar 2011 21:06

Hi,

heißt dein iFrame auf dem Reiter für die Bahn auch IFRAME_Bahn (also steht im Namensfeld nur Bahn, weil IFRAME_ ist ja automatisch da)? Und hast du das Cross-Site Scripting erlaubt? Ist der Bahn Reiter, der nächste nach dem Mapsreiter?

Die URL ist dafür ausgelegt, dass auch bei der Bahnsuche der Abfahrtsort als Adresse angegeben wird. Für den Bahnhof wäre es:

var BahnURL = 'http://reiseauskunft.bahn.de/bin/query.exe/dn?searchMode=ADVANCED&REQ0JourneyStopsSA=1&S=Ort Hbf';

Das ld=xxx.xx ist auch überflüssig wie ich grade sehe.

Viele Grüße,
Florian

Re: [Gelöst] Bing Maps als IFRAME in Firma oder Kontakt

27. Januar 2011 09:19

Hi FloKo,
jetzt geht`s, habe leider Groß- und Kleinschreibung verwechselt. (IFRAME_Bahn hieß bei mir IFRAME_bahn)
Danke, merlin666