Layer control check box causes JavaScript error

679 views
Skip to first unread message

Patrick McCormick

unread,
Oct 22, 2013, 4:23:37 PM10/22/13
to leaflet-ve...@googlegroups.com
I have a map at http://tearitory.com/land-rush/#stake

I'm using leaflet vector layers and leaflet providers plugins.

I'm trying to add vector layers from an AGS server like this:

        map1 = new L.Map("leafMap", {
            center: new L.LatLng(39.8, -89.4),
            zoom: 7,
            maxZoom: 16
        });

        defaultLayer = L.tileLayer.provider('Esri.WorldTopoMap').addTo(map1);

        baseLayers = {
            'OpenStreetMap Mapnik': L.tileLayer.provider('OpenStreetMap.Mapnik'),
            'OpenStreetMap German Style': L.tileLayer.provider('OpenStreetMap.DE'),
            'OpenStreetMap Black and White': L.tileLayer.provider('OpenStreetMap.BlackAndWhite'),
            'Thunderforest OpenCycleMap': L.tileLayer.provider('Thunderforest.OpenCycleMap'),
            'Thunderforest Transport': L.tileLayer.provider('Thunderforest.Transport'),
            'Thunderforest Landscape': L.tileLayer.provider('Thunderforest.Landscape'),
            'MapQuest OSM': L.tileLayer.provider('MapQuestOpen.OSM'),
            'MapQuest Aerial': L.tileLayer.provider('MapQuestOpen.Aerial'),
            'Stamen Toner': L.tileLayer.provider('Stamen.Toner'),
            'Stamen Terrain': L.tileLayer.provider('Stamen.Terrain'),
            'Stamen Watercolor': L.tileLayer.provider('Stamen.Watercolor'),
            'Esri WorldStreetMap': L.tileLayer.provider('Esri.WorldStreetMap'),
            'Esri DeLorme': L.tileLayer.provider('Esri.DeLorme'),
            'Esri WorldTopoMap': defaultLayer,
            'Esri WorldImagery': L.tileLayer.provider('Esri.WorldImagery'),
            'Esri WorldPhysical': L.tileLayer.provider('Esri.WorldPhysical'),
            'Esri OceanBasemap': L.tileLayer.provider('Esri.OceanBasemap'),
            'Esri NatGeoWorldMap': L.tileLayer.provider('Esri.NatGeoWorldMap'),
            'Esri WorldGrayCanvas': L.tileLayer.provider('Esri.WorldGrayCanvas'),
            'Nokia Normal Day': L.tileLayer.provider('Nokia.normalDay'),
            'Nokia Normal Day Grey': L.tileLayer.provider('Nokia.normalGreyDay'),
            'Nokia Satellite': L.tileLayer.provider('Nokia.satelliteNoLabelsDay'),
            'Nokia Satellite (Labeled)': L.tileLayer.provider('Nokia.satelliteYesLabelsDay'),
            'Nokia Terrain': L.tileLayer.provider('Nokia.terrainDay'),
            //'Acetate': L.tileLayer.provider('Acetate')
        };

        ags_oil = new lvector.AGS({
            url: "http://maps.isgs.illinois.edu/arcgis/rest/services/ILOIL/Oil_and_Gas_Fields/MapServer/2",
            fields: "*",
            uniqueField: "OBJECTID",
            scaleRange: [7,16],
            symbology: {
                type: "single",
                vectorOptions: {
                    weight: 1,
                    opacity: 0.8,
                    color: "#F86100",
                    fillOpacity: 0.5
                }
            }
        });

        overlayLayers = {
            'Oil & Gas Fields': ags_oil
        };

        layerControl = L.control.layers(baseLayers, overlayLayers, {collapsed: true, nowrap: true}).addTo(map1);


If I add the ags_oil layer directly, like          ags_oil.setMap(map1);    it displays properly.

If I try to add the layer to the layer controller, using overlayLayers above, clicking the checkbox in the layer control causes this error at leaflet.js, line 6:

TypeError: t.onAdd is not a function

...atLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s...

What am I screwing up?


Patrick McCormick

unread,
Oct 22, 2013, 4:45:19 PM10/22/13
to leaflet-ve...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages