문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
| study:googlemap [2023/11/29 02:29] – 만듦 taekgu | study:googlemap [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== Google Map ====== | ||
| + | Content-Security-Policy를 설정해야 됨. | ||
| + | CSRF, CORS와는 다른 보안정책임. | ||
| + | <code java> | ||
| + | | ||
| + | </ | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | function initMap() { | ||
| + | if("< | ||
| + | { | ||
| + | var lat = null; | ||
| + | var lng = null; | ||
| + | if (navigator.geolocation) | ||
| + | { // GPS를 지원하면 | ||
| + | navigator.geolocation.getCurrentPosition(function(position) | ||
| + | { | ||
| + | //pos = {lat: position.coords.latitude, | ||
| + | lat = Number(position.coords.latitude); | ||
| + | lng = Number(position.coords.longitude); | ||
| + | |||
| + | HCG.inputSetValueAuto(" | ||
| + | HCG.inputSetValueAuto(" | ||
| + | | ||
| + | initGoogleMarker(lat, | ||
| + | } | ||
| + | , function(error) | ||
| + | { | ||
| + | alert(error.message); | ||
| + | } | ||
| + | , | ||
| + | { | ||
| + | enableHighAccuracy: | ||
| + | maximumAge: 0, | ||
| + | timeout: Infinity | ||
| + | }); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | alert(' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | var lat = Number("< | ||
| + | var lng = Number("< | ||
| + | initGoogleMarker(lat, | ||
| + | } | ||
| + | |||
| + | var lo_marker; | ||
| + | var lo_map; | ||
| + | function initGoogleMarker(lat, | ||
| + | |||
| + | var radius = 100; | ||
| + | if("< | ||
| + | { | ||
| + | radius = Number(" | ||
| + | $("# | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | radius = Number("< | ||
| + | } | ||
| + | | ||
| + | lo_map = new google.maps.Map(document.getElementById(' | ||
| + | zoom: 17, | ||
| + | center: {lat: lat, lng: lng} | ||
| + | }); | ||
| + | lo_marker = new google.maps.Marker({ | ||
| + | position: {lat: lat, lng: lng}, | ||
| + | label: { | ||
| + | text:"< | ||
| + | color: "# | ||
| + | fontSize: " | ||
| + | fontWeight: " | ||
| + | }, | ||
| + | map: lo_map, | ||
| + | draggable: true | ||
| + | }); | ||
| + | | ||
| + | var circle = new google.maps.Circle({ | ||
| + | map: lo_map, | ||
| + | radius: radius, | ||
| + | fillColor: '# | ||
| + | strokeWeight: | ||
| + | }); | ||
| + | | ||
| + | circle.bindTo(' | ||
| + | | ||
| + | var geocoder = new google.maps.Geocoder(); | ||
| + | | ||
| + | < | ||
| + | google.maps.event.addListener(lo_marker,' | ||
| + | var slatlang = lo_marker.getPosition(); | ||
| + | $("# | ||
| + | $("# | ||
| + | lo_map.setCenter(lo_marker.getPosition()); | ||
| + | }); | ||
| + | | ||
| + | < | ||
| + | document.getElementById(' | ||
| + | geocodeAddress(geocoder, | ||
| + | }); | ||
| + | < | ||
| + | document.getElementById(' | ||
| + | circle.setRadius(Number(document.getElementById(' | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | function geocodeAddress(geocoder, | ||
| + | var address = document.getElementById(' | ||
| + | | ||
| + | geocoder.geocode({' | ||
| + | if (status === ' | ||
| + | var slatlang = results[0].geometry.location; | ||
| + | | ||
| + | $("# | ||
| + | $("# | ||
| + | | ||
| + | if( lo_marker ){ | ||
| + | lo_marker.setPosition(slatlang); | ||
| + | lo_map.setCenter(slatlang); | ||
| + | } | ||
| + | | ||
| + | } else { | ||
| + | alert(' | ||
| + | } | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | /* https:// | ||
| + | function getIP(out_addr){ | ||
| + | if("< | ||
| + | { | ||
| + | $("# | ||
| + | } | ||
| + | } | ||
| + | < | ||
| + | <script src=" | ||
| + | <script type=" | ||
| + | </ | ||