C#GMapControl GetPoint错误

时间:2015-06-11 15:56:48

标签: c# google-maps

我在Windows窗体应用程序中使用C#中的GMap控件。

我制作了一个应用程序,在地图中放置一些坐标。当我使用它时,从我的电脑上,它可以很好地工作。

当我尝试在其他PC上运行应用程序时,不会给出坐标。 请查看我的代码中的以下评论。

GeoCoderStatusCode status;
//Here I search the address and the city
PointLatLng? punt = GMapProviders.GoogleMap.GetPoint(punti[i].Address+ ", " + punti[i].City, out status);
//At this I point I check if I received the data
if (status == GeoCoderStatusCode.G_GEO_SUCCESS)
{
    double la = punt.Value.Lat;
    double lo = punt.Value.Lng;
    marker = new GMarkerGoogle(new PointLatLng(la, lo), GMarkerGoogleType.green_dot);
    punti[i].Latitudine = la;
    punti[i].Longitudine = lo;
}
//If the data is not received...
else
{
    //I use some default data (that I get from a txt) based on the city
    marker = new GMarkerGoogle(new PointLatLng(lat, lng), GMarkerGoogleType.green_dot);
}
marker.ToolTipText = punti[i].Name+ "\r\n\r\n" + punti[i].Address+ " - " + punti[i].City;
marker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker);

您了解如果未收到数据,我会在同一点建立一个包含大量标记的地图。

我再说一遍:如果我使用PC上的应用程序,标记会放在地图上的正确位置。仅当应用程序在其他PC上运行时才会出现此问题。

我也尝试过改变GMapProvider,但问题仍然存在。

我做错了什么?

提前致谢, Emmanuele

1 个答案:

答案 0 :(得分:2)

  

Google Maps API for Work客户端ID仅限于经过特别授权的网址。如果您尝试在未经授权的URL上使用您的客户端ID,您将收到一条错误消息。    Reference

您的应用仅通过PC的IP授权,因此使用您的密钥向其他计算机发出请求会导致您收到错误。

不是从客户端调用api,而是将其限制为单个授权服务器,然后将您自己的Web服务扩展到客户端。