我在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
答案 0 :(得分:2)
Google Maps API for Work客户端ID仅限于经过特别授权的网址。如果您尝试在未经授权的URL上使用您的客户端ID,您将收到一条错误消息。 Reference
您的应用仅通过PC的IP授权,因此使用您的密钥向其他计算机发出请求会导致您收到错误。
不是从客户端调用api,而是将其限制为单个授权服务器,然后将您自己的Web服务扩展到客户端。