为什么我点击标记时没有精确的经度? [英] Why am i not getting exact Longitude when i click on a marker?

查看:85
本文介绍了为什么我点击标记时没有精确的经度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的网络应用程序中,当我点击它时,我试图获取标记的经度和纬度。以下是设置标记的代码,然后当我点击它时尝试获取相同标记的经纬度:

  var myLatlng = new google.maps.LatLng(55.68322317670628,13.177157360327598); 
var marker_obj = new google.maps.Marker({
clickable:true,
position:myLatlng,
map:dashboard_map,
zIndex:i
});

marker_obj.setIcon('marker.png');

google.maps.event.addListener(marker_obj,click,function(event){
var myLatLng = event.latLng;
var lat1 = myLatLng.lat() ;
var lng1 = myLatLng.lng();
console.log('marker latitude:'+ lat1);
console.log('marker longitude:'+ lng1);
$ b $ .ajax({
type:'POST',
url:'http:// localhost:8888 / action',
data:{latitude:lat1,经度:lng1},
成功:函数(结果){
console.log(结果);
}
});
});

当我点击标记时,我得到的是正确的纬度,但经度不一样。经度值为13.177157360327556,原始标记经度值为13.177157360327598。为什么我没有正确的经度?为了得到标记的位置(而不是点击),使用marker_obj.getPosition()而不是事件.latLng。

  google.maps.event.addListener(marker_obj,click,function(event){
var myLatLng = marker_obj.getPosition();
var lat1 = myLatLng.lat();
var lng1 = myLatLng.lng();
console.log('marker latitude:'+ lat1 );
console.log('marker longitude:'+ lng1);

$ .ajax({
type:'POST',
url:'http :// localhost:8888 / action',
data:{latitude:lat1,longitude:lng1},
success:function(result){
console.log(result);
}
});
});


In my web app i am trying to fetch longitude and latitude of a marker when i click on it. Following is the code which is setting a marker and then try to get the same marker's latitude and longitude when i click on it:

  var myLatlng = new google.maps.LatLng(55.68322317670628, 13.177157360327598);
  var marker_obj = new google.maps.Marker({
    clickable: true,
    position: myLatlng,
    map: dashboard_map,
    zIndex: i
 });

  marker_obj.setIcon('marker.png');

  google.maps.event.addListener(marker_obj, "click", function(event) {
        var myLatLng = event.latLng;
        var lat1 = myLatLng.lat();
        var lng1 = myLatLng.lng();
        console.log('marker latitude: '+lat1);
        console.log('marker longitude: '+lng1);

        $.ajax({
            type: 'POST',
            url: 'http://localhost:8888/action',
            data: { latitude: lat1, longitude: lng1},
            success: function(result) {
                console.log(result);
            }
        });
    });

When i click on marker i get right latitude but longitude is not same. longitude value is 13.177157360327556, original marker longitude value is 13.177157360327598. Why am i not getting right longitude? Thanks in advance.

解决方案

To get the position of the marker (not the click), use marker_obj.getPosition() not event.latLng.

google.maps.event.addListener(marker_obj, "click", function(event) {
    var myLatLng = marker_obj.getPosition();
    var lat1 = myLatLng.lat();
    var lng1 = myLatLng.lng();
    console.log('marker latitude: '+lat1);
    console.log('marker longitude: '+lng1);

    $.ajax({
        type: 'POST',
        url: 'http://localhost:8888/action',
        data: { latitude: lat1, longitude: lng1},
        success: function(result) {
            console.log(result);
        }
    });
});

这篇关于为什么我点击标记时没有精确的经度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