Google maps 通过javaScript向google发出请求

Google maps 通过javaScript向google发出请求,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我用Java脚本编写了以下代码: var requestData = { "homeMobileCountryCode": 732, "homeMobileNetworkCode": 123, "radioType": "gsm", "carrier": "Vodafone",

我用Java脚本编写了以下代码:

var requestData =
                {
                    "homeMobileCountryCode": 732,
                    "homeMobileNetworkCode": 123,
                    "radioType": "gsm",
                    "carrier": "Vodafone",
                    "cellTowers":
                    [
                        {
                            "cellId": 21282,
                            "locationAreaCode": 2110,
                            "mobileCountryCode": 732,
                            "mobileNetworkCode": 123,
                            "age": 0,
                            "signalStrength": (57 - 110)
                        }
                    ]
                }
var encoded = $.toJSON(requestData);
$.ajax({
                url: "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyA8UJK3m8_X_6GV3T5EWHc86GIuMhITu34",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                data: encoded,
                success: function (response) {
                    var location = response.location;
                    var lat = location.latitude;
                    var lon = location.longitude;
                    var address = location.address.street_number + " " + location.address.street + " " + location.address.city + " " + location.address.county + " " + location.address.country;
                                },
                error: function (er) {
                    alert("error " + er.message + " codigo: " + er.code);
                }
            });
请求没有返回任何内容,并且出现警告错误:apears对象未定义,所以,你们中有人举一个使用JSON向google调用此服务的示例吗??我正在使用ASP.Net


嗨,我没有提出此类请求的经验,我有以下代码:

Tower tower = new Tower();

        tower.MobileCountryCode = "310";
        tower.MobileNetworkCode = "260";
        tower.CellsTowers = new List<CellTower>();
        tower.CellsTowers.Add(new CellTower()
        {
            CellId = "39627456",
            LocationAreaCode = "40495",
            MobileCountryCode = "310",
            MobileNetworkCode = "260",
            SignalStrength = "-95",
            Age = "0"
        });

        string jsonFormat = ToJSON(tower);

        WebRequest request = WebRequest.Create("https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyA8UJK3m8_X_6GV3T5EWHc86GIuMhITu34" + jsonFormat);
但服务响应为:错误400,请求无效

有什么想法吗???

您正在尝试使用来自JavaScript的。这是一个JSON API。它仅用于服务器,而不是JavaScript代码

API返回一个JSON结果,这是JavaScript的跨域请求所不能做的,除非API允许通过CORS或提供JSONP响应。除非我弄错了,否则这个API不做这两件事,所以不能从JavaScript使用它

如果要从JavaScript进行地理编码,可以在Maps API中使用。我不认为这支持你正在使用的无线电塔的东西-至少文档中没有提到它

另外,您在问题中发布了API密钥。如果这是一个浏览器API密钥,这没有问题,但是如果这是一个服务器API密钥,您通常会使用Geolocation API,那么该密钥现在已被泄露。转到您的,删除此密钥,然后创建一个新密钥-并且不要共享该新密钥

您正在尝试使用来自JavaScript的。这是一个JSON API。它仅用于服务器,而不是JavaScript代码

API返回一个JSON结果,这是JavaScript的跨域请求所不能做的,除非API允许通过CORS或提供JSONP响应。除非我弄错了,否则这个API不做这两件事,所以不能从JavaScript使用它

如果要从JavaScript进行地理编码,可以在Maps API中使用。我不认为这支持你正在使用的无线电塔的东西-至少文档中没有提到它

另外,您在问题中发布了API密钥。如果这是一个浏览器API密钥,这没有问题,但是如果这是一个服务器API密钥,您通常会使用Geolocation API,那么该密钥现在已被泄露。转到您的,删除此密钥,然后创建一个新密钥-并且不要共享该新密钥

试试看 var jsonFormat=JSON.stringify(rpcReq)

还可以查看API文档

并忽略上述关于“仅服务器”的陈述

(关于API密钥的注释通常是有效的。)

试试看 var jsonFormat=JSON.stringify(rpcReq)

还可以查看API文档

并忽略上述关于“仅服务器”的陈述


(关于API密钥的注释通常有效。)

是。使用哪种语言并不重要,但必须是服务器代码,而不是浏览器代码。是的。使用哪种语言并不重要,但必须是服务器代码,而不是浏览器代码。
string ToJSON(object obj)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Serialize(obj);
    }