أكثر

الاستعلام المكاني ArcGIS Javascript مع Lat Lng أو X Y؟

الاستعلام المكاني ArcGIS Javascript مع Lat Lng أو X Y؟


أنا أستخدم خرائط Google في الواجهة الأمامية لأن كل ما أحتاجه في هذا العرض هو إظهار النقاط. عندما ينقر المستخدم على الخريطة في طريقة العرض ، فإنه يحدد نقطة ومن ثم يعطي خطوط الطول والعرض. أحاول استخدام خط العرض و lng للاستعلام عن طبقات المعالم الخاصة بي وللعثور على الميزات التي تحتوي على النقطة ولكنها تعطي نفس الخطأ مرارًا وتكرارًا.

TypeError: undefined ليست دالة {stack: (…) ، الرسالة: "undefined is not a function"} "TypeError: undefined ليست دالة في p.toJson (http://js.arcgis.com/3.13/init .js: 589: 112) في p.execute (http://js.arcgis.com/3.13/init.js:267:406) في A._createWrappers.p.forEach.c. (وظيفة مجهولة) .g. addCallbacks.d (http://js.arcgis.com/3.13/init.js:723:454) في c (http://js.arcgis.com/3.13/init.js:76:221) في ب. مؤجل. A.then.then [كما في ذلك الوقت] (http://js.arcgis.com/3.13/init.js:78:301) في b.Defirmed.addCallbacks (http://js.arcgis.com/3.13 /init.js:78:144) في A._createWrappers.p.forEach.c. (وظيفة مجهولة) [عند التنفيذ] (http://js.arcgis.com/3.13/init.js:723:382) في http: // localhost: 26196 / المشاريع / إضافة: 4678: 27 في ha (http://js.arcgis.com/3.13/init.js:32:473) على http://js.arcgis.com/3.13 /init.js:25:61 "

يتم لصق الكود الذي يتسبب في الخطأ أدناه.

تتطلب (["esri / map" ، "esri / المهام / الاستعلام" ، "esri / المهام / QueryTask" ، "esri / SpatialReference" ، "esri / geometry / Point" ، "dojo / dom"] ، وظيفة (خريطة Query، QueryTask، SpatialReference، Point، dom) {var query = new Query ()؛ query.outSpatialReference = {wkid: 4326}؛ query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS؛ query.returnGeometry = true؛ query.outFields = "*" ؛ var point = new Point ()؛ point.setX (lng)؛ point.setY (lat)؛ query.geometry = point؛ query.where = "1 = 1"؛ var queryTask = new QueryTask ("http: // myServer / arcgis / rest / services / ApplicationServices / DataService / MapServer / 6 / ") ؛ queryTask.execute (الاستعلام ، الوظيفة (أ) {المصحح} ، الوظيفة (هـ) {المصحح}) ؛}) ؛

لقد وجدت المقتطف في مكان ما على الإنترنت ، والفرق الوحيد هو ذلك الاستعلام. الهندسة تم تعيينه كـ الحدث في المثال أثناء تحديد نقطة بنفسي.


يتم طرح الخطأ المشفر لأن query.outFields تتوقع مصفوفة

query.outFields = ["*"] ؛


