2013-05-30 3 views
0

Я пытаюсь создать образ gmap в asp.net. Мне нужно указать разные широты и долготы и создать изображение карты Google с помощью полилиний. До сих пор, я могу создать изображение с помощью кода ниже:создать полилинии в 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.&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

По the documentation вы должны быть в состоянии указать путь для ломаной линии, как так:

путь = цвет: 0x0000FF | вес: 5 | 40.737102, -73.990318 | 40.749825, -73,987963 | 40,752946, -73,987384 | 40.755823, -73.986397

eg

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.&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.|40.718217,-73.998284 

В качестве альтернативы вы можете использовать формат encoded polyline (полезно для значительного сокращения URL).

А вы бы указать, что, как:

& путь = вес: 3% 7Ccolor: оранжевый% 7Cenc: polyline_data

Чтобы получить эту polyline_data, вы можете использовать онлайн-форму здесь: https://developers.google.com/maps/documentation/utilities/polylineutility

Альтернативно написать алгоритм, основанный на спецификации здесь: https://developers.google.com/maps/documentation/utilities/polylinealgorithm

+0

, если я добавлю 1000 langs и lats, будет ли это проблемой при вызове 'llght' webclient'? – Arshad

+0

Да, вы, вероятно, превысите максимальную длину URL-адреса, что-либо более 2000 символов, вероятно, слишком велико. – duncan

+0

Однако вы можете использовать [Кодированная полилиния] (https://developers.google.com/maps/ документация/утилиты/polylinealgorithm) вместо – duncan

Смежные вопросы