Arguments with `?` are optional. **parser_options** consists of options
sent to the parser library, _not_ to the layer: if you want to provide options
to the layer, see the example in the Custom Layers section.
By default, the library will construct a `L.geoJson()` layer internally and
call `.addData(geojson)` on it in order to load it full of GeoJSON. If you want
to use a different kind of layer, like a `L.mapbox.featureLayer()`, you can,
by passing it as `customLayer`, as long as it supports events and `addData()`.
You can also use this API to pass custom options to a `L.geoJson()` instance.:
*`.csv(url, parser_options?, customLayer?)`: Load & parse CSV, and return layer. Options are the same as [csv2geojson](https://github.com/mapbox/csv2geojson#api): `latfield, lonfield, delimiter`
*`.csv.parse(csvString, parser_options?)`: Parse CSV, and return layer.
*`.kml(url)`: Load & parse KML, and return layer.
*`.kml.parse(kmlString | gpxDom)`: Parse KML from a string of XML or XML DOM, and return layer.
*`.gpx(url, parser_options?, customLayer?)`: Load & parse GPX, and return layer.
*`.gpx.parse(gpxString | gpxDom)`: Parse GPX from a string of XML or XML DOM, and return layer.
*`.geojson(url, parser_options?, customLayer?)`: Load GeoJSON file at URL, parse GeoJSON, and return layer.
*`.wkt(url, parser_options?, customLayer?)`: Load & parse WKT, and return layer.
*`.wkt.parse(wktString)`: Parse WKT, and return layer.
*`.topojson(url, parser_options?, customLayer?)`: Load & parse TopoJSON, and return layer.
*`.topojson.parse(topojson)`: Parse TopoJSON (given as a string or object), and return layer.
*`.polyline(url, parser_options?, customLayer?)`: Load & parse polyline, and return layer.
*`.polyline.parse(txt, options, layer)`: Parse polyline (given as a string or object), and return layer.
Valid options:
#### polyline
*`precision` will change how the polyline is interpreted. By default, the value
is 5. This is the [factor in the algorithm](https://developers.google.com/maps/documentation/utilities/polylinealgorithm),
by default 1e5, which is adjustable.
### Custom Layers
Passing custom options:
```js
var customLayer = L.geoJson(null, {
filter: function() {
// my custom filter function
return true;
}
});
var myLayer = omnivore.csv('foo', null, customLayer);
`leaflet-omnivore.js` and `leaflet-omnivore.min.js` are **built files** generated
from `index.js` by `browserify`. If you find an issue, it either needs to be
fixed in `index.js`, or in one of the libraries leaflet-omnivore uses
to parse formats.
## FAQ
* **What if I just want one format?** Lucky for you, each format is specified
in a different module, so you can just use [TopoJSON](https://github.com/mbostock/topojson),
[csv2geojson](https://github.com/mapbox/csv2geojson), [wellknown](https://github.com/mapbox/wellknown), or
[toGeoJSON](https://github.com/mapbox/togeojson)
individually.
* **My AJAX request is failing for a cross-domain request**. Read up on the [Same Origin Restriction](http://en.wikipedia.org/wiki/Same-origin_policy).
By default, we use corslite, so cross-domain requests will try to use [CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
if your server and browser supports it, but if one of them doesn't, there's no