Ich möchte alle meine Beiträge mit einem Geotag versehen und auf einer einzigen Google-Karte anzeigen.
google-maps
geo-data
Alekone
quelle
quelle
Antworten:
Wenn Sie dies ohne Plugin tun können, benötigen Sie nur die Google Maps-API .
Bitte beachten Sie, dass Sie, wenn Sie 20 oder mehr Markierungen auf einer Seite haben möchten, Beiträge anhand von Koordinaten und nicht anhand von Adressen geolokalisieren müssen.
So speichern Sie Koordinaten von einer Adresse:
Die Implementierung der zweiten Option hängt nicht eng mit der Frage zusammen, und ich werde sie bei meiner Antwort nicht berücksichtigen. In diesem Beispiel der Maps-API sehen Sie jedoch, wie einfach das Abrufen von Koordinaten von einer Adresse ist.
Daher gehe ich in dieser Antwort davon aus, dass Posts ein benutzerdefiniertes Feld "Koordinaten" haben, in dem Koordinaten als Zeichenfolge aus zwei durch Kommas getrennten Werten gespeichert werden
'38.897683,-77.03649'
.Ich gehe auch davon aus, dass in der Datei 'page-google-map.php' eine Seitenvorlage gespeichert ist.
Geben Sie den folgenden Code ein
functions.php
Wie Sie sehen können, stelle ich in der Kartenseitenvorlage eine Warteschlange ein
mygmap.js
'js' im Unterordner des ThemasWenn ich die Beiträge schleife, fülle ich ein Array
$map_data
undwp_localize_script
übergebe dieses Array an die js auf der Seite.Jetzt
mygmap.js
wird enthalten:Das Javascript ist nicht WP-bezogen, und ich habe es hier nur eingefügt, um die Verwendung von
map_data
var zu zeigen . Ich bin kein js-Entwickler und der Code stammt mehr oder weniger vollständig von hierDas ist alles. Erstellen Sie einfach die Seitenvorlage und fügen Sie ein Div mit der ID 'map' ein.
Natürlich kann das div mit CSS gestaltet werden, und beachten Sie, dass auch die Infofenster von Markern gestaltet werden können: Verwenden Sie im CSS
h3.marker-title
den Titel des Infofensters unddiv.marker-desc
den Inhalt.Beachten Sie, dass das Kartencenter automatisch berechnet wird. Wenn Sie den Standardzoom ändern möchten, müssen Sie ein benutzerdefiniertes Feld 'map_zoom' in die Seite einfügen, die der Kartenseitenvorlage zugewiesen ist.
Ich hoffe es hilft.
quelle
(37.983917, 23.729359899999963)
Wo kann ich den Code bearbeiten, damit die Koordinaten mit Klammern um sie herum verwendet werden können? Mein Versuch ist einfach fehlgeschlagen. Vielen Dank für diese Antwort, obwohl es super ist!$meta_coords = get_post_meta( get_the_ID(), 'coords', true );
zu$meta_coords = trim(get_post_meta( get_the_ID(), 'coords', true ), '()');
und natürlich ersetzencoords
die Plugin - Anwendungen zum Speichern von Koordinaten auf das tatsächliche Feld.