{% extends "gis/admin/openlayers.js" %} {% block base_layer %}new OpenLayers.Layer.Google("Google Hybrid", {type: google.maps.MapTypeId.HYBRID});{% endblock %} {% block controls %} {{ block.super }} django.jQuery(document).ready(function() { var mappa = {{ module }}.map; var lng, lat var $address = django.jQuery('#id_address'); $address.change(function() { geocod($address.val(), mappa); }); django.jQuery('#id_longitude, #id_latitude').change(function() { lng = django.jQuery("#id_longitude").val(); lat = django.jQuery("#id_latitude").val(); modcoo(lng, lat, mappa); revgeocod(lng, lat, mappa); }); django.jQuery('[id*="OpenLayers.Layer.Vector_39_"]').click(function() { srco = document.getElementById('{{ id }}').value; var a = srco.split(" "); var b = a[0].split("("); var c = a[1].split(")"); lngm = parseFloat(c[0]); latm = parseFloat(b[1]); var c = new OpenLayers.Geometry.Point(latm,lngm).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326")); input_lng_lat(c.x,c.y, mappa); revgeocod(c.x, c.y, mappa); }); }); function modcoo(lng, lat, mappa) { mappa.setCenter(new OpenLayers.LonLat(lng,lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), 13); var c = new OpenLayers.Geometry.Point(lng,lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); {{ module }}.layers.vector.addFeatures([new OpenLayers.Feature.Vector(c)]); } function input_lng_lat(lng, lat, mappa) { django.jQuery("#id_longitude").val(lng.toFixed(6)); django.jQuery("#id_latitude").val(lat.toFixed(6)); } function geocod(ind, mappa) { var geocoder = new google.maps.Geocoder(); geocoder.geocode({'address': ind} , function(results,status) { if (status == google.maps.GeocoderStatus.OK) { if (status != google.maps.GeocoderStatus.ZERO_RESULTS) { lat = results[0].geometry.location.lat(); lng = results[0].geometry.location.lng(); mappa.setCenter(new OpenLayers.LonLat(lng,lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), 13); var c = new OpenLayers.Geometry.Point(lng,lat).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); {{ module }}.layers.vector.addFeatures([new OpenLayers.Feature.Vector(c)]); input_lng_lat(lng, lat, mappa); } } else { alert("Address not found!"); } } ) }; function revgeocod(lng, lat, mappa) { var geocoder = new google.maps.Geocoder(); var infowindow = new google.maps.InfoWindow(); var latlng = new google.maps.LatLng(lat,lng); geocoder.geocode({'latLng': latlng}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { django.jQuery("#id_address").val(results[0].formatted_address); } else { alert("Geocoder failed due to: " + status); } }); }; {% endblock %}