İşaretçiler

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Platform seçin: Android iOS JavaScript

Giriş

İşaretçi, haritadaki bir konumu tanımlar. Varsayılan olarak, bir işaretçi standart bir resim kullanır. İşaretçiler özel resimler gösterebilir. Bu durumda, genellikle "&";simgeleri" olarak adlandırılırlar. İşaretçiler ve simgeler Marker türünde nesnelerdir. İşaretçinin içinde veya işaretçideki setIcon() çağırarak özel bir simge ayarlayabilirsiniz. İşaretçi resmini özelleştirme hakkında daha fazla bilgi edinin.

Genel olarak, işaretçiler bir yer paylaşımı türüdür. Diğer bindirme türleri hakkında bilgi edinmek için Haritada çizim konusuna göz atın.

İşaretçiler, etkileşimli olacak şekilde tasarlanmıştır. Örneğin, varsayılan olarak 'click' etkinlikleri alırlar. Böylece özel bilgilerin gösterildiği bir bilgi penceresini açmak için etkinlik işleyici ekleyebilirsiniz. İşaretçinin draggable özelliğini true olarak ayarlayarak kullanıcıların harita üzerinde bir işaretçiyi taşımasına izin verebilirsiniz. Sürüklenebilir işaretçiler hakkında daha fazla bilgi için aşağıya bakın.

İşaretçi ekleyin

google.maps.Marker oluşturucu, işaretçinin başlangıç özelliklerini belirterek tek bir Marker options nesne değişmez değeri alır.

Aşağıdaki alanlar özellikle önemlidir ve işaretçi oluştururken yaygın olarak ayarlanır:

  • position (gerekli), işaretçinin ilk konumunu tanımlayan bir LatLng belirtir. LatLng almanın bir yolu, Coğrafi Kodlama hizmetini kullanmaktır.
  • map (isteğe bağlı), işaretçinin yerleştirileceği Map öğesini belirtir. Haritayı, işaretçinin yapımı sırasında belirtmezseniz işaretçi oluşturulur ancak haritaya eklenmez (veya haritada görüntülenmez). İşaretçiyi daha sonra işaretçi setMap() yöntemini çağırarak ekleyebilirsiniz.

Aşağıdaki örnekte, Avustralya'nın merkezinde bulunan Uluru'da bir haritaya basit bir işaretçi eklenmiştir:

TypeScript

function initMap(): void {
  const myLatLng = { lat: -25.363, lng: 131.044 };

  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: myLatLng,
    }
  );

  new google.maps.Marker({
    position: myLatLng,
    map,
    title: "Hello World!",
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const myLatLng = { lat: -25.363, lng: 131.044 };
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: myLatLng,
  });

  new google.maps.Marker({
    position: myLatLng,
    map,
    title: "Hello World!",
  });
}

window.initMap = initMap;
Örneği göster

Örneği Dene

Yukarıdaki örnekte, işaretleme özelliği, işaretçi seçeneklerinde yer alan map özelliği kullanılarak işaretçinin yapımında haritaya yerleştirilmiştir. Alternatif olarak, aşağıdaki örnekte gösterildiği gibi işaretleme işaretçisini setMap() yöntemini kullanarak işaretçiyi doğrudan haritaya ekleyebilirsiniz:

var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
  zoom: 4,
  center: myLatlng
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);

var marker = new google.maps.Marker({
    position: myLatlng,
    title:"Hello World!"
});

// To add the marker to the map, call setMap();
marker.setMap(map);

The marker's title will appear as a tooltip.

If you do not wish to pass any Marker options in the marker's constructor, instead pass an empty object {} in the last argument of the constructor.

View example

Remove a marker

To remove a marker from the map, call the setMap() method passing null as the argument.

marker.setMap(null);

Note that the above method does not delete the marker. It removes the marker from the map. If instead you wish to delete the marker, you should remove it from the map, and then set the marker itself to null.

If you wish to manage a set of markers, you should create an array to hold the markers. Using this array, you can then call setMap() on each marker in the array in turn when you need to remove the markers. You can delete the markers by removing them from the map and then setting the array's length to 0, which removes all references to the markers.

