Map
4 dk okuma
Bir Map alanı bir yeri saklar: bir adres ve isteğe bağlı olarak koordinatları. Editörler bir adres arar, haritaya tıklar veya işaretçiyi sürükler; siteniz bir harita ve "View on map" bağlantısı gösterir.
Tür kimliği |
|
Sütun |
|
Döndürür | an array: |
Çıktısı | adres, bir harita ve "View on map" bağlantısı |
Ön yüz formları (Pro) | kullanılamaz |
JSON sütunu her zaman değerin tamamını tutar. İki yardımcı sütun, yazıları konuma göre filtreleyip sıralayabilmeniz için (örneğin "10 km içinde") her kayıtta otomatik doldurulur. Dolayısıyla Map alanı olan bir alan grubunda bu alan için üç sütun bulunur.
Harita hizmetini seçin
Harita hizmeti, WPM Fields › Settings içindeki Maps kartında yapılan, site geneli bir seçimdir.
Ayar | Etki |
|---|---|
Map provider | OpenStreetMap (free, no key) (varsayılan) veya Google Maps (API key). |
Google Maps API key | Google Maps seçildiğinde gösterilir. Maps JavaScript API ve Geocoding API etkin olan bir tarayıcı anahtarı. Sayfa kaynağında görünür olduğu için Google Cloud konsolunda anahtarı sitenizle sınırlandırın. Yalnızca harfler, rakamlar, |
Map ID | İsteğe bağlı. Google Cloud konsolundaki bir Map ID, haritaların Google'ın güncel işaretçilerini kullanmasını sağlar; olmadan klasik işaretçi kullanılır (en fazla 64 karakter). |
Bir Google anahtarı kaydedilene kadar, Google Maps seçili olsa bile "Until a key is saved, maps keep using OpenStreetMap." bildirimi geçerlidir ve OpenStreetMap kullanımda kalır.
OpenStreetMap | Google Maps | |
|---|---|---|
Map | OpenStreetMap karolarıyla Leaflet | Google Maps JavaScript API |
Adres araması | Nominatim (OpenStreetMap'in coğrafi kodlayıcısı) | Google Geocoding |
Maliyet ve anahtar | Ücretsiz, anahtar gerekmez | Anahtar ve bir Google faturalandırma hesabı gerekir |
"View on map" bağlantısı | openstreetmap.org | google.com/maps |
Editörlerin ve ziyaretçilerin tarayıcıları harita karolarını yüklemek için seçilen hizmete doğrudan bağlanır ve editörlerin adres aramaları coğrafi kodlayıcıya gönderilir. Bunu gizlilik politikanızda belirtin. OpenStreetMap hizmetleri herkese açıktır ve bir kullanım politikası vardır; çok yoğun siteler Google Maps veya kendi karo hizmetlerini kullanmalıdır.
Tür ayarları
Ayar | Varsayılan | Etki |
|---|---|---|
Initial latitude | boş | Hiçbir yer seçilmemişken haritanın açıldığı konum, örneğin |
Initial longitude | boş | Örneğin |
Zoom level | 13 | 1 (tüm dünya) ile 20 (tek bir bina) arası. Başlangıç yakınlaştırması ve yeni değerlerin yakınlaştırması olarak kullanılır. |
Map height (px) | 320 | Haritanın düzenleme ekranındaki ve sitenizdeki yüksekliği, 120 ile 1000 arası. |
Düzenleme ekranı
- Bir adres kutusu (yer tutucu "Search for an address…") ve bir Search düğmesi. Enter'a veya Search düğmesine basın, ardından bir sonuç seçin.
- Bir harita. İşaretçiyi yerleştirmek için tıklayın veya işaretçiyi sürükleyin.
- Latitude ve Longitude kutularına yazabilirsiniz (enlem -90 ile 90, boylam -180 ile 180 arası).
- Clear yeri kaldırır.
Editörün haritayı bıraktığı yakınlaştırma düzeyi değerle birlikte kaydedilir.
Kaydederken nelerin kabul edildiği
Bölüm | Kural |
|---|---|
| Düz metin, etiketler kaldırılır. |
| Her iki sayı da kendi aralığında olmalı, 7 ondalığa yuvarlanır. İkisinden biri eksik veya aralık dışıysa ikisi de atılır. |
| 1 ile 20 arası; varsayılan, alanın Zoom level değeridir. |
Boş değer (null) yalnızca koordinat ve adres yokken oluşur. Koordinatsız bir adres geçerli bir değerdir (lat ve lng, null olur).
wpmcf_update_field() diziyi veya onun JSON dizesini alır. Düz bir "41.0,28.9" dizesi ayrıştırılmaz: wpmcf_update_field() alanı temizler; yalnızca CSV içe aktarmaları lat,lng (ayrıca lat;lng) biçimini ve bir JSON nesnesini kabul eder.
Şablonda kullanım
$place = wpmcf_get_field( 'shop', 'location' );
// [
// 'address' => 'Istanbul',
// 'lat' => 41.0082,
// 'lng' => 28.9784,
// 'zoom' => 12,
// ]
$lat = wpmcf_get_field( 'shop', 'location', null, [ 'path' => 'lat' ] ); // 41.0082lat ve lng, yalnızca adres içeren bir değerde null olur. Kullanmadan önce kontrol edin:
if ( $place && null !== $place['lat'] ) {
printf( 'https://maps.example/?q=%s,%s', esc_attr( (string) $place['lat'] ), esc_attr( (string) $place['lng'] ) );
}Otomatik çıktı (wpmcf_the_field() ve shortcode):
[wpmcf_field group="shop" field="location" wrap="false"]<div class="wpmcf-map-field">
<p class="wpmcf-map-field__address">Istanbul</p>
<div class="wpmcf-map" data-lat="41.0082" data-lng="28.9784" data-zoom="12" data-height="320"
data-label="Istanbul" role="region" aria-label="Map of Istanbul"></div>
<a class="wpmcf-map-field__link" href="https://www.openstreetmap.org/?mlat=41.0082&mlon=28.9784#map=12/41.0082/28.9784">View on map</a>
</div>- Yalnızca bir Map alanı yazdıran sayfalarda yüklenen küçük bir betik,
<div class="wpmcf-map">öğesini canlı bir haritaya dönüştürür. - Koordinatsız bir adresle yalnızca adres ve bir View on map bağlantısı (arama bağlantısı) yazdırılır; harita çizilmez.
- Bağlantı OpenStreetMap'e veya sağlayıcı Google ise Google Maps'e gider.
Mesafeye göre arama: wpmcf_distance sorgu argümanı, wpmcf_query_posts() işlevinin bir parçasıdır; bkz. Geliştirici API'si.
Sorun giderme
- Harita sitede boş. Tarayıcı konsolunu kontrol edin. Google Maps için anahtar sitenizin alan adına ve Maps JavaScript API'sine izin vermelidir. Test için sağlayıcıyı OpenStreetMap olarak değiştirin.
- Adres araması hiçbir şey bulmuyor. Daha kısa bir adres deneyin veya işaretçiyi elle yerleştirin. Google ile anahtar için Geocoding API etkin olmalıdır.
- Enlem ve boylam kaydederken kayboldu. Biri boştu veya aralık dışındaydı; ikisi birlikte atılır.
- Eski Google işaretçisi görünüyor. Map ID değerini Settings › Maps içine girin.
- Mevcut yazıların yeni sütunlarda koordinatı yok. Yardımcı sütunlar bir değer kaydedildiğinde doldurulur; bir alanı Map türüne çevirdikten sonra yazıları yeniden kaydedin.
Hâlâ takıldınız mı? Destek ile iletişime geçin