var مسافة ، خريطة ، infobox ، طبقة البيانات ، ctx ، listItems ، listTitle ، sLat ، sLon ، travelDistance = 0 ؛ var BingMapsKey = "AjYUIdfUv0O7_oGQK0ohkFX_goDqb3e83CcgTXu4u54tFW1LvinADSBaoIF4eui0" function getDetails () {var zip = document.getElementById ("tzipcode"). value Distance = "tzipcode" REST / v1 / Locations؟ query = "+ zip +" & output = json & jsonp = UpdateFields & key = "+ BingMapsKey؛ CallRestService (geocodeRequest) getMap ()} وظيفة UpdateFields (نتيجة) {if (result && result.resourceSets && result.resourceSets.length> 0 && result.resourceSets [0] .resources && result.resourceSets [0] .resources.length> 0) {sLat = result.resourceSets [0] .resources [0] .point.coordinates [0] + "؛ sLon = result.resourceSets [0] .resources [0] .point.coordinates [1] +"؛ }} function CallRestService (request) {var script = document.createElement ("script")؛ script.setAttribute ("type"، "text / javascript")؛ script.setAttribute ("src" ، الطلب) ؛ document.body.appendChild (نصي) ؛ } function getMap () {map = new Microsoft.Maps.Map (document.getElementById ('myMap') ، {أوراق الاعتماد: 'AjYUIdfUv0O7_oGQK0ohkFX_goDqb3e83CcgTXu4u54tFW1LvinADSBaoIF4: 7Maps.ocation. ) ؛ dataLayer = new Microsoft.Maps.EntityCollection () ؛ map.entities.push (dataLayer) ؛ var infoboxLayer = جديد Microsoft.Maps.EntityCollection () ؛ map.entities.push (infoboxLayer) ؛ infobox = new Microsoft.Maps.Infobox (جديد Microsoft.Maps.Location (0 ، 0) ، {مرئي: خطأ ، إزاحة: جديد Microsoft.Maps.Point (0 ، 20)}) ؛ infoboxLayer.push (صندوق المعلومات) ؛ listTitle = "BrokerAgents" إذا (listTitle) {window.parent.ExecuteOrDelayUntilScriptLoaded (loadList، 'sp.js')؛ }} function loadList () {getListItems (listTitle)؛ } function getListItems (listTitle) {ctx = new window.parent.SP.ClientContext.get_current ()؛ var targetList = ctx.get_web (). get_lists (). getByTitle (listTitle) ؛ var query = window.parent.SP.CamlQuery.createAllItemsQuery () ، listItems = targetList.getItems (استعلام) ، ctx.load (listItems) ؛ ctx.executeQueryAsync (onLoadItemsSuccess، onLoadItemsFail) ؛ } function onLoadItemsFail (sender، args) {alert ('Failed to get list items. Error:' + args.get_message ())؛ } function onLoadItemsSuccess (sender، args) {var listEnumerator = listItems.getEnumerator ()؛ عنصر var ، pin ، loc ؛ while (listEnumerator.moveNext ()) {item = listEnumerator.get_current () ؛ travelDistance = 0 var itemLat = item.get_item ("broker_x002d_position_x002d_lati") var itemLon = item.get_item ("broker_x002d_position_x002d_long") getDistance (itemLat، itemLon) if (travelDresistance! result1.resourceSets [0] .resources.length> 0) {travelDistance = result1.resourceSets [0] .resources [0] .route.traveldistance + "؛}} function displayInfobox (e) {if (e.targetType == ' pushpin ') {infobox.setLocation (e.target.getLocation ())؛ infobox.setOptions ({visual: true، title: e.target.Metadata.Title، description: e.target.Metadata.Location})؛}} دالة getQueryStringValue (مفتاح) {var queryString = document.URL.split ("؟")؛ if (queryString && queryString.length> 1) {var params = queryString [1] .split ("&")؛ لـ (var i = 0 ؛ أنا

مسافة الرمز البريدي 1

ميل 5

أميال 10

ميل 15

الأميال 20

ميل 25

اميال

إرسال {

لون الخلفية: # e56717 ؛ الحشو: .5em ؛ -موز حدود نصف قطرها: 5 بكسل ؛ -webkit-border-radius: 5px؛ نصف قطر الحدود: 6 بكسل ؛ اللون: #fff ؛ عائلة الخطوط: "Arial" ؛ حجم الخط: 20 بكسل ؛ زخرفة النص: لا شيء ؛ الحدود: لا شيء ؛ } يبحث


شاهد الفيديو: Road Ahead по продуктам ArcGIS - JavaScript API. Ю. Копин