View example

Customize a marker image

You can customize the visual appearance of markers by specifying an image file or vector-based icon to display instead of the default Google Maps pushpin icon. You can add text with a marker label, and use complex icons to define clickable regions, and set the stack order of markers.

Markers with image icons

In the most basic case, an icon can specify an image to use instead of the default Google Maps pushpin icon. To specify such an icon, set the marker's icon property to the URL of an image. The Maps JavaScript API will size the icon automatically.

TypeScript

// This example adds a marker to indicate the position of Bondi Beach in Sydney,
// Australia.
function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: { lat: -33, lng: 151 },
    }
  );

  const image =
    "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png";
  const beachMarker = new google.maps.Marker({
    position: { lat: -33.89, lng: 151.274 },
    map,
    icon: image,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example adds a marker to indicate the position of Bondi Beach in Sydney,
// Australia.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: { lat: -33, lng: 151 },
  });
  const image =
    "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png";
  const beachMarker = new google.maps.Marker({
    position: { lat: -33.89, lng: 151.274 },
    map,
    icon: image,
  });
}

window.initMap = initMap;
Örneği görüntüleyin

Örneği Dene

Vektör tabanlı simgeler içeren işaretçiler

İşaretçilerin görsel görünümünü tanımlamak için özel SVG vektör yolları kullanabilirsiniz. Bunu yapmak için işaretçinin icon özelliğine istediğiniz yolla bir Symbol nesne değişmez değeri iletin. SVG yol gösterimini kullanarak özel bir yol tanımlayabilir veya google.maps.SymbolPath içinde önceden tanımlanmış yollardan birini kullanabilirsiniz. Yakınlaştırma düzeyi değiştiğinde işaretçinin doğru şekilde oluşturulması için anchor özelliği gereklidir. İşaretçiler (ve çoklu çizgiler) için vektör tabanlı simgeler oluşturmak üzere Simgeler'i kullanma hakkında daha fazla bilgi edinin.

TypeScript

// This example uses SVG path notation to add a vector-based symbol
// as the icon for a marker. The resulting icon is a marker-shaped
// symbol with a blue fill and no border.

function initMap(): void {
  const center = new google.maps.LatLng(-33.712451, 150.311823);
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 9,
      center: center,
    }
  );

  const svgMarker = {
    path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z",
    fillColor: "blue",
    fillOpacity: 0.6,
    strokeWeight: 0,
    rotation: 0,
    scale: 2,
    anchor: new google.maps.Point(15, 30),
  };

  new google.maps.Marker({
    position: map.getCenter(),
    icon: svgMarker,
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example uses SVG path notation to add a vector-based symbol
// as the icon for a marker. The resulting icon is a marker-shaped
// symbol with a blue fill and no border.
function initMap() {
  const center = new google.maps.LatLng(-33.712451, 150.311823);
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 9,
    center: center,
  });
  const svgMarker = {
    path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z",
    fillColor: "blue",
    fillOpacity: 0.6,
    strokeWeight: 0,
    rotation: 0,
    scale: 2,
    anchor: new google.maps.Point(15, 30),
  };

  new google.maps.Marker({
    position: map.getCenter(),
    icon: svgMarker,
    map: map,
  });
}

window.initMap = initMap;
Örneği göster

Örneği Dene

İşaretçi etiketleri

İşaretçi etiketi, bir işaretçinin içinde görünen harf veya sayıdır. Bu bölümdeki işaretçi resmi, üzerinde #&39;B' harfi bulunan bir işaretçi etiketi görüntüler. İşaretçi etiketini dize ya da dize ve diğer etiket özelliklerini içeren bir MarkerLabel nesnesi olarak belirtebilirsiniz.

İşaretçi oluştururken MarkerOptions nesnesinde bir label özelliği belirtebilirsiniz. Alternatif olarak, etiketi mevcut bir işaretçide ayarlamak için İşaretçi nesnesinde setLabel() çağırabilirsiniz.

