Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET和JavaScript(谷歌将标记映射到JavaScript)_Javascript_Asp.net_Google Maps - Fatal编程技术网

ASP.NET和JavaScript(谷歌将标记映射到JavaScript)

ASP.NET和JavaScript(谷歌将标记映射到JavaScript),javascript,asp.net,google-maps,Javascript,Asp.net,Google Maps,我有个新手问题。 如果在我的asp.net应用程序中,我需要查询数据库并获取一组Google标记以显示在地图上。我是web开发新手,所以我不确定如何将数据从asp.net传递到JavaScript。它是通过JavaScript调用的Web服务完成的,还是有其他方法来完成?我可能误解了一些主要概念。还有,是否有一种方法可以将数据从JavaScript传递到asp.net应用程序(例如,Google地图上有一些内容,数据应该存储到后端的数据库中)。如果这是太基本了,任何链接都将受到赞赏。谢谢 您可以

我有个新手问题。
如果在我的asp.net应用程序中,我需要查询数据库并获取一组Google标记以显示在地图上。我是web开发新手,所以我不确定如何将数据从asp.net传递到JavaScript。它是通过JavaScript调用的Web服务完成的,还是有其他方法来完成?我可能误解了一些主要概念。还有,是否有一种方法可以将数据从JavaScript传递到asp.net应用程序(例如,Google地图上有一些内容,数据应该存储到后端的数据库中)。如果这是太基本了,任何链接都将受到赞赏。谢谢

您可以使用以下内容:

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(43.104135, -77.884455), 6);
    // Change this depending on the name of your PHP file
    GDownloadUrl("generateXML.aspx", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");       
          for (var i = 0; i < markers.length; i++) {
            var desc = htmlEntities(markers[i].getAttribute("desc"));   
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
            parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, desc, type);
            map.addOverlay(marker);
          }
    });
}
函数加载(){
if(GBrowserIsCompatible()){
var map=newgmap2(document.getElementById(“map_canvas”);
addControl(新的gsmallmappcontrol());
addControl(新的GMapTypeControl());
赛特中心地图(新格拉特林(43.104135,-77.884455),6);
//根据PHP文件的名称更改此选项
GDownloadUrl(“generateXML.aspx”,函数(数据){
var xml=GXml.parse(数据);
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i

在generateXML.aspx中,发送一个XML响应,它应该像charm一样工作。

好吧,我会这样做(仅供参考,这在很大程度上依赖于javascript库):

  • 声明地图显示位置的
  • 使用处理程序等待DOM加载后启动请求
  • 使用异步JQuery
    $.ajax
    调用返回表示标记数据的JSON的WCF或ASMX web服务
  • 以下是一些代码的粗略切割:

    ... your web page
    
    <script>
    $(document.)ready(function() {
    
    $.ajax(
    
     url: "mapquery.asmx",
     async: true,
     dataType: json,
     success: function(data)
     {
        var map = new GMap2(document.getElementById("map_div"));
        for (int i = 0; i < data.length; i++)
        {
           var point = new GLatLng(data.results[i].lat,
                                   data.results[i].lng);
           var marker = createMarker(point, data.results[i].desc, 
                                     data.results[i].type);
           map.addOverlay(marker);
        }
     }
    );
    
    });
    </script>
    

    谢谢!这(WebService/WCF)是JavaScript从asp.net获取数据的一种更好的方式吗?还有其他方式(仅使用webmethod)吗?请留意新的WCF Web API()。听起来这将是前进的首选方法,但您也可以使用普通的旧ASHX处理程序文件并返回手工编制的JSON,或者使用现有的WCF支持(请参见此处:)
    results = [ {
          lat: 41.765,
          lng: 80.572
          desc: "My house",
          type: "X"
       },
       {
          lat: 42.765,
          lng: 81.572
          desc: "Friend's house",
          type: "X"
       }
    ]