tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
489
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Rayne Rayne ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    152
    Hallo liebe Leute

    Ich möchte auf einer Website eine Google-Karte einbinden, auf der automatisch die Koordinaten eines bestimmten Ortes eingebunden und angezeigt werden. Dazu habe ich mir einen Google-Api-Key besorgt und den entsprechenden Code eingebunden. Das klappt soweit auch ganz gut, nur möchte ich die Koordinaten nicht per Hand eingeben, sondern via Custom Field (Wordpress) automatisch holen lassen.

    Das Problem ist allerdings, dass der Google-Code Java-Script ist und der Befehl für die Custom Fields PHP. Anscheinend kann man innerhalb von Java Script kein PHP einbinden, jedenfalls hat das nicht geklappt.

    Gibt es nun eine Möglichkeit, einfach den JS-Code von PHP umschließen zu lassen? Ich hatte das auch schon probiert, aber nur Fehler ausgegeben bekommen, da ich dabei anscheinend was falsch gemacht habe. Meine Kentnisse in JS und PHP sind auch sehr gering.

    So sieht der Google-Code aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    <script type="text/javascript">
     
        function initialize() {
     
        var map = new GMap2(document.getElementById("map_canvas"));
     
        map.setCenter(new GLatLng(12.3456789123456, 12.3456789123456), 13);
     
     
        var map = new GMap2(document.getElementById("map_canvas"));
     
        map.setCenter(new GLatLng(12.3456789123456, 12.3456789123456), 13);
     
        map.openInfoWindow(map.getCenter(),
     
        document.createTextNode("Text hier"));
     
        var point = new GLatLng(12.3456789123456, 12.3456789123456);
     
        map.addOverlay(new GMarker(point));
     
    }
     
        </script>

    Der Befehl zum Aufruf eines Custom Fields lautet:

    Code :
    1
    
    <?php echo get_post_meta($post->ID, 'lat', true); ?>
    Code :
    1
    
    <?php echo get_post_meta($post->ID, 'lng', true); ?>

    Dieses Custom Field soll nun jeweils an die Stelle kommen, wo jetzt "12.3456789123456" steht.

    Könnt ihr mir bitte bei der Umsetzung helfen? Das wäre wirklich super!

    Vielen Dank schon im Voraus!
     

  2. #2
    Benzbob Benzbob ist offline Mitglied Bronze
    Registriert seit
    Nov 2009
    Beiträge
    47
    Hi,
    soweit ich weiß brauchst du keinen Google-Api-Key mehr, das war für die API V2 noch nötig, seit der Version 3 ist es aber nicht mehr nötig. Mehr dazu HIER

    Dann zu deiner eigentlichen Frage:
    Es ist mögliche mit php ganz normalen Javascript-Code zu erzeugen, in deinem Beispiel einfach:

    PHP-Code:
    var point = new GLatLng(<?php echo get_post_meta($post->ID'lat'true); ?><?php echo get_post_meta($post->ID'lng'true); ?>);
     

  3. #3
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi

    Warum machst du beim Javascript alles mehrfach?
    Die ersten zwei Codezeilen sind mit 3/4 identisch,
    und das GLatLng-Objekt gibts gleich dreifach.
    einfach so:
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    <script type="text/javascript">
     
        function initialize() {
     
        var map = new GMap2(document.getElementById("map_canvas"));
    <?php echo 'map.setCenter(new GLatLng('.get_post_meta($post->ID, 'lat', true).', '.get_post_meta($post->ID, 'lat', true).'), 13);'; ?>
     
        var map = new GMap2(document.getElementById("map_canvas"));
     
        <?php echo 'map.setCenter(new GLatLng('.get_post_meta($post->ID, 'lat', true).', '.get_post_meta($post->ID, 'lat', true).'), 13);'; ?>
     
        map.openInfoWindow(map.getCenter(),
     
        document.createTextNode("Text hier"));
     
        <?php echo 'var point = new GLatLng('.get_post_meta($post->ID, 'lat', true).', '.get_post_meta($post->ID, 'lat', true).');'; ?>
        map.addOverlay(new GMarker(point));
     
    }
     
        </script>
    und die .html-Datei in .php umbenennen.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  4. #4
    Rayne Rayne ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    152
    Oh super, das hat geklappt! Da hatte ich wohl einen kleinen Fehler irgendwo eingebaut. Nun funktioniert es Danke!

    Habt ihr zufällig noch eine Idee, wie ich in das Info-Fenster einen Umbruch einfügen kann?

    Der Code dafür:

    Code :
    1
    2
    3
    
    map.openInfoWindow(map.getCenter(),
     
    document.createTextNode("<?php echo get_post_meta($post->ID, 'store', true); ?><?php echo get_post_meta($post->ID, 'street', true); ?>"));

    Zwischen den beiden echos möchte ich einen Umbruch einfügen, habs schon mit "<br>", <br>, '<br>', + '<br>' etc. probiert, aber entweder passiert nichts oder er gibt mir das <br> lediglich als Text aus. Vielleicht wisst ihr ja, wie das geht? Danke
     

  5. #5
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Code :
    1
    
    \r\n

    sollte Abhilfe schaffen
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  6. #6
    Rayne Rayne ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    152
    Zitat Zitat von Maniac Beitrag anzeigen
    Code :
    1
    
    \r\n

    sollte Abhilfe schaffen
    Hm, wie muss ich das denn integrieren, damit es funktioniert? Habe es unter anderem so versucht, aber ohne Erfolg:

    Code :
    1
    
    document.createTextNode("<?php echo get_post_meta($post->ID, 'store', true); ?>\r\n<?php echo get_post_meta($post->ID, 'street', true); ?>"));

    Code :
    1
    
    document.createTextNode("<?php echo get_post_meta($post->ID, 'store', true); ?>"+"\r\n"+"<?php echo get_post_meta($post->ID, 'street', true); ?>"));

     

Ähnliche Themen

  1. Google Maps "ReverseGeocoding"-Bsp. auf mehrere Maps anwenden
    Von jbender im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 30.03.10, 21:06
  2. Google Maps coder (Java)
    Von konstapel im Forum Stellenangebote (entgeltlich)
    Antworten: 3
    Letzter Beitrag: 05.03.10, 02:11
  3. Java Server faces und Google-Maps
    Von schlumsch im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 13.08.08, 11:32
  4. google maps api: java <--> javascript
    Von inspector_71 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 19.02.08, 12:48
  5. Google Maps Einsatz im Community Script
    Von Hannibal im Forum PHP
    Antworten: 10
    Letzter Beitrag: 29.07.07, 23:05