구글맵(Google Maps JavaScript API v3) 주소로 검색하기 - Geocoding > 온라인강의

본문 바로가기
 
 
 
오늘 2,111
어제 2,341
최대 2,526
전체 3,261,223

최근 방문자

1673
994
927
1806
2341
2111
24 25 26 27 28 29
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

select * from g5_menu where me_use = '1' and me_link like '%lecture%'
온라인강좌 홈 > 온라인강좌 > 온라인강좌

PHP | 구글맵(Google Maps JavaScript API v3) 주소로 검색하기 - Geocoding (update. 2015-01-14)

페이지 정보

작성일2014-12-19 06:50 조회8,083회 댓글0건

본문

<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>구글맵(Google Maps JavaScript API v3) 적용, 위치 표시와 말풍선 띄우기</title>
</head>

<body>

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<?php
$address = "서울시 구로구 디지털로 242";
$address_title = "해피정닷컴;

$xml = simplexml_load_file("http://maps.google.com/maps/api/geocode/xml?address=".urlencode($address)."&language=ko&sensor=false");
$lat = $xml->result->geometry->location->lat;
$lng = $xml->result->geometry->location->lng;

// php.ini 설정중 allow_url_fopen = On 확인 / Off 이면 추출안됨
//echo "lat = ". $lat ."<br>";
//echo "lng = ". $lng ."<br>";
?>
<!-- GoogoleMap Asynchronously Loading the API ********************************************* -->
<script type="text/javascript">
    function initialize() {
        var mapLocation = new google.maps.LatLng('<?php echo $lat; ?>', '<?php echo $lng; ?>'); // 지도에서 가운데로 위치할 위도와 경도
        var markLocation = new google.maps.LatLng('<?php echo $lat; ?>', '<?php echo $lng; ?>'); // 마커가 위치할 위도와 경도
        
        var mapOptions = {
            center: mapLocation, // 지도에서 가운데로 위치할 위도와 경도(변수)
            zoom: 15, // 지도를 띄웠을 때의 줌 크기 , 숫자가 클수록 상세지도
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
       
        var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); // div의 id과 값이 같아야 함. "map-canvas"
       
        var size_x = 40; // 마커로 사용할 이미지의 가로 크기
        var size_y = 40; // 마커로 사용할 이미지의 세로 크기
        
        // 마커로 사용할 이미지 주소
        var image = new google.maps.MarkerImage( '',
            new google.maps.Size(size_x, size_y),
            '',
            '',
        new google.maps.Size(size_x, size_y));
        
        var marker;
        marker = new google.maps.Marker({
            position: markLocation, // 마커가 위치할 위도와 경도(변수)
            map: map,
            icon: image, // 마커로 사용할 이미지(변수)
            //             info: '말풍선 안에 들어갈 내용',
            title: '<?php echo $address_title; ?>' // 마커에 마우스 포인트를 갖다댔을 때 뜨는 타이틀
        });
        
        var content = "<?php echo $address_title; ?>"; // 말풍선 안에 들어갈 내용
        
        // 마커를 클릭했을 때의 이벤트. 말풍선 뿅~
        var infowindow = new google.maps.InfoWindow({ content: content});
        
        google.maps.event.addListener(marker, "click", function() {
            infowindow.open(map,marker);
        });
    }
    google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map-canvas" style="width: 100%; height: 313px" title="<?php echo $address_title; ?>"></div>

</body>
</html>


php.ini 의 설정값중  allow_url_fopen = On 이어야만 $lat , $lng 가 추출된다는 것이 문제일수 있습니다.
호스팅사에 그것이 설정을 못변경해준다고 하는 경우에는 무슨 다른 방법이 있을듯한데...
그것에 대한 해답을 옵션님이 아래와 같이 답변을 주셨습니다.  옵션님 감사합니다.
아래 내용은 테스트후 문제가 없으면 내용에 반영하도록 하겠습니다.

$xml = simplexml_load_file("http://maps.google.com/maps/api/geocode/xml?address=".urlencode($address)."&language=ko&sensor=false");

삭제하고

if(ini_get('allow_url_fopen')) {
  $xml = simpleXML_load_file(http://maps.google.com/maps/api/geocode/xml?address=".urlencode($address)."&language=ko&sensor=false);
}else{
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $xml_raw = curl_exec($ch);
  $xml = simplexml_load_string($xml_raw);
}
추가하면 됩니다. 단 curl사용이 가능해야합니다




관련자료

http://zero-gravity.tistory.com/154
http://pixabay.com/en/map-pin-vector-illustrator-holder-42871/  ( 마커이미지 무료다운로드 )
http://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1828
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


목록

Total 1,945건 1 페이지
온라인강의 목록
번호 제목
1945
Search SEO 최적화 메타 구성하기 (update.2017-03-29)새글  Hit.9
1944
JSP alert 창 띄우기 (write.2017-03-29)새글  Hit.9
1943
JSP MSSQL 접속설정하기 (write.2017-03-29)새글  Hit.10
1942
그누보드 [G5] 전체쪽지 보내기 (write.2017-03-29)새글  Hit.9
1941
1940
Adobe Adobe CS3~CC 프로그램 완전삭제 (write.2017-03-21)  Hit.117
1939
1938
JSP utf-8 한글깨짐 (write.2017-03-20)  Hit.125
1937
1936
1935
1934
1933
그누보드 [G5] 게시물 순서 바꾸기 (write.2017-03-16)  Hit.175
1932
전자결제 [PayPal] PHP 결제연동 (write.2017-03-15)  Hit.176
1931
전자결제 [PayPal] ASP 결제 연동 (write.2017-03-15)  Hit.171
1930
1929
1928
JSP Service Temporary Unavailable! (write.2017-03-13)  Hit.189
1927
그누보드 [G5] [최신글] 한줄소식 (write.2016-02-19)인기글첨부파일  Hit.1706
1926
1925
1924
1923
1922
일반 FireFox 플러그인 (write.2015-02-28)인기글  Hit.2069
1921
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 부가통신사업신고:서울체신청-1217 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기