Wenn ich ein Bild in die icon -Eigenschaft einer Markierung lade, wird diese mit der Originalgröße angezeigt, die viel größer ist, als sie sein sollte.
Ich möchte die Standardgröße auf eine kleinere Größe ändern. Was ist der beste Weg, dies zu tun?
Code:
function addMyPos(latitude,longitude){
position = new google.maps.LatLng(latitude,longitude)
marker = new google.maps.Marker({
position: position,
map: map,
icon: "../res/sit_marron.png"
});
}
Wenn das Originalformat 100 x 100 ist und Sie es auf 50 x 50 skalieren möchten, verwenden Sie scaledSize anstelle von Size.
var icon = {
url: "../res/sit_marron.png", // url
scaledSize: new google.maps.Size(50, 50), // scaled size
Origin: new google.maps.Point(0,0), // Origin
anchor: new google.maps.Point(0, 0) // anchor
};
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
icon: icon
});
Wie in Kommentaren erwähnt, ist dies die aktualisierte Lösung zugunsten des Icon-Objekts mit Dokumentation.
var icon = {
url: "../res/sit_marron.png", // url
scaledSize: new google.maps.Size(50, 50), // scaled size
Origin: new google.maps.Point(0,0), // Origin
anchor: new google.maps.Point(0, 0) // anchor
};
posicion = new google.maps.LatLng(latitud,longitud)
marker = new google.maps.Marker({
position: posicion,
map: map,
icon: icon
});
MarkerImage wurde für Icon veraltet
Bis zur Version 3.10 der Google Maps JavaScript API werden komplexe Symbole wurden als MarkerImage-Objekte definiert. Das Icon-Objektliteral wurde hinzugefügt in 3.10 und ersetzt MarkerImage ab Version 3.11. Symbol Objektliterale unterstützen dieselben Parameter wie MarkerImage, sodass Sie können ein MarkerImage ganz einfach in ein Symbol konvertieren, indem Sie .__ entfernen. Konstruktor, der die vorherigen Parameter in {} 's umschließt und .__ hinzufügt. Namen jedes Parameters.
Phillippes Code wäre jetzt:
var icon = {
url: "../res/sit_marron.png", // url
scaledSize: new google.maps.Size(width, height), // size
Origin: new google.maps.Point(0,0), // Origin
anchor: new google.maps.Point(anchor_left, anchor_top) // anchor
};
position = new google.maps.LatLng(latitud,longitud)
marker = new google.maps.Marker({
position: position,
map: map,
icon: icon
});
Ursprung und Anker löschen ist ein normaleres Bild
var icon = {
url: "image path", // url
scaledSize: new google.maps.Size(50, 50), // size
};
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, long),
map: map,
icon: icon
});
Für einen Anfänger wie mich ist es möglicherweise schwieriger, eine dieser Antworten zu implementieren, als wenn Sie die Bildgröße mit einem Online-Editor oder einem Bildbearbeitungsprogramm wie Photoshopselbst anpassen.
Ein 500x500-Bild erscheint auf der Karte größer als ein 50x50-Bild.
Keine Programmierung erforderlich.
Also hatte ich gerade das gleiche Problem, aber ein bisschen anders. Ich hatte die Ikone bereits als Objekt, wie Philippe Boissonneault vorschlägt, aber ich verwendete ein SVG-Bild.
Was für mich gelöst wurde war:
Wechseln Sie von einem SVG-Bild zu einem PNG-Bild und folgen Sie Catherine Nyo mit einem Bild, das doppelt so groß ist wie das, was Sie benötigen.