带有参数的 Ng 地图标记图标(托管图像的 URL)不起作用

Posted

技术标签:

【中文标题】带有参数的 Ng 地图标记图标(托管图像的 URL)不起作用【英文标题】:Ng map marker icon with params (url to hosted image) not working 【发布时间】:2017-10-05 17:29:56 【问题描述】:

在 ng 地图中这是有效的:

<marker ng-repeat="helper in helpers" position="helper.position" optimized="false" icon=helper.facebook.freshURL"></marker>

但如果我在“图标”中输入参数:

<marker ng-repeat="helper in helpers" position="helper.position" optimized="false" icon="url: 'helper.facebook.freshURL', anchor: [0,0]"></marker>

好像url前面有个前缀“localhost:8000”,报错:

GET http://localhost:8100/%7Burl:%20https://graph.facebook.com/1716361775351742/picture?type=normal,%20anchor:%20[0,0] 404 (Not Found)

这是我这边的错误还是语法错误?谢谢。

【问题讨论】:

【参考方案1】:

此行为与解析表达式时发生的 JSON 错误有关:url: 'helper.facebook.freshURL', anchor: [0,0]

一旦为icon 属性提供了valid 表达式,例如icon='"url":"helper.facebook.freshURL","anchor":[0,0]',标记图标将被正确初始化。

例子

var app = angular.module('appMaps', ['ngMap']);
app.controller('mapCtrl', function ($scope) 
    
    $scope.cities = [
        id: 1, name : "Brisbane", location: [-33.867396, 151.206854] 
    ];


    $scope.iconProperties = 
       url : "http://maps.google.com/mapfiles/marker.png",
       anchor: [0,0]   
    ;

    $scope.iconUrl = "http://maps.google.com/mapfiles/marker.png";

);
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.js"></script>
<div ng-app="appMaps" ng-controller="mapCtrl">
        <map center="[-24.667856, 133.630694]" zoom="3">
            <!--marker id='IDcity.id' ng-repeat="city in cities" position="city.location" icon="iconProperties" -->
            <marker id='IDcity.id' ng-repeat="city in cities" position="city.location" icon='"url":"iconUrl","anchor":[0,0]'>
            </marker>
            
        </map>
</div>

【讨论】:

感谢 Vadim,菜鸟的错误。但是,现在我收到错误消息:“InvalidValueError: setIcon: not a string; and no url property; and no path property”。你知道是什么原因造成的吗? 或者如果我使用“custom-marker”,我会收到错误:“TypeError: Cannot read property 'className' of null”,并且标记不会呈现。有什么想法吗?【参考方案2】:

是的,可能是一个错误。到目前为止一直试图找到文档,但找不到。可能是正则表达式问题

如果仍在寻找,请删除协议,然后尝试。所以你的网址看起来像这样。

helper.facebook.freshURL = '//graph.facebook.com/1716361775351742/picture?type=normal';

让我们知道。

【讨论】:

以上是关于带有参数的 Ng 地图标记图标(托管图像的 URL)不起作用的主要内容,如果未能解决你的问题,请参考以下文章

调整 Google 地图标记图标图像的大小

带有毕加索的谷歌地图集群项目标记图标

带有矢量资产图标的 android 谷歌地图中的自定义标记

我的颤振资产图像没有被用作谷歌地图的标记图标

swift ios中的自定义谷歌地图标记图标图像

如何在谷歌地图上放置图标标记,图标数量是不是有配额?