반응형
특정 지명이나 주소 검색등으로 구글의 위/경도를 알아낼 수 있다.
<title>Google Map Sample</title>
<script src="http://maps.google.com/maps?file=api&v=2&hl=&key=" type="text/javascript"></script>
<script type="text/javascript">
function fnAdjust()
{
var latitude = document.googleMap.latitude.value;
var longitude = document.googleMap.longitude.value;
alert(latitude);
alert(longitude);
}
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GOverviewMapControl());
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.enableDoubleClickZoom();
var center = new GLatLng(35.68205, 139.76789);
map.setCenter(center, 15, G_HYBRID_MAP);
geocoder = new GClientGeocoder();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").value = center.lat().toFixed(5);
document.getElementById("lng").value = center.lng().toFixed(5);
GEvent.addListener(marker, "dragend", function() {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("lat").value = point.lat().toFixed(5);
document.getElementById("lng").value = point.lng().toFixed(5);
});
GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").value = center.lat().toFixed(5);
document.getElementById("lng").value = center.lng().toFixed(5);
GEvent.addListener(marker, "dragend", function() {
var point =marker.getPoint();
map.panTo(point);
document.getElementById("lat").value = point.lat().toFixed(5);
document.getElementById("lng").value = point.lng().toFixed(5);
});
});
}
}
function showAddress(address) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
document.getElementById("lat").value = point.lat().toFixed(5);
document.getElementById("lng").value = point.lng().toFixed(5);
map.clearOverlays()
map.setCenter(point, 14);
var marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);
GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();
map.panTo(pt);
document.getElementById("lat").value = pt.lat().toFixed(5);
document.getElementById("lng").value = pt.lng().toFixed(5);
});
GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").value = center.lat().toFixed(5);
document.getElementById("lng").value = center.lng().toFixed(5);
GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();
map.panTo(pt);
document.getElementById("lat").value = pt.lat().toFixed(5);
document.getElementById("lng").value = pt.lng().toFixed(5);
});
});
}
}
);
}
}
</script>
<div style="padding: 15px 45px 10px;">
<div id="map" style="width: 600px; height: 500px;"></div>
</div>
<div style="padding: 5px 45px 10px 85px;">
<form name="googleMap" onsubmit="showAddress(this.address.value); return false" action="#">
<table width="650">
<tbody><tr>
<td colspan="5">
<input name="address" type="text" size="70" value="">
<input class="btn" type="submit" value="Address Search">
</td>
</tr>
<tr height="10">
<td colspan="5"></td>
</tr>
<tr>
<td width="117"><b>Latitude</b></td>
<td width="117">
<input name="latitude" id="lat" type="text" size="12" value="">
</td>
<td width="117"><b>Longitude</b></td>
<td width="117">
<input name="longitude" id="lng" type="text" size="12" value="">
</td>
<td width="182">
<input class="btn" onclick="fnAdjust()" type="button" value="Adjust">
</td>
</tr>
</tbody></table>
</form>
</div>
반응형