Javascript Google地图同步和设置加载间隔

Javascript Google地图同步和设置加载间隔,javascript,jquery,ajax,asp.net-mvc-3,google-maps-api-3,Javascript,Jquery,Ajax,Asp.net Mvc 3,Google Maps Api 3,我被困在一个我需要 如何使用Ajax调用从MVC3控制器获取json结果 必须继续循环,即使结果在谷歌返回零结果 映射,因为当结果为零时它停止循环。\u Results 这是我的脚本文件中的代码: <script type="text/javascript"> var geocoder; var map; function initialize() { var minZoomLevel = 4; var zooms = 7;

我被困在一个我需要

  • 如何使用Ajax调用从MVC3控制器获取json结果
  • 必须继续循环,即使结果在谷歌返回零结果 映射,因为当结果为零时它停止循环。\u Results
  • 这是我的脚本文件中的代码:

    <script type="text/javascript">
        var geocoder;
        var map;
    
        function initialize() {
            var minZoomLevel = 4;
            var zooms = 7;
            geocoder = new google.maps.Geocoder();
    
            map = new google.maps.Map(document.getElementById('map'), {
                zoom: minZoomLevel,
                center: new google.maps.LatLng(38.50, -90.50),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });
    
            // Bounds for North America
            var strictBounds = new google.maps.LatLngBounds(
         new google.maps.LatLng(15.70, -160.50),
         new google.maps.LatLng(68.85, -55.90)
       );
    
            // Listen for the dragend event
            google.maps.event.addListener(map, 'dragend', function () {
                if (strictBounds.contains(map.getCenter())) return;
    
                // We're out of bounds - Move the map back within the bounds
    
                var c = map.getCenter(),
             x = c.lng(),
             y = c.lat(),
             maxX = strictBounds.getNorthEast().lng(),
             maxY = strictBounds.getNorthEast().lat(),
             minX = strictBounds.getSouthWest().lng(),
             minY = strictBounds.getSouthWest().lat();
    
                if (x < minX) x = minX;
                if (x > maxX) x = maxX;
                if (y < minY) y = minY;
                if (y > maxY) y = maxY;
    
                map.setCenter(new google.maps.LatLng(y, x));
            });
    
    
            // Limit the zoom level
            google.maps.event.addListener(map, 'zoom_changed', function () {
                if (map.getZoom() < minZoomLevel) map.setZoom(minZoomLevel);
            });
    
    
        }
        var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
    function codeAddress() {
            var infowindow = new google.maps.InfoWindow();
            var address = $('#workerGrid').find("input[name=shiftDay]");
            $.each(address, function () {
                var currVal = $(this).val();
    
                    geocoder.geocode({ 'address': currVal }, function (results, status) {
                        if (status == google.maps.GeocoderStatus.OK) {
    
                            map.setCenter(results[0].geometry.location);
                            var marker = new google.maps.Marker({
                                map: map,
                                icon: iconBase + 'man.png',
                                position: results[0].geometry.location,
                                title: currVal
                            })
    
    
                            google.maps.event.addListener(marker, 'click', (function (marker, i) {
                                return function () {
                                    infowindow.setContent(currVal);
                                    infowindow.open(map, marker);
                                }
                            })(marker, currVal));
                            address.push(marker);
                        }
                        else {
                            alert("Geocode was not successful for the following reason: " + status);
                        }
                    });
    
            });
            return true;
        }
    
        window.onload = function () {
            initialize();
            codeAddress();
    
        }
    
    </script>
    
    
    var地理编码器;
    var映射;
    函数初始化(){
    var minZoomLevel=4;
    变焦值=7;
    geocoder=新的google.maps.geocoder();
    map=new google.maps.map(document.getElementById('map'){
    zoom:minZoomLevel,
    中心:新google.maps.LatLng(38.50,-90.50),
    mapTypeId:google.maps.mapTypeId.ROADMAP
    });
    //前往北美的边界
    var strictBounds=new google.maps.LatLngBounds(
    新google.maps.LatLng(15.70,-160.50),
    新google.maps.LatLng(68.85,-55.90)
    );
    //收听dragend事件
    google.maps.event.addListener(映射'dragend',函数(){
    if(strictBounds.contains(map.getCenter())返回;
    //我们超出边界-将地图移回边界内
    var c=map.getCenter(),
    x=c.lng(),
    y=c.lat(),
    maxX=strictBounds.getNorthEast().lng(),
    maxY=strictBounds.getNorthEast().lat(),
    minX=strictBounds.getSouthWest().lng(),
    minY=strictBounds.getsoutwest().lat();
    如果(xmaxX)x=maxX;
    如果(ymaxY)y=maxY;
    map.setCenter(新的google.maps.LatLng(y,x));
    });
    //限制缩放级别
    google.maps.event.addListener(映射'zoom_changed',函数(){
    if(map.getZoom()
    这是我的控制器,我从中获取Worker数组

    public JsonResult LoadWorkerList()
            {
                var workerList = new List<Worker_Address>();
    
                // check if search string has value
                // retrieve list of workers filtered by search criteria
                var list = (from a in db.Worker_Address
                            where a.LogicalDelete == false
                            select a).ToList();
    
    
    
                List<WorkerAddressInfo> wlist = new List<WorkerAddressInfo>();
                foreach (var row in list)
                {
                    WorkerAddressInfo ci = new WorkerAddressInfo
                    {
                        ID = row.ID,
                        Worker_ID = row.WorkerID,
                        AddressLine1 = row.Address_Line1 + " " + row.Address_Line2+ " " +row.City + " "+ GetLookupDisplayValById(row.State_LookID),
                        //AddressLine2 = row.Address_Line2,
                        //City = row.City,
                        //State = GetLookupDisplayValById(row.State_LookID),
                        LogicalDelete = row.LogicalDelete
    
                    };
                    wlist.Add(ci);
                }
    
    
                return Json(wlist.ToList().OrderBy(p => p.AddressLine1), JsonRequestBehavior.AllowGet);
            }
    
    public JsonResult LoadWorkerList()
    {
    var workerList=新列表();
    //检查搜索字符串是否有值
    //检索按搜索条件筛选的工作人员列表
    var list=(来自db.Worker\u地址中的
    其中a.LogicalDelete==false
    选择一个.ToList();
    List wlist=新列表();
    foreach(列表中的变量行)
    {
    WorkerAddressInfo ci=新的WorkerAddressInfo
    {
    ID=行。ID,
    Worker\u ID=row.WorkerID,
    AddressLine1=row.Address\u Line1+“”+row.Address\u Line2+“”+row.City+“”+GetLookupDisplayValById(row.State\u LookID),
    //AddressLine2=行地址\行2,
    //城市,
    //State=GetLookupDisplayValById(row.State\u LookID),
    LogicalDelete=行。LogicalDelete
    };
    wlist.Add(ci);
    }
    返回Json(wlist.ToList().OrderBy(p=>p.AddressLine1),JsonRequestBehavior.AllowGet);
    }
    
    提前感谢:)