2015-06-18 2 views
2

Я пишу эту программу на C#, на которой должны отображаться Карты Google. Я использую API JavaScript Google Maps, который является лучшим, который я мог найти. С помощью программы вы сможете искать места.Перепишите часть javascript с C#

Код:

window.onload = function() { 
 

 
    var latlng = new google.maps.LatLng(52.785804, 6.897585); 
 
    var options = { 
 
     zoom: 15, 
 
     center: latlng, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }; 
 
    var map = new google.maps.Map(document.getElementById("map"), options); 
 
}
html, body { 
 
    margin: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    overflow: hidden; 
 
} 
 

 
#map { 
 
    width: 80%; 
 
    height: 100%; 
 
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
 
<html> 
 

 
<head> 
 
    <title>Google Maps</title> 
 
    <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 
 

 
</head> 
 

 
<body> 
 
    <div id="map"> 
 
    </div> 
 
</body> 
 

 
</html>

Могу ли я каким-то образом возможность редактировать LatLng с помощью C#? Или кто-то знает альтернативный способ использования API Карт Google с C#?

+0

Это статическая страница HTML? – Ahsan

ответ

4

Если вы не используете технологии MVC или другие серверные технологии на этой конкретной странице, единственным вариантом будет загрузка lat/long с помощью вызова AJAX.

$.ajax({ 
    url: "url/to/your/api/that/returns/lat/long", 
    success: function(result) { 
     // process your JSON result and set the lat/long 
    } 
}); 

API-интерфейс может быть записан на стороне сервера, используя любой язык (в том числе C#)

0

Чтобы отобразить карту Google в приложении Desktop, например, Winforms, вы можете использовать элемент управления WebBrowser и HTML-страницу (локальный файл или встроенный в качестве ресурса).

Можно вызвать функции JavaScript из формы или класса C# и вызвать функции C# из JavaScript.

Javascript для C#

-------C# code-------------------- 
[System.Runtime.InteropServices.ComVisible(true)] 
// execute the following instruction in the form initialisation 
WebBrowser1.ObjectForScripting = this ; 
// define a public method 
public void ShowMessage (string msg) { MessageBox.Show(msg); } 

-------HTML and Javascript---------------- 
<input type="button" value="JavaScript is calling Dotnet" 
onclick="window.external.ShowMessage('JavaScript message');" /> 

C# в Javascript

-------C# code-------------------- 
object [] MyArgs = { "Hello" } ; WebBrowser1.Document.InvokeScript("MyJsFunction",MyArgs) ; 

-------Javascript---------------- 
function MyJsFunction(s) { alert(s) ; } 
0

Если вы не возражаете против использования сторонней библиотеки, вы можете попробовать GDS Google Map WinForms Control, которые могут быть использованы в либо WinForms, либо WPF-приложения, и вы можете просто использовать C# для программирования. Это сэкономит вам время на работу с JavaScript.

Вот очень простой пример, и вы можете видеть, как легко выполнить поиск места с ним.

  1. Создать приложение WinForm;
  2. Перетащите Gds Google в форму, назовите ее как _gdsGoogleMap и установите для свойства Dock значение «Заполнить»;
  3. Создайте обработчик событий для MapInitializedEvent;
  4. код, как следующие:

с помощью System.Windows.Forms;

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

имен поискРазместить

{

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void GdsGoogleMapMapInitializedEventHandler(object sender, GdsGoogleMap.MapEvents.MapInitializedEventArgs e) 
    { 
     _gdsGoogleMap.MapCenter = new LatLng(52.785804, 6.897585); 
     _gdsGoogleMap.MapZoom = 15; 
    } 
} 

}

скомпилировать и запустить программу, вы увидите screencut как: Search Place

Введите несколько адресов на панели поиска и затем нажмите enter, вы увидите screencut как: Search Place Search

+0

Общение между C# и JavaScript очень просто: я отредактировал свой ответ, чтобы предоставить некоторый код. – Graffito