Current File : /home/pacjaorg/public_html/kmm/plugins/djclassifieds/leaflet/layouts/form.php |
<?php
/**
* @package DJ-Classifieds
* @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
* @license http://www.gnu.org/licenses GNU/GPL
* @author url: http://dj-extensions.com
* @author email contact@dj-extensions.com
*/
defined('_JEXEC') or die;
$lat = $displayData['lat'];
$lng = $displayData['lng'];
$isnew = $displayData['isnew'];
$tile_data = $displayData['tile_data'];
$par = $displayData['par'];
$params = $displayData['params'];
?>
<script>
var djmap;
var djmarker;
var my_lat;
var my_lng;
jQuery(document).ready(function(){
my_lat = "<?php echo $lat; ?>";
my_lng = "<?php echo $lng; ?>";
var start_lat = my_lat;
var start_lng = my_lng;
var zoom = "<?php echo $par->get('gm_zoom','10'); ?>";
var scrollWheelZoom = "<?php echo $par->get('gm_scrollwheel','1') ? true : false; ?>";
var mapOptions = {
center: new L.LatLng(my_lat, my_lng),
scrollWheelZoom: scrollWheelZoom,
zoom: zoom
};
djmap = new L.Map("djmap", mapOptions);
L.tileLayer("<?php echo $tile_data[0]; ?>", <?php echo json_encode($tile_data[1]); ?>).addTo(djmap);
djmap.attributionControl.setPrefix("<?php echo addslashes($tile_data[2]); ?>");
djmarker = new L.Marker([my_lat, my_lng], {draggable: true, autoPan: true});
djmarker.on("moveend",function(e){
my_lat = e.target._latlng.lat;
my_lng = e.target._latlng.lng;
jQuery("#latitude").val(my_lat);
jQuery("#longitude").val(my_lng);
});
djmap.addLayer(djmarker);
jQuery("#latitude").change(function(){
my_lat = jQuery(this).val();
var coord = new L.LatLng(my_lat, my_lng);
djmarker.setLatLng(coord);
djmap.panTo(coord);
});
jQuery("#longitude").change(function(){
my_lng = jQuery(this).val();
var coord = new L.LatLng(my_lat, my_lng);
djmarker.setLatLng(coord);
djmap.panTo(coord);
});
jQuery("#map_use_my_location").click(function(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showDJPosition);
}else{
console.error("<?php echo JText::_('COM_DJCLASSIFIEDS_GEOLOCATION_IS_NOT_SUPPORTED_BY_THIS_BROWSER'); ?>");
}
});
function showDJPosition(position)
{
setDJLocationCookie(position);
my_lat = position.coords.latitude;
my_lng = position.coords.longitude;
jQuery("#latitude").val(my_lat);
jQuery("#longitude").val(my_lng);
var coord = new L.LatLng(my_lat, my_lng);
djmarker.setLatLng(coord);
djmap.panTo(coord);
jQuery.ajax({
url: '<?php echo JRoute::_('index.php'); ?>',
type: "post",
dataType: "json",
data: {
"option": "com_ajax",
"group": "djclassifieds",
"plugin": "leafletGetLocationReverse",
"format": "json",
"lat": my_lat,
"lng": my_lng
}
}).done(function (response, textStatus, jqXHR){
if(textStatus == "success" && response){
if(response.display_name && jQuery("#address").length && !jQuery("#address").val()){
jQuery("#address").val(response.display_name);
}
if(response.address && response.address.postcode && jQuery("#post_code").length && !jQuery("#post_code").val()){
jQuery("#post_code").val(response.address.postcode);
}
}
});
}
jQuery("#map_update_latlng").click(function(){
updateLatLngFromAddress();
});
<?php if($isnew){ ?>
jQuery(document).on("change", "#address, [name=\'regions[]\']", function(){
updateLatLngFromAddress();
});
<?php } ?>
function updateLatLngFromAddress()
{
var address_arr = [];
jQuery("[name=\"regions[]\"]").each(function(){
if(jQuery(this).val() && parseInt(jQuery(this).val())){
var $reg = jQuery(this).find("option:selected");
if($reg.attr("data-geoloc") != "0"){
address_arr.push($reg.text());
}
}
});
if(jQuery("#address").val()){
address_arr.push(jQuery("#address").val());
}
var address = address_arr.join(", ");
var postcode = jQuery("#post_code").length ? jQuery("#post_code").val() : "";
if(!address && !postcode){
if(jQuery('#reg_0').val() == '' || jQuery('#reg_0').val() == '0'){
my_lat = '';
my_lng = '';
jQuery("#latitude").val(my_lat);
jQuery("#longitude").val(my_lng);
var coord = new L.LatLng(start_lat, start_lng);
djmarker.setLatLng(coord);
djmap.panTo(coord);
}
return;
}
jQuery.ajax({
url: '<?php echo JRoute::_('index.php'); ?>',
type: "post",
dataType: "json",
data: {
"option": "com_ajax",
"group": "djclassifieds",
"plugin": "leafletGetLocation",
"format": "json",
"address": address,
"postcode": postcode
}
}).done(function (response, textStatus, jqXHR){
if(textStatus == "success" && response){
my_lat = response.lat;
my_lng = response.lng;
jQuery("#latitude").val(my_lat);
jQuery("#longitude").val(my_lng);
var coord = new L.LatLng(my_lat, my_lng);
djmarker.setLatLng(coord);
djmap.panTo(coord);
}else{
jQuery("#mapalert").show();
setTimeout(function(){
jQuery("#mapalert").hide();
}, 3000);
}
});
}
});
</script>