2012-10-25 14 views
12

Google Mapsでカスタムマーカーを使用しようとしましたが、Base64でエンコードされた文字列を使用しています。どういうわけかそれは動作しません。Marker Base64でエンコードされた文字列を使用する

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

編集::ちょうど補完:あなたはJSを生成するために、サーバー側の言語を使用している場合、あなたはいつもどんなコードをロードするために/いくつかのPHP/Pythonのを挿入することができますが、次のように

答えて

23

はそれをやって試してみてくださいイメージをbase64表現に変換します。 (PHPバックエンド)のような

何か:次に

$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); 

(フロントエンド):

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

感謝!! .....あまりにも多くの考えを与えることについて話してください:) – jagzviruz

+1

このソリューションを共有していただきありがとうございます。 phonegapアプリケーションをビルドした後の相対パスの問題を解決するのに役立ちました。私はスクリプトから画像を参照していましたが、ブラウザとアプリケーションで同じように動作しませんでした。 Base64ベースのマーカー画像は、最も実行可能なソリューションであることが判明しました。 –

+0

あなたは大歓迎です:) –

関連する問題