Haritanıza çeşitli şekiller ekleyebilirsiniz. Şekil, haritadaki bir nesnedir bir enlem/boylam koordinatına bağlıdır. Aşağıdaki şekiller kullanılabilir: çizgiler, poligonlar, daireler ve dikdörtgenler. Şekillerinizi yapılandırarak da kullanıcıların bunları düzenleyebilir veya sürükleyebilirsiniz.
Çoklu çizgiler
Haritanıza bir çizgi çizmek için çoklu çizgi kullanın. İlgili içeriği oluşturmak için kullanılan
Polyline
sınıfı, bağlı hattın doğrusal yer paylaşımını tanımlar
ve segmentleri görebilirsiniz. Polyline
nesnesi,
LatLng
konuma gider ve
sıralı bir şekilde birbirine bağlayabilirsiniz.
Çoklu çizgi ekleme
Polyline
oluşturucusu,
PolylineOptions
, LatLng
değerini belirtiyor
çizginin koordinatlarını ve çoklu çizginin konumunu ayarlamak için bir dizi stil
yardımcı olabilir.
Polyline
nesne, belirli bir konum üzerinde bir dizi düz segmentler olarak
tıklayın. Fırça için özel renkler, ağırlıklar ve opaklıklar belirtebilirsiniz
olduğunda PolylineOptions
içindeki satırın
isterseniz bu özellikleri inşaattan sonra değiştirebilirsiniz.
Çoklu çizgi aşağıdaki çizgi stillerini destekler:
strokeColor
, biçimde onaltılık HTML rengini belirtir"#FFFFFF"
.Polyline
sınıfı desteklemiyor renklendirir.strokeOpacity
, Çizginin opaklığını belirlemek için0.0
ve1.0
rengi. Varsayılan değer:1.0
.strokeWeight
, çizginin genişliğini piksel cinsinden belirtir.
Çoklu çizginin editable
özelliği, kullanıcıların
şekli düzenleyin. Kullanıcı tarafından düzenlenebilir şekillere bakın
bölümüne göz atın. Benzer şekilde, draggable
özelliğini
satırı sürüklemesine yardımcı olur.
TypeScript
// This example creates a 2-pixel-wide red polyline showing the path of // the first trans-Pacific flight between Oakland, CA, and Brisbane, // Australia which was made by Charles Kingsford Smith. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 3, center: { lat: 0, lng: -180 }, mapTypeId: "terrain", } ); const flightPlanCoordinates = [ { lat: 37.772, lng: -122.214 }, { lat: 21.291, lng: -157.821 }, { lat: -18.142, lng: 178.431 }, { lat: -27.467, lng: 153.027 }, ]; const flightPath = new google.maps.Polyline({ path: flightPlanCoordinates, geodesic: true, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, }); flightPath.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates a 2-pixel-wide red polyline showing the path of // the first trans-Pacific flight between Oakland, CA, and Brisbane, // Australia which was made by Charles Kingsford Smith. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 3, center: { lat: 0, lng: -180 }, mapTypeId: "terrain", }); const flightPlanCoordinates = [ { lat: 37.772, lng: -122.214 }, { lat: 21.291, lng: -157.821 }, { lat: -18.142, lng: 178.431 }, { lat: -27.467, lng: 153.027 }, ]; const flightPath = new google.maps.Polyline({ path: flightPlanCoordinates, geodesic: true, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, }); flightPath.setMap(map); } window.initMap = initMap;.
Örneği Deneyin
Çoklu çizgiyi kaldırma
Bir çoklu çizgiyi haritadan kaldırmak için setMap()
yöntemini kullanın
bağımsız değişken olarak null
iletiliyor. Aşağıdaki örnekte,
flightPath
bir çoklu çizgi nesnesi:
flightPath.setMap(null);
Yukarıdaki yöntemin çoklu çizgiyi silmediğini unutmayın. Şunları kaldırır:
çoklu çizgiyi seçin. Bunun yerine çoklu çizgiyi silmek isterseniz
bunu haritadan kaldırmanız ve
çoklu çizgisini null
olarak ayarlayın.
Çoklu çizgiyi inceleme
Çoklu çizgi, bir dizi koordinatın bir dizi
LatLng
nesne. Bu koordinatlar çizginin yolunu belirler.
Koordinatları almak için getPath()
numaralı telefonu arayın.
MVCArray
türünde bir dizi döndürür. Şunları yapabilirsiniz:
aşağıdaki işlemleri kullanarak diziyi değiştirebilir ve inceleyebilirsiniz:
getAt()
, belirli bir düzeydeLatLng
değerini döndürür tabanlı bir dizin değeridir.insertAt()
, başarılı birLatLng
ekler dizine ekler. Herhangi bir söz konusu dizin değerindeki mevcut koordinatlar ileriye taşınır.removeAt()
, belirli bir düzeydeLatLng
kaldırır tabanlı bir dizin değeridir.
TypeScript
// This example creates an interactive map which constructs a polyline based on // user clicks. Note that the polyline only appears once its path property // contains two LatLng coordinates. let poly: google.maps.Polyline; let map: google.maps.Map; function initMap(): void { map = new google.maps.Map(document.getElementById("map") as HTMLElement, { zoom: 7, center: { lat: 41.879, lng: -87.624 }, // Center the map on Chicago, USA. }); poly = new google.maps.Polyline({ strokeColor: "#000000", strokeOpacity: 1.0, strokeWeight: 3, }); poly.setMap(map); // Add a listener for the click event map.addListener("click", addLatLng); } // Handles click events on a map, and adds a new point to the Polyline. function addLatLng(event: google.maps.MapMouseEvent) { const path = poly.getPath(); // Because path is an MVCArray, we can simply append a new coordinate // and it will automatically appear. path.push(event.latLng as google.maps.LatLng); // Add a new marker at the new plotted point on the polyline. new google.maps.Marker({ position: event.latLng, title: "#" + path.getLength(), map: map, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates an interactive map which constructs a polyline based on // user clicks. Note that the polyline only appears once its path property // contains two LatLng coordinates. let poly; let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { zoom: 7, center: { lat: 41.879, lng: -87.624 }, // Center the map on Chicago, USA. }); poly = new google.maps.Polyline({ strokeColor: "#000000", strokeOpacity: 1.0, strokeWeight: 3, }); poly.setMap(map); // Add a listener for the click event map.addListener("click", addLatLng); } // Handles click events on a map, and adds a new point to the Polyline. function addLatLng(event) { const path = poly.getPath(); // Because path is an MVCArray, we can simply append a new coordinate // and it will automatically appear. path.push(event.latLng); // Add a new marker at the new plotted point on the polyline. new google.maps.Marker({ position: event.latLng, title: "#" + path.getLength(), map: map, }); } window.initMap = initMap;.
Örneği Deneyin
Çoklu çizgiyi özelleştirin
Vektör tabanlı resimleri bir çoklu çizgiye semboller biçiminde ekleyebilirsiniz. Şununla
PolylineOptions
sınıfını kullandığınızda
haritanızdaki çoklu çizgilerin görünümü ve verdiği izlenim üzerinde çok yüksek düzeyde denetime sahip olursunuz.
Bilgi için Semboller bölümüne bakın
oklar hakkında,
kesik çizgili,
özel simgeler
ve animasyonlu simgeler.
Poligonlar
Poligon, kapalı bir yol (veya döngü) ile çevrili bir alanı temsil eder;
bir dizi koordinatla tanımlanır.
Polygon
nesneleri, Polyline
nesneye benziyor
sıralı olarak bir dizi koordinattan oluşmalarıdır.
Poligonlar bir çizgi ve dolgu ile çizilir. Özel renkler tanımlayabilir,
poligonun (fırça) kenarının ağırlıkları ve opaklıkları ile özelleştirilebilir
renk ve opaklıklar (dolgu) sağlar. Renkler:
onaltılık HTML biçiminde belirtilir. Renk adları desteklenmiyor.
Polygon
nesneleri, aşağıdakiler de dahil olmak üzere karmaşık şekilleri açıklayabilir:
- Tek bir poligonla tanımlanmış bitişik olmayan birden çok alan.
- Delik bulunan alanlar.
- Bir veya daha fazla alanın kesişimleri.
Karmaşık bir şekli tanımlamak için birden çok yolu olan bir poligon kullanırsınız.
Not: Veri katmanı, reklam sunmanın harika bir seçenektir. Poligon sarmalamanızı sizin için hallederek daha kolay kullanarak delikli çokgenler çizebilirsiniz. Bkz. projenin Veri katmanı.
Poligon ekle
Bir poligonal alan birkaç ayrı yol içerebileceği için,
Polygon
nesnesinin paths
özelliği
her biri MVCArray
türünde bir dizi dizisi. Her dizi bir
sıralı LatLng
koordinatlarının ayrı bir dizisi.
Tek bir yoldan oluşan basit poligonlar için,
tek bir dizi kullanarak bir Polygon
oluşturun
LatLng
koordinatları. Maps JavaScript API,
basit diziyi bir dizi şeklinde düzenleyebilirsiniz.
paths
mülkü arasında. API,
Tek yoldan oluşan poligonlar için getPath()
yöntemi.
Poligonun editable
özelliği, kullanıcıların düzenleme izni olup olmadığını belirler
şekli. Aşağıdaki kullanıcı tarafından düzenlenebilir şekillere bakın.
Benzer şekilde, draggable
özelliğini kullanıcıların şunları yapmasına izin verecek şekilde ayarlayabilirsiniz:
şekli sürükleyin.
TypeScript
// This example creates a simple polygon representing the Bermuda Triangle. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", } ); // Define the LatLng coordinates for the polygon's path. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, { lat: 25.774, lng: -80.19 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates a simple polygon representing the Bermuda Triangle. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon's path. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, { lat: 25.774, lng: -80.19 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } window.initMap = initMap;.
Örneği Deneyin
Poligon otomatik tamamlama
Yukarıdaki örnekte Polygon
, dört grup etiketten oluşur.
LatLng
koordinatları, ancak ilk ve son kümenin
döngüyü tamamlamak için aynı konumu tanımlamalısınız. Ancak pratikte
çokgenler kapalı alanları tanımladığından, test için kullanılacak son
koordinat grubudur. Maps JavaScript API otomatik olarak tamamlanacaktır
çizgi çizerek son konumu ilk konuma bağlayan bir çizgi çizerek poligona
konumdur.
Aşağıdaki örnek, öncekiyle aynıdır, ancak yine de
son LatLng
atlanır:
örneği inceleyin.
Poligon kaldırma
Bir poligonu haritadan kaldırmak için setMap()
yöntemini çağırın
bağımsız değişken olarak null
iletiliyor. Aşağıdaki örnekte,
bermudaTriangle
bir poligon nesnesi:
bermudaTriangle.setMap(null);
Yukarıdaki yöntemin poligonu silmediğini unutmayın. Şunları kaldırır:
poligonu haritadan çıkarır. Bunun yerine çokgeni silmek isterseniz
bunu haritadan kaldırmanız ve
çokgenin kendisini null
öğesine dönüştürür.
Poligonu inceleme
Çokgenler, koordinat dizilerini dizi olarak belirtir
her dizinin MVCArray
türünde olduğu diziler. Her biri
"yaprak" dizi, LatLng
koordinat dizisidir
tek bir yol belirtmenizi sağlar. Bu koordinatları almak için
Polygon
nesnesinin getPaths()
yöntemi.
dizisi, değiştirmeniz gereken bir MVCArray
Şu işlemleri kullanarak dosyayı inceleyin:
getAt()
, belirli bir düzeydeLatLng
değerini döndürür tabanlı bir dizin değeridir.insertAt()
, başarılı birLatLng
ekler dizine ekler. Herhangi bir söz konusu dizin değerindeki mevcut koordinatlar ileriye taşınır.removeAt()
, belirli bir düzeydeLatLng
kaldırır tabanlı bir dizin değeridir.
TypeScript
// This example creates a simple polygon representing the Bermuda Triangle. // When the user clicks on the polygon an info window opens, showing // information about the polygon's coordinates. let map: google.maps.Map; let infoWindow: google.maps.InfoWindow; function initMap(): void { map = new google.maps.Map(document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon. const triangleCoords: google.maps.LatLngLiteral[] = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); // Add a listener for the click event. bermudaTriangle.addListener("click", showArrays); infoWindow = new google.maps.InfoWindow(); } function showArrays(event: any) { // Since this polygon has only one path, we can call getPath() to return the // MVCArray of LatLngs. // @ts-ignore const polygon = this as google.maps.Polygon; const vertices = polygon.getPath(); let contentString = "<b>Bermuda Triangle polygon</b><br>" + "Clicked location: <br>" + event.latLng.lat() + "," + event.latLng.lng() + "<br>"; // Iterate over the vertices. for (let i = 0; i < vertices.getLength(); i++) { const xy = vertices.getAt(i); contentString += "<br>" + "Coordinate " + i + ":<br>" + xy.lat() + "," + xy.lng(); } // Replace the info window's content and position. infoWindow.setContent(contentString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates a simple polygon representing the Bermuda Triangle. // When the user clicks on the polygon an info window opens, showing // information about the polygon's coordinates. let map; let infoWindow; function initMap() { map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); // Add a listener for the click event. bermudaTriangle.addListener("click", showArrays); infoWindow = new google.maps.InfoWindow(); } function showArrays(event) { // Since this polygon has only one path, we can call getPath() to return the // MVCArray of LatLngs. // @ts-ignore const polygon = this; const vertices = polygon.getPath(); let contentString = "<b>Bermuda Triangle polygon</b><br>" + "Clicked location: <br>" + event.latLng.lat() + "," + event.latLng.lng() + "<br>"; // Iterate over the vertices. for (let i = 0; i < vertices.getLength(); i++) { const xy = vertices.getAt(i); contentString += "<br>" + "Coordinate " + i + ":<br>" + xy.lat() + "," + xy.lng(); } // Replace the info window's content and position. infoWindow.setContent(contentString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } window.initMap = initMap;.
Örneği Deneyin
Poligonda delik açma
Bir poligon içinde boş bir alan oluşturmak için iki yol oluşturmanız gerekir: iç içe geçmiştir. Deliği oluşturmak için, iç yüzeyi tanımlayan koordinatlar yolu, dış yolu tanımlayanların tersinde olmalıdır. Örneğin, dış yolun koordinatları saat yönündeyse iç yol saat yönünün tersine olmalıdır.
Not: Veri katmanı, katmanın iç ve dış yolları kullanarak delikli çokgenler çizmenizi kolaylaştırır. Bkz. belgeler seçin.
Aşağıdaki örnekte iki yolu olan bir poligon çiziyor. Yolun iç yolu dış yolun tersi yönünde geçerlidir.
TypeScript
// This example creates a triangular polygon with a hole in it. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, } ); // Define the LatLng coordinates for the polygon's outer path. const outerCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Define the LatLng coordinates for the polygon's inner path. // Note that the points forming the inner path are wound in the // opposite direction to those in the outer path, to form the hole. const innerCoords = [ { lat: 28.745, lng: -70.579 }, { lat: 29.57, lng: -67.514 }, { lat: 27.339, lng: -66.668 }, ]; // Construct the polygon, including both paths. const bermudaTriangle = new google.maps.Polygon({ paths: [outerCoords, innerCoords], strokeColor: "#FFC107", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FFC107", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates a triangular polygon with a hole in it. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, }); // Define the LatLng coordinates for the polygon's outer path. const outerCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Define the LatLng coordinates for the polygon's inner path. // Note that the points forming the inner path are wound in the // opposite direction to those in the outer path, to form the hole. const innerCoords = [ { lat: 28.745, lng: -70.579 }, { lat: 29.57, lng: -67.514 }, { lat: 27.339, lng: -66.668 }, ]; // Construct the polygon, including both paths. const bermudaTriangle = new google.maps.Polygon({ paths: [outerCoords, innerCoords], strokeColor: "#FFC107", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FFC107", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } window.initMap = initMap;.
Örneği Deneyin
Dikdörtgenler
Genel bir Polygon
sınıfına ek olarak, Google Haritalar
JavaScript API,
Rectangle
nesneleri kullanarak oluşturma işlemini basitleştirebilir.
Dikdörtgen ekleyin
Rectangle
, aşağıda belirtilen öğelerdeki Polygon
ile benzerdir:
kenarları için özel renkler, ağırlıklar ve opaklıklar tanımlayabileceğinizden
dikdörtgen (fırça) ve içindeki alan için özel renkler ile
dikdörtgen (dolgu). Renkler, onaltılık sayısal HTML'de belirtilmelidir
stiline sahip.
Polygon
işlevinin aksine, paths
öğesini siz tanımlamazsınız.
Rectangle
için. Dikdörtgenin yerine bounds
özel bir
Dikdörtgen için google.maps.LatLngBounds
.
Dikdörtgenin editable
özelliği,
kullanıcılar şekli düzenleyebilir. Bkz. kullanıcı tarafından düzenlenebilir
şekillere bakın. Benzer şekilde, draggable
özelliğini de ayarlayabilirsiniz.
Böylece kullanıcıların dikdörtgeni sürüklemesine olanak tanır.
TypeScript
// This example adds a red rectangle to a map. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 11, center: { lat: 33.678, lng: -116.243 }, mapTypeId: "terrain", } ); const rectangle = new google.maps.Rectangle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: { north: 33.685, south: 33.671, east: -116.234, west: -116.251, }, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example adds a red rectangle to a map. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: { lat: 33.678, lng: -116.243 }, mapTypeId: "terrain", }); const rectangle = new google.maps.Rectangle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: { north: 33.685, south: 33.671, east: -116.234, west: -116.251, }, }); } window.initMap = initMap;.
Örneği Deneyin
Aşağıdaki kod, kullanıcı yakınlaştırmayı her değiştirdiğinde bir dikdörtgen oluşturur tıklayın. Dikdörtgenin boyutunu görüntü alanı belirler.
TypeScript
// This example creates a rectangle based on the viewport // on any 'zoom-changed' event. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 11, center: { lat: 40.74852, lng: -73.981687 }, mapTypeId: "terrain", } ); const rectangle = new google.maps.Rectangle(); map.addListener("zoom_changed", () => { // Get the current bounds, which reflect the bounds before the zoom. rectangle.setOptions({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: map.getBounds() as google.maps.LatLngBounds, }); }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
// This example creates a rectangle based on the viewport // on any 'zoom-changed' event. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: { lat: 40.74852, lng: -73.981687 }, mapTypeId: "terrain", }); const rectangle = new google.maps.Rectangle(); map.addListener("zoom_changed", () => { // Get the current bounds, which reflect the bounds before the zoom. rectangle.setOptions({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: map.getBounds(), }); }); } window.initMap = initMap;.
Örneği Deneyin
Dikdörtgeni kaldırma
Bir dikdörtgeni haritadan kaldırmak için setMap()
yöntemini çağırın
bağımsız değişken olarak null
iletiliyor.
rectangle.setMap(null);
Yukarıdaki yöntemin dikdörtgeni silmediğini unutmayın. Şunları kaldırır:
resimdeki dikdörtgeni çizin. Bunun yerine dikdörtgeni silmek isterseniz
bunu haritadan kaldırmanız ve
dikdörtgeni null
olarak ayarlayın.
Daireler
Genel Polygon
sınıfına ek olarak, Google Haritalar
JavaScript API,
Circle
nesneleri kullanarak oluşturma işlemini basitleştirebilir.
Çevre ekleyin
Circle
, Polygon
görünümüne benzerdir. Çünkü
dairenin kenarı için özel renkleri, ağırlıkları ve opaklıkları (
çizgi) ve dairenin içindeki alan için özel renkler ile opaklıklar (
ekleyin). Renkler, onaltılık sayısal HTML stiliyle belirtilmelidir.
Polygon
işlevinin aksine, paths
öğesini siz tanımlamazsınız.
Circle
için. Bunun yerine bir dairede
özellikleri içerir:
center
,google.maps.LatLng
özelliğini belirtiyor dairenin merkezinden uzaklaştırın.radius
, dairenin yarıçapını metre cinsinden belirtir.
Çevrenin editable
özelliği, kullanıcıların düzenleme izni olup olmadığını belirtir
şekli. Aşağıdaki kullanıcı tarafından düzenlenebilir şekillere bakın.
Benzer şekilde, draggable
özelliğini
daireyi sürüklemelerini sağlar.
TypeScript
// This example creates circles on the map, representing populations in North // America. // First, create an object containing LatLng and population for each city. interface City { center: google.maps.LatLngLiteral; population: number; } const citymap: Record<string, City> = { chicago: { center: { lat: 41.878, lng: -87.629 }, population: 2714856, }, newyork: { center: { lat: 40.714, lng: -74.005 }, population: 8405837, }, losangeles: { center: { lat: 34.052, lng: -118.243 }, population: 3857799, }, vancouver: { center: { lat: 49.25, lng: -123.1 }, population: 603502, }, }; function initMap(): void { // Create the map. const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: 37.09, lng: -95.712 }, mapTypeId: "terrain", } ); // Construct the circle for each value in citymap. // Note: We scale the area of the circle based on the population. for (const city in citymap) { // Add the circle for this city to the map. const cityCircle = new google.maps.Circle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, center: citymap[city].center, radius: Math.sqrt(citymap[city].population) * 100, }); } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;.
JavaScript
const citymap = { chicago: { center: { lat: 41.878, lng: -87.629 }, population: 2714856, }, newyork: { center: { lat: 40.714, lng: -74.005 }, population: 8405837, }, losangeles: { center: { lat: 34.052, lng: -118.243 }, population: 3857799, }, vancouver: { center: { lat: 49.25, lng: -123.1 }, population: 603502, }, }; function initMap() { // Create the map. const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: 37.09, lng: -95.712 }, mapTypeId: "terrain", }); // Construct the circle for each value in citymap. // Note: We scale the area of the circle based on the population. for (const city in citymap) { // Add the circle for this city to the map. const cityCircle = new google.maps.Circle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, center: citymap[city].center, radius: Math.sqrt(citymap[city].population) * 100, }); } } window.initMap = initMap;.
Örneği Deneyin
Çevre kaldırma
Bir çevreyi haritadan kaldırmak için setMap()
yöntemini çağırın
bağımsız değişken olarak null
iletiliyor.
circle.setMap(null);
Yukarıdaki yöntemin çevreyi silmediğini unutmayın. Şunları kaldırır:
şekli seçin. Bunun yerine çevreyi silmek isterseniz
bunu haritadan kaldırmanız ve
çevresini null
olarak ayarlayın.
Kullanıcı tarafından düzenlenebilir ve sürüklenebilir şekiller
Bir şekli düzenlenebilir hale getirdiğinizde şekle tutma yerleri eklenir ve kullanıcılar bunları kullanabilir kullanarak şekli doğrudan harita üzerinde yeniden konumlandırabilir, yeniden şekillendirebilir ve yeniden boyutlandırabilirsiniz. Ayrıca transkriptinizi kullanıcıların haritada farklı bir yere taşıyabilmesi için şekli sürüklenebilir hale getirebilirsiniz.
Nesnede kullanıcı tarafından yapılan değişiklikler oturumlar arasında kalıcı olmaz. Şu durumda: Kullanıcının düzenlemelerini kaydetmek istiyorsanız, bilgileri yakalamalı ve saklamalısınız kendiniz.
Şekli düzenlenebilir hale getirme
Herhangi bir şekil (çoklu çizgiler, poligonlar, daireler ve dikdörtgenler) ayarlanabilir
kullanıcı tarafından düzenlenebilir, editable
true
şeklin seçeneklerini de kullanabilirsiniz.
var bounds = { north: 44.599, south: 44.490, east: -78.443, west: -78.649 }; // Define a rectangle and set its editable property to true. var rectangle = new google.maps.Rectangle({ bounds: bounds, editable: true });
Şekli sürüklenebilir yapma
Varsayılan olarak, haritada çizilen bir şeklin konumu sabitlenir. İzin vermek için
bir şekli haritada farklı bir yere sürüklemesini,
Şekil seçeneklerinde draggable
- true
.
var redCoords = [ {lat: 25.774, lng: -80.190}, {lat: 18.466, lng: -66.118}, {lat: 32.321, lng: -64.757} ]; // Construct a draggable red triangle with geodesic set to true. new google.maps.Polygon({ map: map, paths: redCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, draggable: true, geodesic: true });
Bir poligon veya çoklu çizgide sürüklemeyi etkinleştirirken, şunları da göz önünde bulundurmalısınız:
geodesic
ayarlayarak poligon veya çoklu çizgi jeodeziklerini yapma
özelliğini true
olarak ayarlayın.
Bir jeodezik poligon taşındıktan sonra gerçek coğrafi şeklini korur kuzeye veya güneye doğru hareket ettiğinde çokgenin bozuk görünmesine neden olur. Merkatör projeksiyonu. Jeodezik olmayan poligonların başlangıçtaki konumları her zaman ekranda daha görünür.
Jeodezik bir çoklu çizgide, çoklu çizginin segmentleri Dünya'nın dünyanın farklı yerlerinde olduğu varsayıldığında, Dünya yüzeyindeki iki nokta arasındaki en kısa yol Merkatör projeksiyonunda düz çizgilerin aksine bir küre.
Koordinat sistemleri hakkında daha fazla bilgi edinmek için harita ve parça koordinatlar.
Aşağıdaki haritada hemen hemen aynı boyutta iki üçgen
seçin. Kırmızı üçgenin geodesic
özelliği
true
. Kuzeye doğru hareket ettikçe şeklinin nasıl değiştiğine dikkat edin.
Düzenleme etkinliklerini dinleme
Bir şekil düzenlendiğinde düzenleme tamamlandıktan sonra bir etkinlik tetiklenir. Bu etkinlikleri aşağıda listelenmiştir.
Şekil | Etkinlikler |
---|---|
Daire |
radius_changed center_changed
|
Poligon |
insert_at remove_at set_at
İşleyici, poligonun yolu üzerinde ayarlanmalıdır. Çokgen her yol için bir işleyici ayarlanmalıdır. |
Çoklu çizgi |
insert_at remove_at set_at
İşleyici, çoklu çizginin yoluna ayarlanmalıdır. |
Dikdörtgen | bounds_changed |
Bazı faydalı kod snippet'leri:
google.maps.event.addListener(circle, 'radius_changed', function() { console.log(circle.getRadius()); }); google.maps.event.addListener(outerPath, 'set_at', function() { console.log('Vertex moved on outer path.'); }); google.maps.event.addListener(innerPath, 'insert_at', function() { console.log('Vertex removed from inner path.'); }); google.maps.event.addListener(rectangle, 'bounds_changed', function() { console.log('Bounds changed.'); });
Dikdörtgen üzerinde düzenleme etkinliği işlemeyle ilgili bir örnek aşağıda verilmiştir: örneğini inceleyin.
Etkinlikleri sürüklemeyi dinleyin
Bir şekil sürüklendiğinde etkinlikler, sürükleme işleminin başlangıcı ve bitişinde tetiklenir devam ettirebilirsiniz. Aşağıdaki etkinlikler şunun için tetiklenir: çokgenler, çemberler ve dikdörtgenler.
Etkinlik | Açıklama |
---|---|
dragstart |
Kullanıcı şekli sürüklemeye başladığında tetiklenir. |
drag |
Kullanıcı şekli sürüklerken üst üste tetiklendi. |
dragend |
Kullanıcı şekli sürüklemeyi bıraktığında tetiklenir. |
Etkinlikleri işleme hakkında daha fazla bilgi için etkinlikler hakkındaki belgelere göz atın.