HTML, CSS ve JavaScript kodu kullanarak bir web sayfasına Google Haritası ekleyebilirsiniz. Bu sayfada, bir web sayfasına nasıl harita ekleneceği ve ardından harita örneğine programatik olarak nasıl erişileceği gösterilmektedir.
gmp-mapöğesini kullanarak harita eklemedivöğesi ve JavaScript kullanarak harita ekleme- Harita örneğinde özellikleri ayarlama ve alma
Genel Bakış
Harita yüklemek için web sayfanızın aşağıdakileri yapması gerekir:
- Bootstrap yükleyici kullanarak Maps JavaScript API'yi yükleyin. API anahtarınız buraya iletilir. HTML veya JavaScript kaynak dosyalarına eklenebilir.
- Haritayı HTML sayfasına ekleyin ve gerekli CSS stillerini ekleyin.
mapskitaplığını yükleyin ve haritayı başlatın.
gmp-map öğesini kullanarak harita ekleme
gmp-map öğesi, bir web sayfasına Google haritası eklemek için tercih edilen yöntemdir.
Bu, web bileşenleri kullanılarak oluşturulan özel bir HTML öğesidir. gmp-map öğesini kullanarak bir web sayfasına harita eklemek için aşağıdaki adımları uygulayın.
Bir HTML sayfasına önyüklemeyi içeren bir
scriptöğesi ekleyin veyascriptöğesi olmadan bir JavaScript ya da TypeScript kaynak dosyasına ekleyin. Bootstrap'i API anahtarınız ve diğer seçeneklerle yapılandırın. Dinamik kitaplık içe aktarma veya doğrudan komut dosyası yükleme seçeneklerinden birini belirleyebilirsiniz. Bu örnekte, bir HTML sayfasına dinamik komut dosyası yükleme bootstrap'inin nasıl ekleneceği gösterilmektedir:<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>
Google Maps JavaScript API'yi yükleme hakkında daha fazla bilgi
HTML sayfasına bir
gmp-mapöğesi ekleyin.centeriçin enlem ve boylam koordinatlarını (gerekli),zoomiçin bir yakınlaştırma değerini (gerekli) ve gerekirse birmap-iddeğerini (Gelişmiş İşaretçiler gibi bazı özellikler için gereklidir) belirtin.
<gmp-map center="-34.397,150.644" zoom="8" mapId="DEMO_MAP_ID"> </gmp-map>
Eksiksiz örnek kod
TypeScript
async function init(): Promise<void> { // Import the needed libraries. await google.maps.importLibrary('maps'); // Access the map. const mapElement = document.querySelector('gmp-map')!; // Access the underlying map object. const innerMap = mapElement.innerMap; console.log({ mapElement, innerMap }); } void init();
JavaScript
async function init() { // Import the needed libraries. await google.maps.importLibrary('maps'); // Access the map. const mapElement = document.querySelector('gmp-map'); // Access the underlying map object. const innerMap = mapElement.innerMap; console.log({ mapElement, innerMap }); } void init();
CSS
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html>
<head>
<title>Simple Map</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
<script>
// prettier-ignore
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "GOOGLE_MAPS_API_KEY"
});
</script>
</head>
<body>
<gmp-map center="-34.397,150.644" zoom="8" mapId="DEMO_MAP_ID">
</gmp-map>
</body>
</html>div öğesi ve JavaScript kullanarak harita ekleme
div öğesini kullanarak bir web sayfasına harita eklemek için aşağıdaki adımları uygulayın.
HTML sayfasına önyükleme içeren bir
scriptöğesi ekleyin veyascriptöğesi olmadan bir JavaScript ya da TypeScript kaynak dosyasına ekleyin. Bootstrap'i API anahtarınız ve diğer seçeneklerle yapılandırın. Dinamik kitaplık içe aktarma veya doğrudan komut dosyası yükleme seçeneklerinden birini belirleyebilirsiniz. Bu örnekte, dinamik önyüklemenin bir HTML sayfasına nasıl ekleneceği gösterilmektedir:<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>
Google Maps JavaScript API'yi yükleme hakkında daha fazla bilgi edinin.
HTML sayfasına, haritayı içerecek bir
divöğesi ekleyin.<div id="map"></div>
CSS'de
html,bodyve#mapöğelerinin yüksekliğini100%olarak ayarlayın. Boşdivöğeleri varsayılan olarak0yüksekliğe ayarlandığından haritanın görünür olması için CSSheightözelliği gereklidir. Yüksek düzey modunda, yüzdeye dayalı yükseklikler üst öğelerden aşağı doğru aktarıldığından#mapöğesinin yanı sırahtmlvebodyöğelerinde deheight: 100%ayarının yapılması, tüm tarayıcılarda görüntü alanından harita kapsayıcısına kadar kesintisiz bir yükseklik devralma zinciri sağlar.html, body, #map { height: 100%; margin: 0; padding: 0; }
JS veya TS dosyasında,
mapskitaplığını yüklemek ve haritayı başlatmak için bir işlev oluşturun.centeriçin enlem ve boylam koordinatlarını,zoomiçin kullanılacak yakınlaştırma seviyesini belirtin. GerekirsemapIdözelliğini kullanarak bir harita kimliği ekleyin. Harita varsayılan olarak raster olacağından "VECTOR" harita seçeneğini belirterek vektör harita isteyin. Vektör harita türü, daha iyi görsel doğruluk sağlamanın yanı sıra haritada eğimi ve yönü kontrol etme olanağı sunduğundan en iyi kullanıcı deneyimi için önerilir.TypeScript
let map: google.maps.Map; async function init(): Promise<void> { // Import the needed libraries const { Map } = await google.maps.importLibrary('maps'); // Create a new map from the div with id="map". map = new Map(document.getElementById('map')!, { center: { lat: -34.397, lng: 150.644 }, zoom: 8, renderingType: 'VECTOR', }); console.log(map); } void init();
JavaScript
let map; async function init() { // Import the needed libraries const { Map } = await google.maps.importLibrary('maps'); // Create a new map from the div with id="map". map = new Map(document.getElementById('map'), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, renderingType: 'VECTOR', }); console.log(map); } void init();
Tam örnek kaynak kodunu inceleyin
TypeScript
let map: google.maps.Map; async function init(): Promise<void> { // Import the needed libraries const { Map } = await google.maps.importLibrary('maps'); // Create a new map from the div with id="map". map = new Map(document.getElementById('map')!, { center: { lat: -34.397, lng: 150.644 }, zoom: 8, renderingType: 'VECTOR', }); console.log(map); } void init();
JavaScript
let map; async function init() { // Import the needed libraries const { Map } = await google.maps.importLibrary('maps'); // Create a new map from the div with id="map". map = new Map(document.getElementById('map'), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, renderingType: 'VECTOR', }); console.log(map); } void init();
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html>
<head>
<title>Simple Map</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
<script>
// prettier-ignore
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "GOOGLE_MAPS_API_KEY"
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>Harita örneğinde özellikleri ayarlama ve alma
Harita örneğiyle etkileşim kurmak için kapsayan öğeyi seçin. Bunu yapmak için kullanılacak kod, gmp-map öğesini mi yoksa div öğesini mi kullandığınıza bağlı olarak değişir.
gmp-map öğesinden harita örneği alma
gmp-map öğesini kullanırken harita örneğini almak için document.querySelector kullanarak mapElement örneğini alın (burada gösterildiği gibi).
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
Ardından mapElement örneğinde özellikleri ayarlayın:
mapElement.zoom = 8;
MapElement sınıfı, dahili olarak Map sınıfını kullanır. Map sınıfına, burada gösterildiği gibi MapElement.innerMap özelliği kullanılarak erişilir:
mapElement.innerMap.setOptions({
mapTypeControl: false,
});
div öğesinden harita örneği alma
div öğesini kullanırken harita örneğini alın ve seçenekleri başlatma sırasında ayarlayın:
map = new google.maps.Map(document.getElementById("map"), {
center: { lat: -34.397, lng: 150.644 },
zoom: 8,
mapTypeControl: false,
});
Başlatma işleminden sonra map örneğindeki seçenekleri burada gösterildiği gibi ayarlayın:
map.setOptions({
zoom: 8,
});