2012-10-25 3 views
12

base64 인코딩 된 문자열을 사용하여 Google지도에서 맞춤 마커를 사용하려고합니다. 여하튼 그것은 작동하지 않는다.마커 base64 인코딩 된 문자열 사용

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

편집 : 그냥 보완 : 당신이 JS를 생성하는 서버 측 언어를 사용하는 경우, 당신은 항상 약간의 PHP를 삽입 할 수 있습니다/파이썬/어떤 코드를로드

답변

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

당신은 환영합니다 :) –

관련 문제