C#谷歌地图api多标记

C#谷歌地图api多标记,c#,google-maps,google-api,C#,Google Maps,Google Api,我想创建一个简单的windows form C#应用程序,它可以显示一个包含多个标记的谷歌地图,这些标记来自一个Lat-Long列表 我的应用程序可以包含一个web浏览器容器 有谷歌api吗?我使用谷歌dll自动计算路线,在Nugget控制台中使用以下代码: PM> Install-Package GoogleMapsApi 不确定它是否能为您服务,但它拥有谷歌地图的所有功能,只知道如何使用。使用谷歌文档了解如何更好地使用它: 编辑1: 我使用这个查询返回可验证路由中所有可能的路由 名称

我想创建一个简单的windows form C#应用程序,它可以显示一个包含多个标记的谷歌地图,这些标记来自一个Lat-Long列表

我的应用程序可以包含一个web浏览器容器


有谷歌api吗?

我使用谷歌dll自动计算路线,在Nugget控制台中使用以下代码:

PM> Install-Package GoogleMapsApi
不确定它是否能为您服务,但它拥有谷歌地图的所有功能,只知道如何使用。使用谷歌文档了解如何更好地使用它:

编辑1: 我使用这个查询返回可验证路由中所有可能的路由

名称空间:

using GoogleMapsApi;
using GoogleMapsApi.Entities.Directions.Request;

var request = new DirectionsRequest
{
      Origin = employeeAdress,
      Destination = companyAdress,
      TravelMode = TravelMode.Transit,
      Alternatives = true,
      ApiKey = key,
      DepartureTime = DateTime.Now
};
var routes = GoogleMaps.Directions.Query(request);

但是使用谷歌提供给你的免费密钥,你每天只有2500个请求。

下面是一些HTML页面的代码,可与WebBrowser结合使用:

<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>GoogleMap</title>
<style type="text/css"> v\:* { behavior:url(#default#VML); } </style>
<script src="http://maps.google.com/maps/api/js?key=xxxxxxxxxxxxxx&sensor=false" type="text/javascript"></script>
<script type="text/javascript">

  //======== Local Google API data ===========================================================
  var map                           = null;
  var overlayvew                    = null;
  var geocoder                      = null;  
  // ======== Local controls ======================================================
  var body_info_label               = null ;
  var body_map                      = null ; 


  //======== Local functions and Events ============================================
  function load() 
  {
    body_info_label = document.getElementById("body_info_label");
    body_map        = document.getElementById("body_map")       ; 
    MapLoad(900,700,"H") ;
   }

  function MapLoad(Width,Height,MapType) 
  {
    try 
    {
      ToGM_SetMapSize(Width,Height) ;
      var mapOptions = 
        {
          center: new google.maps.LatLng(-25.363882, 131.044922),
          zoom: 4,
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          // Add controls
          mapTypeControl: false, scaleControl: true, streetViewControl:false, 
          overviewMapControl: false, overviewMapControlOptions: { opened: true }
        };
      map = new google.maps.Map(body_map,mapOptions);
    } 
    catch (ex){ window.external.FromGM_Uninitialized() ; }
    if (map != null)
    { 
      geocoder = new google.maps.Geocoder();  
      ToGM_SetMapCenter(50.0,15.0,4); // Center and Zoom to Europe 
      ToGM_SetZoomControl (true   ) ; // Create and Display zoom
      ToGM_SetMapType     (MapType) ; // Display according to map Type
      ToGM_SetScaleControl(true   ) ; // Create and Display scale
      overlayview = new google.maps.OverlayView();
      overlayview.draw = function() {};
      overlayview.setMap(map);
      // call to a C# procedure to indicate end of init
      // window.external.FromGM_Initialized() ; 
     }
  }



  //======== Some functions that may be called from C# by .Net WebBrowser ================================

  function ToGM_SetMapSize(Width,Height)
  { 
    if (body_info_label!=null) Height=Height-15 ;
    body_map.style.width =Width +"px" ;
    body_map.style.height=Height+"px" ;
    if (map!=null) google.maps.event.trigger(map, 'resize'); 
  }

  function ToGM_SetMapCenter(Lat,Lon,Zoom)
  { if (map!=null) {
    if (Zoom==null) Zoom = map.getZoom() ;
    var Center ;
    if (Lat==null) Center = map.getCenter() ;
    else Center = new google.maps.LatLng(Lat,Lon);
    map.setCenter(Center) ;
    map.setZoom(Zoom);
  }}

  function ToGM_SetZoomControl(On)
  {
    if (map!=null) map.setOptions({zoomControl:On}) ;
  }

  function ToGM_SetScaleControl(On)
  {    
    if (map!=null) map.setOptions({scaleControl:On }) ; 
  }

  function ToGM_SetMapType(MapType) // String MapType = "N"/"S"/"H"/"P"
  {if (map!=null) {
    if (MapType=="N") map.setMapTypeId(google.maps.MapTypeId.ROADMAP    ); 
    if (MapType=="S") map.setMapTypeId(google.maps.MapTypeId.SATELLITE  ); 
    if (MapType=="H") map.setMapTypeId(google.maps.MapTypeId.HYBRID     ); 
    if (MapType=="P") map.setMapTypeId(google.maps.MapTypeId.TERRAIN    );
  }}

</script>
</head>

<body 
  onload="load()" onunload="unload()">
  <div id="body_map" style="width: 1000px; height: 600px"></div>
</body>
</html>

谷歌舆图
v\:*{behavior:url(#default#VML);}
//==========本地谷歌API数据===========================================================
var-map=null;
var overlayview=null;
var-geocoder=null;
//==========本地控制======================================================
变量body\u info\u label=null;
var body_map=null;
//=======本地功能和事件============================================
函数加载()
{
body_info_label=document.getElementById(“body_info_label”);
body_-map=document.getElementById(“body_-map”);
地图荷载(900700,“H”);
}
函数MapLoad(宽度、高度、贴图类型)
{
尝试
{
ToGM_SetMapSize(宽度、高度);
变量映射选项=
{
中心:新google.maps.LatLng(-25.363882131.044922),
缩放:4,
mapTypeId:google.maps.mapTypeId.ROADMAP,
//添加控件
mapTypeControl:false,scaleControl:true,streetViewControl:false,
overviewMapControl:false,overviewMapControlOptions:{opened:true}
};
map=新的google.maps.map(body\u-map,mapOptions);
} 
catch(ex){window.external.FromGM_Uninitialized();}
if(map!=null)
{ 
geocoder=新的google.maps.geocoder();
ToGM_SetMapCenter(50.0,15.0,4);//居中并缩放到欧洲
ToGM_SetZoomControl(true);//创建和显示缩放
ToGM_SetMapType(MapType);//根据地图类型显示
ToGM_SetScaleControl(true);//创建和显示比例
overlayview=新的google.maps.overlayview();
overlayview.draw=函数(){};
覆盖视图。设置地图(地图);
//调用C#过程以指示init的结束
//window.external.FromGM_Initialized();
}
}
//=========一些可由.Net WebBrowser从C#调用的函数================================
函数ToGM_SetMapSize(宽度、高度)
{ 
如果(body_info_label!=null)Height=Height-15;
body_map.style.width=宽度+px;
body_map.style.height=高度+px;
如果(map!=null)google.maps.event.trigger(map,'resize');
}
功能ToGM_SetMapCenter(横向、纵向、缩放)
{if(map!=null){
如果(Zoom==null)Zoom=map.getZoom();
var中心;
if(Lat==null)Center=map.getCenter();
else Center=newgoogle.maps.LatLng(Lat,Lon);
地图设置中心(中心);
map.setZoom(缩放);
}}
功能ToGM_设置ZoomControl(打开)
{
if(map!=null)map.setOptions({zoomControl:On});
}
功能ToGM_设置缩放控制(On)
{    
if(map!=null)map.setOptions({scaleControl:On});
}
函数ToGM_SetMapType(MapType)//字符串MapType=“N”/“S”/“H”/“P”
{if(map!=null){
if(MapType==“N”)map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
if(MapType==“S”)map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
if(MapType==“H”)map.setMapTypeId(google.maps.MapTypeId.HYBRID);
if(MapType==“P”)map.setMapTypeId(google.maps.MapTypeId.TERRAIN);
}}

这是针对JS的,我需要它用于c#app。您打算通过浏览器或windows窗体与google maps交互吗?窗口窗体,但我可以向它添加一个web浏览器,首先创建一个本地HTML页面,寻址google Map API。然后,将其加载到浏览器中。您可以从C#调用JavaScript,从JavaScript调用C#。请参阅C#中是否有它的使用示例?