Google Maps Synchronization和Set Interval onload

时间:2013-10-29 06:30:31

标签: javascript jquery ajax asp.net-mvc-3 google-maps-api-3

我遇到了需要

的情况
  1. 如何使用Ajax调用从MVC 3控制器获取json结果?
  2. 必须继续循环即使结果也会返回Google的Zero_Results 映射,因为它在结果为Zero_Results
  3. 时停止循环

    这是我的脚本文件中的代码:

    <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>
    

    这是我的控制器,我得到了工人阵列

    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);
            }
    

    先谢谢:)

0 个答案:

没有答案