Aşağıdaki örnekte, kullanıcı haritayı tıkladığında etiketli işaretçiler görüntülenmektedir:

TypeScript

// In the following example, markers appear when the user clicks on the map.
// Each marker is labeled with a single alphabetical character.
const labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let labelIndex = 0;

function initMap(): void {
  const bangalore = { lat: 12.97, lng: 77.59 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 12,
      center: bangalore,
    }
  );

  // This event listener calls addMarker() when the map is clicked.
  google.maps.event.addListener(map, "click", (event) => {
    addMarker(event.latLng, map);
  });

  // Add a marker at the center of the map.
  addMarker(bangalore, map);
}

// Adds a marker to the map.
function addMarker(location: google.maps.LatLngLiteral, map: google.maps.Map) {
  // Add the marker at the clicked location, and add the next-available label
  // from the array of alphabetical characters.
  new google.maps.Marker({
    position: location,
    label: labels[labelIndex++ % labels.length],
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// In the following example, markers appear when the user clicks on the map.
// Each marker is labeled with a single alphabetical character.
const labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let labelIndex = 0;

function initMap() {
  const bangalore = { lat: 12.97, lng: 77.59 };
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 12,
    center: bangalore,
  });

  // This event listener calls addMarker() when the map is clicked.
  google.maps.event.addListener(map, "click", (event) => {
    addMarker(event.latLng, map);
  });
  // Add a marker at the center of the map.
  addMarker(bangalore, map);
}

// Adds a marker to the map.
function addMarker(location, map) {
  // Add the marker at the clicked location, and add the next-available label
  // from the array of alphabetical characters.
  new google.maps.Marker({
    position: location,
    label: labels[labelIndex++ % labels.length],
    map: map,
  });
}

window.initMap = initMap;
Örneği göster

Örneği Dene

Karmaşık simgeler

Tıklanabilir bölgeleri belirtmek için karmaşık şekiller ve simgelerin diğer bindirmelerle ("yığınlı sıraları") göre nasıl görüneceğini belirtebilirsiniz. Bu şekilde belirtilen simgeler, icon özelliklerini Icon türünde bir nesne olarak ayarlamalıdır.

Icon nesneleri bir resmi tanımlar. Ayrıca, simgenin size özelliğini, simgenin origin özelliğini (örneğin, istediğiniz resim bir imgedeki daha büyük bir resmin parçasıysa) ve simgenin hotspot'unun bulunması gereken yerde (kaynak temelinde) anchor tanımlar.

Özel işaretçiyle bir etiket kullanıyorsanız etiketi, Icon nesnesindeki labelOrigin özelliğiyle konumlandırabilirsiniz.

TypeScript

// The following example creates complex markers to indicate beaches near
// Sydney, NSW, Australia. Note that the anchor is set to (0,32) to correspond
// to the base of the flagpole.

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 10,
      center: { lat: -33.9, lng: 151.2 },
    }
  );

  setMarkers(map);
}

// Data for the markers consisting of a name, a LatLng and a zIndex for the
// order in which these markers should display on top of each other.
const beaches: [string, number, number, number][] = [
  ["Bondi Beach", -33.890542, 151.274856, 4],
  ["Coogee Beach", -33.923036, 151.259052, 5],
  ["Cronulla Beach", -34.028249, 151.157507, 3],
  ["Manly Beach", -33.80010128657071, 151.28747820854187, 2],
  ["Maroubra Beach", -33.950198, 151.259302, 1],
];

