Google maps 通过javaScript向google发出请求
我用Java脚本编写了以下代码: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",
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);
}