109 lines
3.1 KiB
JavaScript
109 lines
3.1 KiB
JavaScript
// ================================================================
|
|
// CHEditor 5
|
|
// ----------------------------------------------------------------
|
|
// Homepage: http://www.chcode.com
|
|
// Copyright (c) 1997-2011 CHSOFT
|
|
// ================================================================
|
|
var button = [
|
|
{ alt : "", img : 'submit.gif', cmd : doSubmit },
|
|
{ alt : "", img : 'cancel.gif', cmd : popupClose }
|
|
];
|
|
|
|
var oEditor = null;
|
|
var googleMapKey = null;
|
|
var center_lat = 0;
|
|
var center_lng = 0;
|
|
var setZoom = 4;
|
|
var marker_lat = 0;
|
|
var marker_lng = 0;
|
|
var currentName = { '지도' : 'map',
|
|
'중첩' : 'hybrid',
|
|
'위성' : 'satellite',
|
|
'지형' : 'satellite' };
|
|
var mapType;
|
|
|
|
function init(dialog) {
|
|
oEditor = this;
|
|
oEditor.dialog = dialog;
|
|
googleMapKey = oEditor.googleMapKey;
|
|
|
|
var dlg = new Dialog(oEditor);
|
|
dlg.showButton(button);
|
|
|
|
var buttonUrl = oEditor.config.iconPath + 'button/map_address.gif';
|
|
var search = new Image();
|
|
search.src = buttonUrl;
|
|
search.onclick = function() { initMap(14); };
|
|
search.className = 'button';
|
|
document.getElementById('map_search').appendChild(search);
|
|
dlg.setDialogHeight();
|
|
|
|
}
|
|
|
|
function doSubmit() {
|
|
var map = new Image();
|
|
if (marker_lat == 0) marker_lat = center_lat;
|
|
if (marker_lng == 0) marker_lng = center_lng;
|
|
|
|
var mapWidth = 512;
|
|
var mapHeight = 320;
|
|
|
|
map.setAttribute('width', mapWidth);
|
|
map.setAttribute('height',mapHeight);
|
|
map.style.border = '1px #000 solid';
|
|
|
|
map.src = "http://maps.google.com/maps/api/staticmap?center=" + center_lat + ',' + center_lng +
|
|
"&zoom=" + setZoom +
|
|
"&size=" + mapWidth + 'x' + mapHeight +
|
|
"&maptype=" + currentName[mapType] +
|
|
"&markers=" + marker_lat + ',' + marker_lng +
|
|
"&sensor=false";
|
|
oEditor.insertHtmlPopup(map);
|
|
oEditor.insertHtmlPopup(document.createElement('br'));
|
|
oEditor.setImageEvent(true);
|
|
popupClose();
|
|
}
|
|
|
|
function initMap(zoom) {
|
|
zoom = zoom ? zoom : 14;
|
|
var address = document.getElementById('fm_address').value;
|
|
var map = new GMap2(document.getElementById("map_canvas"));
|
|
var geocoder = new GClientGeocoder();
|
|
geocoder.getLatLng(address,
|
|
function (point) {
|
|
if (!point) {
|
|
alert(address + " 주소를 찾을 수 없습니다.");
|
|
}
|
|
else {
|
|
map.setCenter(point, zoom);
|
|
map.addControl(new GScaleControl());
|
|
|
|
map.enableDoubleClickZoom();
|
|
//map.enableContinuousZoom();
|
|
map.enableScrollWheelZoom();
|
|
map.setUIToDefault();
|
|
|
|
var marker = new GMarker(point, {draggable: true});
|
|
GEvent.addListener(marker, "dragend", function() {
|
|
marker_lat = marker.getLatLng().lat();
|
|
marker_lng = marker.getLatLng().lng();
|
|
});
|
|
|
|
map.addOverlay(marker);
|
|
}
|
|
});
|
|
|
|
GEvent.addListener(map, "maptypechanged", function() {
|
|
mapType = map.getCurrentMapType().getName();
|
|
});
|
|
GEvent.addListener(map, "moveend", function() {
|
|
center_lat = map.getCenter().lat();
|
|
center_lng = map.getCenter().lng();
|
|
setZoom = map.getZoom();
|
|
});
|
|
}
|
|
|
|
function popupClose() {
|
|
oEditor.popupWinClose();
|
|
}
|