function setMarkers(map: google.maps.Map) {
  // Adds markers to the map.

  // Marker sizes are expressed as a Size of X,Y where the origin of the image
  // (0,0) is located in the top left of the image.

  // Origins, anchor positions and coordinates of the marker increase in the X
  // direction to the right and in the Y direction down.
  const image = {
    url: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
    // This marker is 20 pixels wide by 32 pixels high.
    size: new google.maps.Size(20, 32),
    // The origin for this image is (0, 0).
    origin: new google.maps.Point(0, 0),
    // The anchor for this image is the base of the flagpole at (0, 32).
    anchor: new google.maps.Point(0, 32),
  };
  // Shapes define the clickable region of the icon. The type defines an HTML
  // <area> element 'poly' which traces out a polygon as a series of X,Y points.
  // The final coordinate closes the poly by connecting to the first coordinate.
  const shape = {
    coords: [1, 1, 1, 20, 18, 20, 18, 1],
    type: "poly",
  };

  for (let i = 0; i < beaches.length; i++) {
    const beach = beaches[i];

    new google.maps.Marker({
      position: { lat: beach[1], lng: beach[2] },
      map,
      icon: image,
      shape: shape,
      title: beach[0],
      zIndex: beach[3],
    });
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// The following example creates complex markers to indicate beaches near
// Sydney, NSW, Australia. Note that the anchor is set to (0,32) to correspond
// to the base of the flagpole.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 10,
    center: { lat: -33.9, lng: 151.2 },
  });

  setMarkers(map);
}

// Data for the markers consisting of a name, a LatLng and a zIndex for the
// order in which these markers should display on top of each other.
const beaches = [
  ["Bondi Beach", -33.890542, 151.274856, 4],
  ["Coogee Beach", -33.923036, 151.259052, 5],
  ["Cronulla Beach", -34.028249, 151.157507, 3],
  ["Manly Beach", -33.80010128657071, 151.28747820854187, 2],
  ["Maroubra Beach", -33.950198, 151.259302, 1],
];

function setMarkers(map) {
  // Adds markers to the map.
  // Marker sizes are expressed as a Size of X,Y where the origin of the image
  // (0,0) is located in the top left of the image.
  // Origins, anchor positions and coordinates of the marker increase in the X
  // direction to the right and in the Y direction down.
  const image = {
    url: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
    // This marker is 20 pixels wide by 32 pixels high.
    size: new google.maps.Size(20, 32),
    // The origin for this image is (0, 0).
    origin: new google.maps.Point(0, 0),
    // The anchor for this image is the base of the flagpole at (0, 32).
    anchor: new google.maps.Point(0, 32),
  };
  // Shapes define the clickable region of the icon. The type defines an HTML
  // <area> element 'poly' which traces out a polygon as a series of X,Y points.
  // The final coordinate closes the poly by connecting to the first coordinate.
  const shape = {
    coords: [1, 1, 1, 20, 18, 20, 18, 1],
    type: "poly",
  };

  for (let i = 0; i < beaches.length; i++) {
    const beach = beaches[i];

    new google.maps.Marker({
      position: { lat: beach[1], lng: beach[2] },
      map,
      icon: image,
      shape: shape,
      title: beach[0],
      zIndex: beach[3],
    });
  }
}

window.initMap = initMap;
Örneği göster

Örneği Dene

MarkerImage nesne Icon türüne dönüştürülüyor

Maps JavaScript API'nin 3.10 sürümüne kadar, karmaşık simgeler MarkerImage nesneleri olarak tanımlandı. Sürüm 3.10'da eklenen Icon nesne değişmez değeri, sürüm 3.11'den itibaren MarkerImage öğesinin yerini almıştır. Icon nesne değişmez değeri, MarkerImage ile aynı parametreleri destekler. Bu sayede, oluşturucuyu kaldırarak, önceki parametreleri {}' paketine dahil ederek ve her bir parametrenin adlarını ekleyerek bir MarkerImage öğesini Icon özelliğine kolayca dönüştürebilirsiniz. Örnek:

var image = new google.maps.MarkerImage(
    place.icon,
    new google.maps.Size(71, 71),
    new google.maps.Point(0, 0),
    new google.maps.Point(17, 34),
    new google.maps.Size(25, 25));

becomes

var image = {
  url: place.icon,
  size: new google.maps.Size(71, 71),
  origin: new google.maps.Point(0, 0),
  anchor: new google.maps.Point(17, 34),
  scaledSize: new google.maps.Size(25, 25)
};

Optimize markers

