2014-02-17 6 views
0

Я пытаюсь сохранить разрешение моей карты в в web.config и свойство в моем ASP.NET является строкойOpenLayers резолюции от web.config

web.config

<maplayers> 
    <bufferMaps useBufferMaps="1" zoomOffset="13"  resolutions="19.1092570678711,9.55462853393555,4.77731426696777,2.38865713348389,1.19432856674 1945,0.5971642833709725"/> 
</maplayers> 

Когда я читать resolutions свойства в моем JavaScript, я получаю следующее сообщение об ошибке:

Object [19.1092570678711,9.55462853393555,4.777314…66741945,0.5971642833709725] has no method 'sort'

Я думаю, что это может быть потому, что это строка, но как может Я решаю это?

Мой Javascript

var str1 = "["; 
var str2 = "]"; 
var res_str=str1.concat(ob.resolutions,str2); 

var mapnik_layer = new OpenLayers.Layer.OSM(
     "OpenStreetMap", 
     "http://localhost/WebClient/Openstreetmap/${z}/${x}/${y}.png", 
     {zoomOffset: 13, 
     resolutions: res_str} 
    ); 
map.addLayers([mapnik_layer]); 

ответ

1

Как вы подозревали, что это потому, что resolutions должен быть массивом, а не строкой.

OpenLayers.Layer.resolutions {Array} A list of map resolutions (map units per pixel) in descending order.

string.split() метод принимает строку в качестве входных данных и разбивает его в массив в данный разделитель - в этом случае на каждой запятой ,:

var res_str = ob.resolutions.split(','); 

Выходной сигнал, который является:

["19.1092570678711", "9.55462853393555", "4.77731426696777", "2.38865713348389", "1.194328566741945", "0.5971642833709725"] 

массив строк, а не просто строка:

"[19.1092570678711, 9.55462853393555, 4.77731426696777, 2.38865713348389, 1.194328566741945, 0.5971642833709725]" 
+0

Обратите внимание, что в вашем вопросе одно из поплавков имеет в нем пробелы ('1.19432856674 ____ 1945'), предположим, что это ошибка копирования и вставки, но если нет, вам нужно удалить пробелы. – OGHaza

Смежные вопросы