Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带传单和geojson线串的徒步旅行地图。如何更改路线的颜色和方向?_Javascript_Jquery_Leaflet - Fatal编程技术网

Javascript 带传单和geojson线串的徒步旅行地图。如何更改路线的颜色和方向?

Javascript 带传单和geojson线串的徒步旅行地图。如何更改路线的颜色和方向?,javascript,jquery,leaflet,Javascript,Jquery,Leaflet,对于我的地图项目(使用Openstreetmap),我想展示大约70条徒步路线。到目前为止,我所做的只是阅读、复制和粘贴。我在某处找到了下面的脚本。我不确定它的有效性。我已经根据自己的需要对它进行了调整。我想要实现的是,每条路线都有不同的颜色,并且更宽一点。标准是蓝色的,我想宽度是4或5 我还没有完全理解这个脚本,因为我是js和编程新手。如果有人能给我任何帮助/建议,我将不胜感激;非常感谢 <html> <head> <title>Example

对于我的地图项目(使用Openstreetmap),我想展示大约70条徒步路线。到目前为止,我所做的只是阅读、复制和粘贴。我在某处找到了下面的脚本。我不确定它的有效性。我已经根据自己的需要对它进行了调整。我想要实现的是,每条路线都有不同的颜色,并且更宽一点。标准是蓝色的,我想宽度是4或5

我还没有完全理解这个脚本,因为我是js和编程新手。如果有人能给我任何帮助/建议,我将不胜感激;非常感谢

    <html>
 <head>
 <title>Example Route Map</title>
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.3/leaflet.css"/>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.3/leaflet.js"></script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<style>
#map{ height: 90% }

 #info {
      margin:10px;
  }
</style>
</head>
<body onload="init()">
Select a route
<div id="info"></div>

<select name="Layerchoice" id="select1" onchange="dropdown_onchange(this)">
    <option value="dummy" disabled  selected>Select a route</option>
    <option value="route1">Blue Cross</option>
    <option value="route2">Yellow Cross</option>
    <option value="route3">Green Cross</option>
</select>

<div id="map"></div>

<script>

var map, layerControl;

var dropdownlayers = {};

dropdownlayers["route1"] =
{
name: "Blue Cross",
layer: L.geoJson(),
url: "tracks/bluecross_157611.geojson"
}
;

dropdownlayers["route2"] =
{
name: "Yellow Cross",
layer: L.geoJson(),
url: "tracks/yellowcross_133389.geojson"
}
;

dropdownlayers["route3"] =
{
name: "Green Cross",
layer: L.geoJson(),
url: "tracks/greencross_181243.geojson"
}
;

function init() {
map = L.map('map').setView([49.25, 7.70], 10);

var osmUrl = 'http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png';
var osmAttrib = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors';
var osm = new L.TileLayer(osmUrl, {
    attribution: osmAttrib
}).addTo(map);

var baseLayers = {
"OpenStreetMap": osm
};

var overlays = {

};

layerControl= L.control.layers(baseLayers, overlays,{collapsed:false}).addTo(map);

} // end init

function clean_map() {
map.eachLayer(function (layer) {
    if (layer instanceof L.GeoJSON)
    //Do marker specific actions here

    {
        layerControl.removeLayer(layer);
        map.removeLayer(layer);

    }
    console.log(layer);


});
}
function load_layer(dropdownchoice) {
clean_map();
$.ajax({
    dataType: "json",
    url: dropdownchoice.url,
    success: function (data) {
        var layer = dropdownchoice.layer;
        layer.clearLayers();
        layer.addTo(map);
        $(data.features).each(function (key, data) {
            layer.addData(data);
        });

        layerControl.addOverlay(layer, dropdownchoice.name);
        map.fitBounds(layer.getBounds());
    }
}).error(function () {});
}
function dropdown_onchange(choice) {
console.log(choice.value);
load_layer(dropdownlayers[choice.value]);

}

</script>
</body>
</html>

示例路线图
#地图{高度:90%}
#信息{
利润率:10px;
}
选择路线
选择路线
蓝十字
黄十字
绿十字
var图,分层控制;
var dropdownlayers={};
下拉层[“路由1”]=
{
名称:“蓝十字”,
层:L.geoJson(),
url:“tracks/bluecross_157611.geojson”
}
;
下拉层[“路由2”]=
{
名称:“黄十字”,
层:L.geoJson(),
url:“tracks/yellowcross_133389.geojson”
}
;
下拉层[“路由3”]=
{
名称:"绿十字",,
层:L.geoJson(),
url:“tracks/greencross_181243.geojson”
}
;
函数init(){
map=L.map('map').setView([49.25,7.70],10);
var osmUrl='http://{s}.tiles.wmflabs.org/bw mapnik/{z}/{x}/{y}.png';
var osmAttrib=‘地图数据©贡献者’;
var osm=新的L.Tillelayer(osmUrl{
署名:奥斯马特里布
}).addTo(地图);
var baseLayers={
“OpenStreetMap”:osm
};
变量覆盖={
};
layerControl=L.control.layers(基本层,覆盖层,{collazed:false}).addTo(映射);
}//结束初始化
函数clean_map(){
map.eachLayer(函数(层){
if(L.GeoJSON的层实例)
//在此处执行特定的操作
{
图层控制。移除图层(图层);
map.removeLayer(层);
}
控制台日志(层);
});
}
功能加载层(下拉选择){
clean_map();
$.ajax({
数据类型:“json”,
url:dropdownchoice.url,
成功:功能(数据){
var layer=dropdownchoice.layer;
layer.clearLayers();
图层。添加到(地图);
$(data.features)。每个(函数(键、数据){
图层.添加数据(数据);
});
layerControl.addOverlay(layer,dropdownchoice.name);
map.fitBounds(layer.getBounds());
}
}).error(函数(){});
}
功能下拉菜单更改(选项){
console.log(choice.value);
加载层(下拉层[choice.value]);
}

我建议阅读上的小册子教程,特别是关于GeoJSON的小册子教程,因为它展示了如何设置样式的示例。我已经阅读了这些教程。我尝试了一些修改,但没有成功。