假设我有这个控制器(这是Cordova / AngularJS应用程序):
var Application_MapLocations = index.controller('Application.MapLocations', ['$scope', '$rootScope', '$state', function($s, $rs, $state){
function gmap() {
var ctx = this;
var map = plugin.google.maps.Map.getMap();
map.removeEventListener();
if (map.markers) {
angular.forEach(map.markers, function(marker) {
marker.remove();
});
}
map.markers = [];
var bounds = new plugin.google.maps.LatLngBounds();
var boundsLength = 0;
map.addEventListener(plugin.google.maps.event.MAP_READY, function(map){
angular.forEach(ctx.points, function(value) {
map.addMarker({
position: new plugin.google.maps.LatLng(value.lat, value.lng),
title: value.title,
snippet: value.snippet,
icon: 'www/img/map_point.png'
}, function(marker){
marker.addEventListener(plugin.google.maps.event.MARKER_CLICK, function() {
angular.forEach(map.markers, function(marker) {
marker.hideInfoWindow();
});
marker.showInfoWindow();
});
map.markers.push(marker);
marker.getPosition(function(pos){
bounds.extend(pos);
if (map.markers.length == ++boundsLength) {
map.setCenter(bounds.getCenter());
map.setZoom(17);
}
});
});
});
});
map.showDialog();
}
$s.buttons = [
{id:'btn-section', text:'Seleccione ubicación', section: true, click: function(){ }},
{id:'carrion', text:'Carrión', section: false, click: gmap, points: [
{lat: -0.20208, lng: -78.497047, title:"Carrión", snippet:'Dirección: Carrión 1030 y Av. 10 de Agosto\nTeléfonos: 098-742-2271, 02-256-2526, 02-254-3143, 02-290-2434\nFax: 02-256-2385\nContacto: Javier Morquecho dmorquecho@casabaca.com 098-7422271, Dickran Coronel dcoronel@casabaca.com 099-822-2475'}
]},
{id:'cumbaya', text:'Cumbayá', section: false, click: gmap, points: [
{lat: -0.196783, lng: -78.440718, title:"Cumbayá", snippet:'Dirección: Vía Interoceánica Km 141/2\nTeléfonos: 098-742-2271, 02-204-0078, 02-289-0038\nContacto: Jofrey Lopez jlopez@casabaca.com 098-640-1447'}
]},
/* *** more place > coortinates here *** */
];
/* *** more code here *** */
}]);
属于一个视图,其任务是显示我选择的每个位置的地图。
在$scope.buttons
中(实际上服务的别名为$s
)我保存了一个位置列表(它们是文字对象,其中包含详细描述坐标的数据和用于渲染的附加数据)。每个地方都有坐标。它的机制是这样的:
我使用Phonegap Google Maps Plugin导致了很多麻烦。
核心位于gmap
函数中,该函数作为每个菜单元素的单击处理程序放置。它继续这样:
在Android中,这就像魅力一样。在iOS中根本不起作用:显示对话框但没有设置标记,没有看到自定义图像,也没有在任何边界集上居中。
问:什么可能搞砸了?我对这个插件不知何故。
答案 0 :(得分:0)
您可以尝试以下命令吗?
$> cordova plugin rm plugin.google.maps
$> cordova platform rm ios
$> cordova platform add ios android
$> cordova plugin add plugin.google.maps --variable API_KEY_FOR_ANDROID= --variable API_KEY_FOR_IOS=
$> ./platforms/ios/cordova/clean