gpt4 book ai didi

angularjs - 如何使用 angularjs 和谷歌地图更改图标标记

转载 作者:行者123 更新时间:2023-12-03 07:00:32 24 4
gpt4 key购买 nike

我正在使用 AngularJS 谷歌地图 ( https://github.com/allenhwkim/angularjs-google-maps ) 从事 PhoneGap 项目我需要使用自定义图像更改默认图标标记。这是我的 Controller 代码:

核心.js

// Map Markers Controller

app.controller('markersController', function($scope, $compile){

$scope.infoWindow = {
title: 'title',
content: 'content'
};

$scope.markers = [
{
'title' : 'Location #1',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7112, -74.213]
},
{
'title' : 'Location #2',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7243, -74.2014]
},
{
'title' : 'Location #3',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7312, -74.1923]
}
];

$scope.showMarker = function(event){

$scope.marker = $scope.markers[this.id];
$scope.infoWindow = {
title: $scope.marker.title,
content: $scope.marker.content
};
$scope.$apply();
$scope.showInfoWindow(event, 'marker-info', this.getPosition());
}
});

这是我的marker.html

<div ng-controller="markersController" class="map-fullscreen-container">
<map zoom="8" center="[-26.82, -54.84]" class="fullscreen">

<info-window id="marker-info">
<div ng-non-bindable="">
<strong class="markerTitle">{{ infoWindow.title }}</strong>
<div class="markerContent">
<p>{{ infoWindow.content }}</p>
</div>
</div>
</info-window>

<marker ng-repeat="(id, marker) in markers" id="{{ id }}"
position="{{marker.location}}"
on-click="showMarker(event, $index)" >
</marker>

</map>
</div>

最佳答案

如果您只有一个标记,您可以直接在 marker 指令上设置它:

<marker ng-repeat="(id, marker) in markers" id="{{ id }}" 
position="{{marker.location}}"
on-click="showMarker(event, $index)"
icon="yourIconUrl.png" >
</marker>

如果每个项目有不同的标记,您需要做的第一件事就是向项目添加 icon 属性:

$scope.markers = [
{
'title' : 'Location #1',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7112, -74.213],
'icon' : 'yourIconUrl.png'
},
{
'title' : 'Location #2',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7243, -74.2014],
'icon' : 'yourIconUrl.png'
},
{
'title' : 'Location #3',
'content' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a viverra magna',
'location' : [40.7312, -74.1923],
'icon' : 'yourIconUrl.png'
}
];

然后您需要在 html 上使用它,方法是将其添加到 marker 指令中:

<marker ng-repeat="(id, marker) in markers" id="{{ id }}" 
position="{{marker.location}}"
on-click="showMarker(event, $index)"
icon="{{marker.icon}}" >
</marker>

就是这样,希望有帮助。

请参阅文档了解更多信息: https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/docs/index.html

关于angularjs - 如何使用 angularjs 和谷歌地图更改图标标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28308997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com