加载Google Map前,如何验证无效的Map ID?
问题:如何在加载Google Map前验证Map ID的有效性?
Map ID是成功加载Advanced Markers的关键,我们可以轻松验证它是否为空,但当提供的Map ID无效时,验证起来就比较棘手。想请教:如何在尝试加载Google Map之前确认Map ID是无效的?
我们已经尝试了一段验证代码,想知道是否还有其他可行的验证方法,欢迎分享思路。
现有验证代码
Ext.Ajax.request({ url: 'https://maps.googleapis.com/maps/api/mapsjs/mapConfigs:batchGet?map_ids='+vFldValues['install_gmapid'], method: 'GET', disableCaching: false, success: function(response) { vResponseData = Ext.decode(response.responseText); vMapApiConfig = vResponseData.mapsApiConfigs[0]; vMapParamSet = vMapApiConfig.mapParamSet; vTierValidation = vMapParamSet.tierValidationStatus; if (vResponseData && vMapApiConfig && vMapParamSet && vTierValidation && vTierValidation[0].code === 'STATUS_MAP_ID_NOT_FOUND') { alert('MSG_ERR_JS_INAVLID_GAPIKEY_GMAPID'); return; } else { vContainer.add(me.hdr_gmap); me.hdr_fetchFilteredData(vFormPanel); } }, failure: function(response) { var vResponseData = Ext.decode(response.responseText); if (vResponseData && vResponseData.error.code === 400) { alert('MSG_ERR_JS_INAVLID_GAPIKEY_GMAPID'); return; } } });
其他可行验证思路
利用Maps JavaScript API加载回调捕获错误
加载Google Maps脚本时,通过callback和onerror参数监听加载状态。若Map ID无效,API加载过程中会抛出含MapIdInvalid类错误码的异常,可在回调中捕获该异常,提前完成验证。调用Google Maps Admin API查询状态
若项目有权限访问Google Maps Admin API,可直接通过该API查询Map ID的详细状态,包括是否存在、关联项目、配置有效性等,验证结果更全面,但需额外配置API权限与密钥。前端格式预校验
Google Map ID有固定格式规则(通常以map-开头,由字母、数字、连字符组成),可先在前端做格式校验,过滤明显不符合规则的Map ID,减少无效API请求。但仅能过滤格式错误,无法验证存在性。缓存验证结果
对已验证的Map ID做本地缓存(如localStorage),相同ID再次使用时直接读取缓存结果,避免重复API请求,提升效率。需注意设置缓存过期机制,防止Map ID状态变更后缓存失效。
内容的提问来源于stack exchange,提问作者Challa Madhusudana Babu
相关产品推荐
相关产品推荐

