أكثر

OpenLayers مع MVC و SQL Server

OpenLayers مع MVC و SQL Server


لقد قمت باستيراد بعض ملفات الأشكال إلى SQL Server 2008. الآن أريد استخدام OpenLayers مع تطبيق MVC 4 الخاص بي لعرض ملفات الشكل هذه من قاعدة بيانات SQL Server.

أي مساعدة في هذا الصدد؟


تقوم قاعدة البيانات بتخزين البيانات فقط ، وتحتاج إلى طريقة ما للحصول على تلك البيانات بتنسيق يفهمه OpenLayers.

أسهل طريقة للقيام بذلك هي امتلاك خادم WMS يمكنه الاتصال بقاعدة البيانات الخاصة بك ، وتقديم البيانات كخدمة WMS يمكنك استهلاكها بعد ذلك في OpenLayers.

سأقترح عليك النظر في استخدام GeoServer. باستخدام امتداد ، يمكنك الاتصال بالبيانات المكانية في MS SQL من Geoserver. يرجى الاطلاع على صفحة الوثائق هذه لمزيد من التفاصيل.


لقد فعلت هذا ولكن مع Postgres. يمكنك إنشاء إجراء لنقل json من وحدة التحكم إلى html. يمكن لـ Openlayer إنشاء طبقة باستخدام بيانات json أو geojson ، باستخدام شيء مثل هذا:

var xhttp ؛ xhttp = جديد XMLHttpRequest () ، xhttp.onreadystatechange = function () {if (xhttp.readyState == 4 && xhttp.status == 200) {return xhttp؛ }}؛ xhttp.open ("GET"، 'g_estados / GetEstadosJson'، false) ؛ xhttp.send () ، var data = JSON.parse (xhttp.responseText) ، var format = new ol.format.WKT () ؛ ميزات var = new Array () ؛ لـ (i = 0، len = data.length؛ i 

وإجراء مثل هذا:

JsonResult العامة GetEstadosJson () {IEnumerable البيانات = db.g_estado.ToList () ، إرجاع JsonResult () {البيانات = البيانات ، MaxJsonLength = 86753090 ، JsonRequestBehavior = JsonRequestBehavior.AllowGet} ؛ }

يحد MaxJsonLenght حجم البيانات التي يتم إرجاعها في الإجراء ، لذا تأكد من عدم وجود الكثير من البيانات التي يجب إرجاعها ، فقد ينتج عن ذلك نوعان من الأخطاء ، أو تجاوز الحد أو نفاد الذاكرة إذا استغرق ذلك وقتًا طويلاً.


شاهد الفيديو: , OpenLayers, PostgeSQL, GeoServer web application: create and deploy