2012-10-25 23 views
12

Bir base64 kodlanmış dizesi kullanarak Google Haritalar'da özel bir işaretleyici kullanmaya çalışıyorum. Bir şekilde işe yaramıyor.İşaretleyici Base64 kodlu dizeyi kullanma

var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    title: 'hello', 
    id: 'hehehe', 
    icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAA..." 
}); 

Düzenleme: Sadece tamamlayıcı: Eğer js oluşturmak için bir sunucu tarafı dilini kullanıyorsanız, her zaman bazı PHP ekleyebilirsiniz/Python/ne olursa olsun kod yüklemek için

cevap

23

şöyle yapıyor deneyin görüntü ve onu base64 temsiline dönüştürün. (PHP arka uç) gibi

şey:

$path = 'path/to/my/image.ext'; 

$info = getimagesize($info); 
$ext = ($info[2]); 

$data = file_get_contents($path); 
$encoded = 'data:image/' . $ext . ';base64,' .base64_encode($data); 

Sonra (ön uç):

var marker = new google.maps.Marker({ 
    //... 
    icon: '<?=$encoded;?>' 
}); 
+1

Teşekkür !! ..... çok fazla düşünmekten bahsetme :) – jagzviruz

+1

Bu çözümü paylaştığınız için teşekkür ederiz. Phonegap uygulama kurulduktan sonra göreli yol sorununu çözmeme yardımcı oldu. Bir komut dosyasından bir resme gönderme yapıyordum, ancak tarayıcıda ve uygulamada aynı şekilde çalışmadı. Base64 tabanlı marker görüntüsü en uygun çözüm olarak ortaya çıktı. –

+0

Rica ederim :) –

İlgili konular