Код конвертера координат

Автор Skipper, 21 сентября 2016, 19:51:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Skipper

Всем добра...
Взял за основу конвертер данный код.

Логика работы такая:
Вводим координаты, они конвертируются и отображаются на карте.
Создал дополнительную страницу HTML
Скрипт писал не я.
Вставляю код
<p><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<style type="text/css">
table.recalc td { padding-right: 20px;}
.nobr  {white-space: nowrap}</style>

<script>
    var map;
    var markers = [];


    function validate(val){
        return val.replace(/[^0-9.]/g,"") ;
    }


    $(function() {

        $( "#ButtLatitudeD" ).click( function( event ) {
            var lat = $('#latitudeD').val()*1;
            var lng = $('#longitudeD').val()*1;

            KK_coords_recalc($('#NS option:selected').val(), lat, '#TargetLatitude');
            KK_coords_recalc($('#EW option:selected').val(), lng, '#TargetLongitude');
            KK_map_show(lat, lng);
            KK_copy_text();
        } ) ;
        $( "#ButtLatitudeDm" ).click( function( event ) {
            var lat = $('#latitudeM').val()*1+$('#latitudeMM').val()/60;
            var lng = $('#longitudeM').val()*1+$('#longitudeMM').val()/60;

            KK_coords_recalc($('#NS option:selected').val(), lat, '#TargetLatitude');
            KK_coords_recalc($('#EW option:selected').val(), lng, '#TargetLongitude');
            KK_map_show(lat, lng);
            KK_copy_text();
        } ) ;
        $( "#ButtLatitudeDms" ).click( function( event ) {
            var lat = $('#latitudeS').val()*1+$('#latitudeSS').val()/60 + $('#latitudeSSS').val()/3600;
            var lng = $('#longitudeS').val()*1+$('#longitudeSS').val()/60 + $('#longitudeSSS').val()/3600;
            KK_coords_recalc($('#NS option:selected').val(), lat, '#TargetLatitude');
            KK_coords_recalc($('#EW option:selected').val(), lng, '#TargetLongitude');
            KK_map_show(lat, lng);
            KK_copy_text();
        } ) ;

    });

function KK_copy_text(){
    $('#forsite').val(
            "Координаты:\n" +
            $('#TargetLatitudeD').val() + ' '+
            $('#TargetLongitudeD').val() + "\n" +

            $('#TargetLatitudeDm').val() + ' '+
            $('#TargetLongitudeDm').val() + "\n" +

            $('#TargetLatitudeDms').val() + ' '+
            $('#TargetLongitudeDms').val()

    );
}
function KK_coords_recalc(NSEW, lD, id){
    if(lD == '') {
        $(id+"D").val('');
        $(id+"Dm").val('');
        $(id+"Dms").val('');
        return;
    }
    $(id+"D").val(NSEW + Math.round (lD * 100000) / 100000 );

    var degrees = Math.floor(lD);
    var minutes = (lD - degrees) * 60.0;
        minutes = Math.round (minutes * 1000.0) / 1000.0;
    var int_minutes = Math.floor(minutes);
    var seconds = (minutes - int_minutes) * 60.0;
        seconds = Math.round (seconds * 10.0) / 10.0;

    $(id + 'Dm').val(NSEW + degrees + '°' + minutes + "'");
    $(id + 'Dms').val(NSEW + degrees + '°' + int_minutes + "'" + seconds + '"');

}

function    KK_map_show(lat, lng){
    if(!lat || !lng) return;
    if(!map) {
        var mapOptions = {
                  zoom: 12,
                  center: new google.maps.LatLng(lat,lng),
                  mapTypeId: google.maps.MapTypeId.HYBRID
        }
        map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
    }

    var marker = new google.maps.Marker({
             position: new google.maps.LatLng(lat,lng),
             map: map,
             //draggable:true,
             animation: google.maps.Animation.DROP,
             title: 'Click to delete'
    });
    google.maps.event.addListener(marker, 'click', function() {
        var infowindow = new google.maps.InfoWindow({
                   content: 'широта/latitude: ' + lat.toFixed(5) + '<br />долгота/longitude: ' + lng.toFixed(5)
        });

        infowindow.open(map,marker);
    });
    map.panTo(marker.getPosition());

    google.maps.event.addListener(map, 'click', function(event) {
      addMarker(event.latLng);
    });
/*    google.maps.event.addListener(marker, 'dragend', function(event) {
      alert(JSON.stringify(event));
    });*/


    function addMarker(location) {

        //console.log(location);
            var marker = new google.maps.Marker({
              position: location,
              map: map
            });
            var infowindow = new google.maps.InfoWindow({
                   content: 'широта/latitude: ' + location.lb.toFixed(5) + '<br />долгота/longitude: ' + location.mb.toFixed(5)
            });
            google.maps.event.addListener(marker, 'click', function() {
                      infowindow.open(map,marker);
            });
            KK_coords_recalc('N', location.lb, '#TargetLatitude');
            KK_coords_recalc('E', location.mb, '#TargetLongitude');
            KK_copy_text();
            //alert(location.jb);
            //alert(JSON.stringify(location));
            //markers.push(marker);
    }


}
</script>
<h3>
Конвертор координат</h3>
    <div style="float:right"><textarea id="forsite" style="width: 200px; height: 100px; font-size: 14px">тут будут координаты для вставки на сайт</textarea></div>

    <table border="0" class="recalc">
