Встраивание Google Maps В C#

Я разрабатываю приложение для компании такси для моего проекта последнего года. Я использую Google latitude для отслеживания местоположения драйвера.

Я могу успешно получить как широту, так и долготу водителя (i.e Телефон с поддержкой gps) внутри C#.

теперь я хочу показать точное местоположение в форме, вероятно, с булавкой или меткой, направленной на полученную точку пересечения lat, lon.

пожалуйста, помогите. Спасибо заранее.

4 ответов


здесь страница для API Карт Google. Тот, который вам, вероятно, понадобится, это статические карты API (обратите внимание, что вы можете получить только 25 000 изображений uniuqe на клиента в день, вы вряд ли попадете в это, но это то, что нужно знать). Если вы хотите интерактивную карту, вам нужно будет использовать элемент управления WebBrowser и использовать javascript api



другой вариант-использовать предварительный элемент управления, например этот.


самым простым решением было бы просто использовать WebBrowser control, тогда вам не нужно ничего вставлять.


можно использовать GDS Google Map WinForms управления который интегрирует интерактивную карту Google в пользовательский элемент управления .Net с помощью Open Google Map Javascript API. Он написан в коде c# и очень прост в использовании. См. этот пример:

  1. создать приложение WinForm;
  2. перетащите GDS Google Map на форму, назовите ее _gdsGoogleMap и установите для свойства dock значение "Fill";
  3. добавить два 32 x 32 такси иконки в ресурсы и их затем Taxi32 и TaxiHL32;
  4. создайте три обработчика событий для MapInitializedEvent, MapIconMouseMoveEvent и MapIconMouseLeaveEvent;
  5. код следующим образом:

использование системы.Рисунок.Воображение;

использование системы.ИО;

использование системы.Окна.Формы;

использование GdsGoogleMap.DisplaySettings;

использование GdsGoogleMap.FeatureLayers;

использование GdsGoogleMap.Особенности;

используя GdsGoogleMap.GeoData;

использование GdsGoogleMap.MapEvents;

использование IconMap.Свойства;

использование значка = GdsGoogleMap.Особенности.Иконка;

пространство имен IconMap

{

public partial class Form1 : Form

{
    private const string TaxiLayer = "Taxi";

    private readonly string _taxiIconPath;

    private readonly string _taxiHlIconPath;

    private IconLayer _taxiLayer;

    public Form1()
    {
        InitializeComponent();

        _taxiIconPath = Path.GetTempPath() + "\Taxi32.png";
        _taxiHlIconPath = Path.GetTempPath() + "\TaxiHL32.png";

        Resources.Taxi32.Save( _taxiIconPath, ImageFormat.Png );
        Resources.TaxiHL32.Save( _taxiHlIconPath, ImageFormat.Png );
    }

    private void GdsGoogleMapMapInitializedEventHandler( object sender, MapInitializedEventArgs e )
    {
        _gdsGoogleMap.MapCenter = new LatLng( 50.9249106, -114.0325575 );
        _gdsGoogleMap.MapZoom = 12;

        _taxiLayer =  ( IconLayer ) _gdsGoogleMap.FeatureLayerCollection.Add( TaxiLayer, FeatureOptions.Icon );

        _taxiLayer.DisplaySettings = new IconDisplaySettings
                                    {
                                        DisplayImagePath = _taxiIconPath,
                                        HighlightImagePath = _taxiHlIconPath,
                                    };

        _taxiLayer.IconCollection.Add( new Icon(
                                                50.8793146,
                                                -114.0729934,
                                                "Taxi at location of\r\n(50.8793146, -114.0729934)"
                                              ) );

        _taxiLayer.IconCollection.Add( new Icon(
                                                50.8774179,
                                                -114.035767,
                                                "Taxi at location of\r\n(50.8774179, -114.035767)"
                                             ) );
    }

    private void GdsGoogleMapMapIconMouseMoveEventHandler( object sender, MapIconMouseMoveEventArgs e )
    {
        _taxiLayer.IconCollection.SetDisplaySettings( e.IconIndex, true );
    }

    private void GdsGoogleMapMapIconMouseLeaveEventHandler( object sender, MapIconMouseLeaveEventArgs e )
    {
        _taxiLayer.IconCollection.SetDisplaySettings( e.IconIndex );
    }
}

}

скомпилируйте и запустите программу, вы увидите Taxi Map

наведите курсор мыши на такси, вы увидите Taxi Map Highlight