在gmap中创建折线并生成图像

时间:2013-05-30 08:20:07

标签: c# asp.net google-maps google-maps-api-3

我正在尝试在asp.net中生成gmap图像。我需要指定不同的纬度和经度,并使用折线生成谷歌地图图像。到目前为止,我能够使用以下代码创建图像:

protected void btnMap_Click(object sender, EventArgs e)
{
    Save_Image("http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false");
}

private void Save_Image(string URL)
{
  WebClient client = new WebClient();
  string strFileName = DateTime.Now.GetHashCode().ToString() + ".png";
  client.DownloadFile(URL, Server.MapPath("~/images/" + strFileName));
  imgGmap.ImageUrl = "~/images/" + strFileName;
}

我无法找到在此网址中传递经度和纬度的方法。我已经检查了this博客正在做同样的事情,但我没有找到使用此演示生成图像的方法。

1 个答案:

答案 0 :(得分:1)

根据the documentation,您应该可以指定折线的路径,如下所示:

路径=彩色:0x0000ff |重量:5 | 40.737102,-73.990318 | 40.749825,-73.987963 | 40.752946,-73.987384 | 40.755823,-73.986397

e.g。

http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false&path=color:0x0000ff|weight:5|40.702147,-74.015794|40.711614,-74.012318|40.718217,-73.998284

或者,您可以使用encoded polyline格式(对缩短网址非常有用)。

你可以指定:

&安培;路径=重量:3%7Ccolor:橙%7Cenc:的 polyline_data

要获取polyline_data,您可以在此处使用在线表单: https://developers.google.com/maps/documentation/utilities/polylineutility

或者根据此处的规范编写算法: https://developers.google.com/maps/documentation/utilities/polylinealgorithm