问题标签 [azure-maps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure-maps - Azure 地图集群
我注意到在最近的 Azure 地图迭代中,可以将引脚添加到数据源中,该数据源可以应用于地图的源 -
其中pins
是 atlas.data.Feature 元素的集合。
这些图钉成功地呈现到页面上的正确位置,但它们是聚集在一起的。
我不希望它们聚集在一起。在任何给定的缩放级别,我都想看到我所有的图钉。
我试图像这样实例化数据源对象(非集群) -
但这没有用。
聚类集在什么级别?
azure - Azure Maps Terms and Conditions
Google Maps and Mapbox have clearly defined terms and conditions for Map services but I could not find similar document for Azure Maps. Specifically, I want to know if Geocoding data can be cached and used with other mapping providers.
For example, Google's terms say:
3.4 Caching. Customer can temporarily cache latitude (lat) and longitude (lng) values from the Geocoding API for up to 30 consecutive calendar days, after which Customer must delete the cached latitude and longitude values. Customer can cache Geocoding API Place ID (place_id) values, in accordance with the Geocoding API Policies.
Mapbox's terms say:
You may not export, store or cache Geocodes.
geocoding - Azue 地图搜索:唯一 ID 和规范化名称
我在我的网站上使用 azure 地图来自动完成城市。我使用这个 API 方法:https ://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddress
请求:https://atlas.microsoft.com/search/address/json?params
和参数是:
query=mosco
- 我在寻找莫斯科typehand=true
api-version=1.0
subscription-key=...my key...
结果是
好吧,这是莫斯科。但我有几个问题。
是什么
id
?医生说它是“财产ID”。是持久的吗?莫斯科永远是“116970”?如何获取城市名称的规范化?我可以写“Москва”(俄语中的莫斯科),它可以工作并且
id
是相同的,但对象address
中的名称不同(Москва, Moscow
)。如果我写“mos”,那么id
是相同的,但是address
是“Moskva”(而不是莫斯科)。
我可以得到name
一个地理对象id
吗?
azure - 从源 xxxx 访问 XMLHttpRequest ' 被 CORS 策略阻止:对预检的响应。预检请求不允许重定向
我正在使用 Azure 地图,对 FF 或 Edge 没有任何问题。但是,Chrome 在尝试显示地图时给了我以下错误:
访问 atlas.microsoft.com/map/tile/pbf?&view=Unified&language=NGT&api-version=1.0&layer=basic&style=main&zoom=16&x=12586&y=26496&subscription-key=xxxx' 从来源 mysite.org 已被阻止CORS 策略:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。
我已将 mysite.org 添加到 Azure 中允许的来源。某些地图内容会显示,例如位置标记和地图样式选择器等。只有实际地图被阻止。
我该如何解决这个问题?
javascript - 如何将 ASP 按钮的标记插入到文本文件中的 ASP 页中?
有没有办法从文本文件中读取 ASP 标记,并将其呈现到页面上?
我正在使用 Azure Maps 服务,并且我们在引脚上有弹出窗口。我想在弹出窗口中添加一个 ASP 按钮,以便用户可以“选择”一个位置,但我不知道该怎么做。
目前,我们将弹出内容的“模板”存储在一个文本文件中,该文件在创建地图时读取。我似乎无法在此文本文件中插入 ASP 控件,标记的呈现方式与文本文件中的完全相同,因此没有呈现按钮,但文本<asp:Button ID="Button1" runat="server" Text="Button" />
被添加到 HTML 输出中,它只是呈现为空。
任何关于如何添加 ASP 按钮的建议都会很棒。
更新:
模板存储在文本文件中的原因是因为它被读取并解析为一种方法,该方法用实际数据替换该文本文件中的某些 HTML 元素,这些数据用于显示和隐藏模板中的某些项目,具体取决于地图引脚是什么选择。Azure Maps 变量popupTemplate
是一个字符串,其中包含要在弹出窗口中显示的 html 标记。我需要将该 HTML 字符串传递给 Azure MapspopupTemplate
以便显示。出于这个原因,我认为部分观点是行不通的。
我想要一个 ASP 按钮的原因实际上是为了易于使用。该地图位于 ASCX 控件内。单击该按钮时,需要更新控件上的属性值,关闭 Bootstrap 模式,然后执行由承载控件的父页面捕获的事件处理程序。然后,该父页面更新一个更新面板,该面板显示该控件中的属性值。我确信它可以只用 javascript 来完成,但我不知道如何完成这样的事情。我愿意接受这方面的教程,但我会说,当我在模板中添加一个标准 HTML 按钮并包含一个onclick
仅显示警报的事件时,地图无法加载。我从按钮中删除了 onclick 事件,它加载正常。我不知道为什么,但这是一个不同的问题。
更新 2:
@ADyson,现在所有的处理都是在服务器端完成的,客户端完成的唯一处理是当用户点击地图上的实际图钉时。发生这种情况时,Azure 提供的 JS 会导致出现一个弹出窗口,并将占位符替换为来自(现在是静态的)数据源的实际数据,该数据源是在地图显示之前在服务器端创建的。
单击按钮时,它不会刷新整个页面。它使用 Bootstrap 提供的数据属性(通过 javascript)关闭模式,然后调用服务器端事件,该事件导致 asyncpostback 更新位于更新面板内的某些控件中的文本,然后调用该Update()
更新面板上的方法,以便所选地图点显示为被选中。整个页面都不会刷新。我知道这是因为除了我们的地图点之外,地图下方是搜索结果的文本列表。该文本列表还显示一个按钮。这些按钮是使用Repeater 控件添加的ASP 控件,它们执行我需要弹出模板中的按钮执行的操作。
有没有办法从另一个非 ASP 按钮控件调用 ASP 的单击事件?这样做可以,但是因为中继器列表中的按钮是动态添加的,所以我不知道如何引用它们,因为我无法将它们的 ID 设置为我可以引用的东西。这些按钮确实有一个独特的数据属性,尽管我可以引用它,但我不确定如何获得对它的引用。我可以搜索数据属性值并使用 javascript 返回对按钮的引用,然后将我的 HTMLonclick
事件设置为调用该按钮的click()
事件吗?
我不想只更新 HTML 客户端的原因是,当用户单击“选择此位置”按钮时,ASCX 控件中的属性会更新。该属性用于以后的进一步处理。
我能够弄清楚为什么在添加 onclick 事件数据时地图停止工作。生成输出脚本时未能转义单引号是一个错误。
我可以分享代码,但我不确定您需要查看多少内容或哪些代码会有所帮助。
包含生成地图 javascript 的方法和属性的类(包括需要按钮的弹出模板)大约 290 行,并引用了 4 个其他类和 2 个接口。分享这一切可能很困难。一些代码还包含一些需要清理的专有和机密信息。
看来您似乎在告诉我这实际上是不可能的,我需要找到一种不同的方法来做到这一点。
javascript - Azure 地图,将所有搜索结果显示为集群
我注意到当我在地图上显示结果时,如果您启用了聚类,您会收到两种类型的形状。
- 集群
- 特点(在我的情况下)
我想将所有结果显示为人员列表,即使他们正在聚类。
地图:
如您所见,我们有 2 人的 1 个集群。原因是因为在数据上我们有 2 个形状,集群特征和人物特征。
为了实现这个目标,我们做了下一个,
在 Moveend 事件中,我们将人员和集群存储在 2 个单独的数组中:
在 Persons 数组上,我们有人员的信息,但在 clusters 数组上,我们只有集群的信息,所以我们在这个数组上迭代,得到数组中的每个人,如下所示,
我构建集群层如下,
但是我想知道即使只有一个人,是否还有另一种方法可以将地图的所有记录显示为集群?
非常感谢!
解决方案1:
我发现我认为使用“顺序执行”的承诺是一个很好的解决方案,
现在我有一个 Promises 数组,所以每次使用 getClusterLeaves 方法都会返回一个 Promise,我将该响应存储在数组中,
然后我得到这些人,
最后,当集群功能的所有承诺完成时,我会显示所有结果,
而且效果很好:)
javascript - Azure Maps Resize + Javascript 无法正常工作
我已经构建了一个 Asp.net MVC 视图,其中有来自 Azure 地图的地图。我还有一个侧边栏,我可以将它折叠起来变小。
折叠栏的代码如下(并且包含在 _layout 文件中):
在视图中,我添加了以下 javascript。
当我按下 ID 为sidebarCollapse时,侧边栏会折叠,但地图不会调整大小(它不会拉伸 100%)。但是,如果我在折叠后单击带有 id resizea的链接标签,则地图的大小会调整为正确的大小。
谁能带领我朝着正确的方向前进?
提前感谢!
azure - 您如何在放大和缩小时获取数据(多边形/数据引脚)?
有什么方法可以放大或缩小 Azure Maps 并获取当前窗口中所有多边形和数据引脚的数据?
android - 在 Android 的 Azure Maps 中更改相机焦点
我在我的 android 应用程序中使用 Azure Maps,有没有办法以编程方式将包含目标纬度、经度和缩放值的 MapOptions 设置为 AzureMap 对象。
我可以在 XML 中设置这些值,但不能在 Java 或 Kotlin 中设置。