<tbody>
<tr>
<td align="right">
Широта/Latitude: <select id="NS"><option>N</option><option>S</option></select></td>
<td class="nobr">
<input id="latitudeD" maxlength="8" onkeyup="this.value = validate(this.value);" placeholder="dd.ddddd" size="8" tabindex="1" type="text" />&deg;</td>
<td class="nobr">
<input id="latitudeM" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="dd" size="2" tabindex="4" type="text" />&deg; <input id="latitudeMM" maxlength="6" onkeyup="this.value = validate(this.value);" placeholder="mm.mmm" size="6" tabindex="5" type="text" />&prime;</td>
<td class="nobr">
<input id="latitudeS" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="dd" size="2" tabindex="9" type="text" />&deg; <input id="latitudeSS" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="mm" size="2" tabindex="10" type="text" />&prime; <input id="latitudeSSS" maxlength="6" onkeyup="this.value = validate(this.value);" placeholder="ss.sss" size="6" tabindex="11" type="text" />&Prime;</td>
</tr>
<tr>
<td align="right">
Долгота/Longitude: <select id="EW"><option>E</option><option>W</option></select></td>
<td class="nobr">
<input id="longitudeD" maxlength="8" onkeyup="this.value = validate(this.value);" placeholder="dd.ddddd" size="8" tabindex="2" type="text" />&deg;</td>
<td class="nobr">
<input id="longitudeM" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="dd" size="2" tabindex="6" type="text" />&deg; <input id="longitudeMM" maxlength="6" onkeyup="this.value = validate(this.value);" placeholder="mm.mmm" size="6" tabindex="7" type="text" />&prime;</td>
<td class="nobr">
<input id="longitudeS" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="dd" size="2" tabindex="12" type="text" />&deg; <input id="longitudeSS" maxlength="2" onkeyup="this.value = validate(this.value);" placeholder="mm" size="2" tabindex="13" type="text" />&prime; <input id="longitudeSSS" maxlength="6" onkeyup="this.value = validate(this.value);" placeholder="ss.sss" size="6" tabindex="14" type="text" />&Prime;</td>
</tr>
<tr>
<td>
&nbsp;</td>
<td>
<button id="ButtLatitudeD" tabindex="3"> считать </button></td>
<td>
<button id="ButtLatitudeDm" tabindex="8"> считать </button></td>
<td>
<button id="ButtLatitudeDms" tabindex="15"> считать </button></td>
</tr>
<tr>
<td align="right">
Широта/Latitude:</td>
<td>
<input id="TargetLatitudeD" readonly="readonly" size="8" type="text" /></td>
<td>
<input id="TargetLatitudeDm" readonly="readonly" size="8" type="text" /></td>
<td>
<input id="TargetLatitudeDms" readonly="readonly" size="8" type="text" /></td>
</tr>
<tr>
<td align="right">
Долгота/Longitude:</td>
<td>
<input id="TargetLongitudeD" readonly="readonly" size="8" type="text" /></td>
<td>
<input id="TargetLongitudeDm" readonly="readonly" size="8" type="text" /></td>
<td>
<input id="TargetLongitudeDms" readonly="readonly" size="8" type="text" /></td>
</tr>
</tbody>
</table>

<div id="map_canvas" style="width:100%;height:600px">
&nbsp;</div>

В результате, конвертер работает, а карта не вставляется.

ХЭЛП
мы можем выпить чего угодно, мы можем сделать чего попало... ©