我的场景是,当用户访问网页时,我想要捕获用户所在的国家。基于用户所在的国家,我想设置一个cookie,它允许我在后面的代码中做一个简单的"if“语句,让他们看到网页上的某些信息。我开始做一些研究,我可以使用谷歌地理编码V3,并从c#背后的代码中获取国家。但是为了让Google地理编码正常工作,我需要传入经度和纬度。我看到的唯一方法是通过Javascript调用,比如:
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
});
}因此,如果我做得对的话,我希望能得到一些建议。在我的c#代码中加载的方法上,我想我可以让ScriptManager.RegisterStartUpScript方法运行javascript。因此,我现在面临的挑战是获取纬度和经度值。因为我不打算使用按钮事件或其他东西,所以我需要获取这些值,然后将它们传递到我的c#方法中,该方法将使用谷歌地理代码获取国家代码。这听起来对吗?如果这是正确的路径,有人能建议我如何从javascript中获取这些值吗?谢谢。
发布于 2011-10-02 15:01:27
您可以对包含客户端地理位置的服务器进行Ajax调用。
如果使用RegionInfo.CurrentRegion呢?这将根据浏览器标题给出国家/地区,假设您已将全球化文化转向汽车。这比较简单,但也不是所有时间都是100%正确的,因为用户可以更改其区域性设置。
您可能还想考虑使用基于IP地址的地理位置,这可能会更准确一些。
知道你为什么要这么做会很有帮助。
发布于 2011-10-02 16:10:15
大多数真正需要确保内容保持在国家范围内的网站都使用收费的内容-例如,大多数音乐网站、亚马逊等。
他们的简单而有效的技术是在信用卡上使用用户帐单地址上的国家。
https://stackoverflow.com/questions/7623481
复制相似问题