Optimization enhances performance by rendering many markers as a single static element. This is useful in cases where a large number of markers is required. By default, the Maps JavaScript API will decide whether a marker will be optimized. When there is a large number of markers, the Maps JavaScript API will attempt to render markers with optimization. Not all Markers can be optimized; in some situations, the Maps JavaScript API may need to render Markers without optimization. Disable optimized rendering for animated GIFs or PNGs, or when each marker must be rendered as a separate DOM element. The following example shows creating an optimized marker:

var marker = new google.maps.Marker({
    position: myLatlng,
    title:"Hello World!",
    optimized: true 
});

İşaretçiyi erişilebilir hale getirin

Tıklama dinleyici etkinliği ekleyerek ve optimized özelliğini false olarak ayarlayarak bir işaretçiyi erişilebilir hale getirebilirsiniz. Tıklama dinleyici, işaretçide klavyeyle gezinme, ekran okuyucular vb. ile erişilebilen düğme semantiğine neden olur. İşaretçi için erişilebilir metin sunmak üzere title seçeneğini kullanın.

Aşağıdaki örnekte, sekmeye basıldığında ilk işaretçi odaklanır. Daha sonra, işaretçiler arasında geçiş yapmak için ok tuşlarını kullanabilirsiniz. Diğer harita kontrollerinde ilerlemeye devam etmek için sekmeye tekrar basın. Bir işaretleyicinin bilgi penceresi varsa işaretçiyi tıklayarak veya işaretçi seçildiğinde Enter tuşuna ya da boşluk çubuğuna basarak pencereyi açabilirsiniz. Bilgi penceresi kapandığında odak, ilgili işaretçiye döner.

TypeScript

// The following example creates five accessible and
// focusable markers.

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 12,
      center: { lat: 34.84555, lng: -111.8035 },
    }
  );

  // Set LatLng and title text for the markers. The first marker (Boynton Pass)
  // receives the initial focus when tab is pressed. Use arrow keys to
  // move between markers; press tab again to cycle through the map controls.
  const tourStops: [google.maps.LatLngLiteral, string][] = [
    [{ lat: 34.8791806, lng: -111.8265049 }, "Boynton Pass"],
    [{ lat: 34.8559195, lng: -111.7988186 }, "Airport Mesa"],
    [{ lat: 34.832149, lng: -111.7695277 }, "Chapel of the Holy Cross"],
    [{ lat: 34.823736, lng: -111.8001857 }, "Red Rock Crossing"],
    [{ lat: 34.800326, lng: -111.7665047 }, "Bell Rock"],
  ];

  // Create an info window to share between markers.
  const infoWindow = new google.maps.InfoWindow();

  // Create the markers.
  tourStops.forEach(([position, title], i) => {
    const marker = new google.maps.Marker({
      position,
      map,
      title: `${i + 1}. ${title}`,
      label: `${i + 1}`,
      optimized: false,
    });

    // Add a click listener for each marker, and set up the info window.
    marker.addListener("click", () => {
      infoWindow.close();
      infoWindow.setContent(marker.getTitle());
      infoWindow.open(marker.getMap(), marker);
    });
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// The following example creates five accessible and
// focusable markers.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 12,
    center: { lat: 34.84555, lng: -111.8035 },
  });
  // Set LatLng and title text for the markers. The first marker (Boynton Pass)
  // receives the initial focus when tab is pressed. Use arrow keys to
  // move between markers; press tab again to cycle through the map controls.
  const tourStops = [
    [{ lat: 34.8791806, lng: -111.8265049 }, "Boynton Pass"],
    [{ lat: 34.8559195, lng: -111.7988186 }, "Airport Mesa"],
    [{ lat: 34.832149, lng: -111.7695277 }, "Chapel of the Holy Cross"],
    [{ lat: 34.823736, lng: -111.8001857 }, "Red Rock Crossing"],
    [{ lat: 34.800326, lng: -111.7665047 }, "Bell Rock"],
  ];
  // Create an info window to share between markers.
  const infoWindow = new google.maps.InfoWindow();

  // Create the markers.
  tourStops.forEach(([position, title], i) => {
    const marker = new google.maps.Marker({
      position,
      map,
      title: `${i + 1}. ${title}`,
      label: `${i + 1}`,
      optimized: false,
    });

    // Add a click listener for each marker, and set up the info window.
    marker.addListener("click", () => {
      infoWindow.close();
      infoWindow.setContent(marker.getTitle());
      infoWindow.open(marker.getMap(), marker);
    });
  });
}

