所以我正在尝试使用https://github.com/jgravois/lrm-esri在传单地图中使用ESRI路由服务,并且收到一个可能有人可以帮助我的错误。即使使用git提供的代码,我似乎仍然得到错误,它似乎一次有效。
{status: -3, message: "TypeError: Cannot read property 'lat' of undefined"}
这是js
var control = L.Routing.control({
waypoints: [
L.latLng(28.4644,-99.0236),
L.latLng(28.4758,-98.6424)
],
router: L.Routing.esri({
//this is a sample service, i am using one i created using private roads
serviceUrl: 'https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/NAServer/Route'
}),
geocoder: L.Control.Geocoder.nominatim(),
routeWhileDragging: true,
reverseWaypoints: true
}).addTo(map);
L.Routing.errorControl(control).addTo(map);
最近有没有人让lrm-esri上班?该服务正在解决路由问题,但它必须是js将lat long传递给服务的方式吗?
答案 0 :(得分:0)
这可能是一个错字,但你的纬度/长期是相反的
L.latLng(28.4644,-99.0236),
L.latLng(28.4758,-98.6424)
一旦修复了,你是正确的,sampleserver3 是解决路由,但由于某种原因,cors-lite
会立即抛出错误,甚至可以解析响应。
我知道有关该服务器的一件事是not actually support CORS。我只是在猜测,但是在古代浏览器中支持跨域请求可能需要在服务器上支持CORS(并且它也恰好在您自己的内部服务中丢失)。
因此,您最好的办法是尝试将CORS支持添加到您自己的路由服务中,或者用其他依赖项代替cors-lite
。