2013-02-26 19 views
78

Quando carico un'immagine nella proprietà dell'icona di un marcatore visualizzata con la sua dimensione originale, che è molto più grande di quanto dovrebbe essere.Ridimensiona icona icona indicatore di Google Maps immagine

Voglio ridimensionare lo standard ad una dimensione più piccola. Qual è il modo migliore per farlo?

Codice:

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" 
    }); 
} 

risposta

169

Se il formato originale è di 100 x 100 e si vuole scalare a 50 x 50, utilizzare scaledSize al posto di Taglia.

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 
}); 
+2

+1, questo è quello che ha funzionato per me. – elrobis

+0

Ecco come fare sotto API v3. –

+1

Funziona, ma in questo modo si perdono le proporzioni dell'immagine. –

55

Come citato nei commenti, questa è la soluzione aggiornata a favore di oggetto Icon con la documentazione.

Usa Icon object

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 
}); 
+0

Grazie uomo! apprezzato –

+11

MarkerImage è deprecato: utilizzare invece l'oggetto icona! – Bertaud

+8

Questo non ridimensiona l'immagine, ma la ritaglia? –

12

MarkerImage has been deprecated for Icon

Fino alla versione 3.10 delle API di Google Maps JavaScript, icone complesse sono stati definiti come oggetti MarkerImage. L'oggetto letterale Icon è stato aggiunto in 3.10 e sostituisce MarkerImage dalla versione 3.11 in poi. Le icone letterali supportano gli stessi parametri di MarkerImage, consentendo a di convertire facilmente un MarkerImage in un'icona rimuovendo il costruttore , inserendo i parametri precedenti in {} e aggiungendo i nomi di ciascun parametro.

codice di Phillippe sarebbe ora essere:

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 
}); 
+3

Penso che questo non ridimensiona l'immagine, ma la ritaglia. –

+9

Si desidera 'dimensionedimensione' piuttosto che' dimensione'. – bbodenmiller

+0

Sì, sono d'accordo con @bbodenmiller, scaledSize potrebbe essere quello che stai cercando. Per il mio progetto uso scaledSize e questo funziona per me. icona var = {url: imageName, ridimensionato: nuovo google.maps.Size (8, 12)}; – user908645

1

un principiante come me l'argomento può trovare più difficile implementare una di queste risposte che, se all'interno del vostro controllo, per ridimensionare l'immagine da soli con un editor online o un editor di foto come Photoshop.

Un'immagine 500x500 apparirà più grande sulla mappa di un'immagine 50x50.

Nessuna programmazione richiesta.

0

origine Elimina e ancora sarà più immagine regolare

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 
}); 
Problemi correlati