window.initMap = initMap;
Örneği göster

Örneği Dene

İşaretçiyi canlandırma

İşaretçileri, çeşitli hareketlerde dinamik hareket gösterecek şekilde animasyon uygulayabilirsiniz. Bir işaretçinin nasıl etkinleştirileceğini belirtmek için google.maps.Animation türündeki işaretçi animation özelliğini kullanın. Aşağıdaki Animation değerleri desteklenir:

  • DROP, işaretçinin haritaya ilk yerleştirildiğinde haritanın üst kısmından son konumuna bırakması gerektiğini belirtir. İşaretçi dinlenmeye başladığında animasyon durur ve animation null özelliğine döner. Bu animasyon türü genellikle, Marker oluşturulurken belirlenir.
  • BOUNCE, işaretçinin yerinde sıçraması gerektiğini gösterir. Zıplayan işaretçi, animation özelliği açıkça null olarak ayarlanana kadar geri dönmeye devam eder.

Marker nesnesinde setAnimation() yöntemini çağırarak mevcut bir işaretçide animasyon başlatabilirsiniz.

TypeScript

// The following example creates a marker in Stockholm, Sweden using a DROP
// animation. Clicking on the marker will toggle the animation between a BOUNCE
// animation and no animation.

let marker: google.maps.Marker;

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 13,
      center: { lat: 59.325, lng: 18.07 },
    }
  );

  marker = new google.maps.Marker({
    map,
    draggable: true,
    animation: google.maps.Animation.DROP,
    position: { lat: 59.327, lng: 18.067 },
  });
  marker.addListener("click", toggleBounce);
}

function toggleBounce() {
  if (marker.getAnimation() !== null) {
    marker.setAnimation(null);
  } else {
    marker.setAnimation(google.maps.Animation.BOUNCE);
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// The following example creates a marker in Stockholm, Sweden using a DROP
// animation. Clicking on the marker will toggle the animation between a BOUNCE
// animation and no animation.
let marker;

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 13,
    center: { lat: 59.325, lng: 18.07 },
  });

  marker = new google.maps.Marker({
    map,
    draggable: true,
    animation: google.maps.Animation.DROP,
    position: { lat: 59.327, lng: 18.067 },
  });
  marker.addListener("click", toggleBounce);
}

function toggleBounce() {
  if (marker.getAnimation() !== null) {
    marker.setAnimation(null);
  } else {
    marker.setAnimation(google.maps.Animation.BOUNCE);
  }
}

window.initMap = initMap;
Örneği göster

Örneği Dene

Çok sayıda işaretçiniz varsa bunların hepsini tek seferde haritaya bırakmak isteyebilirsiniz. İşaretçilerinizi arasındaki boşlukları ayarlamak için aşağıdaki gibi bir kalıp kullanarak setTimeout() yönergesini kullanabilirsiniz:

function drop() {
  for (var i =0; i < markerArray.length; i++) {
    setTimeout(function() {
      addMarkerMethod();
    }, i * 200);
  }
}

Örneği göster

İşaretçiyi sürüklenebilir yapma

Kullanıcıların bir işaretçiyi haritada farklı bir konuma sürüklemesine izin vermek için işaretçi seçeneklerinde draggable öğesini true olarak ayarlayın.

var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
  zoom: 4,
  center: myLatlng
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);

// Place a draggable marker on the map
var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    draggable:true,
    title:"Drag me!"
});

Diğer İşaretçileri Özelleştirme

Tamamen özelleştirilmiş bir işaretçi için Özelleştirilmiş pop-up örneğine bakın.

İşaretçi sınıfının diğer uzantıları, işaretçi kümeleme ve yönetimi ve yer paylaşımı özelleştirmesi için açık kaynak kitaplıklara bakın.