使用带有Leaflet Routing Machine的ESRI路由服务

时间:2018-06-07 23:03:43

标签: javascript routing leaflet esri-leaflet

所以我正在尝试使用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传递给服务的方式吗?

1 个答案:

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