我是Sencha Touch的新手,懂Javascript,jQuery,HTML5。Sencha Touch 2.x Google Place API v3
我正在用Sencha Touch + Sencha Architect开发简单的Google Map应用程序,它在当前位置放置标记,还使用Google Place查找当前位置附近的“商店”(即需要Google地点搜索的类型)。我在'callbackPlaces'(即纬度,经度)中获取位置,但Google.Maps.Marker在'callbackPlaces'方法中提供了错误(即通过'addMarker'方法调用,我也尝试通过将Google.Maps.Marker放入'callbackPlaces')。
Ext.define('MyApp.view.Map', {
extend: 'Ext.Map',
alias: 'widget.map',
config: {
useCurrentLocation: true,
listeners: [
{
fn: 'onMapMaprender',
event: 'maprender'
}
]
},
onMapMaprender: function(map, gmap, options) {
this.initializePlaces();
},
initializePlaces: function() {
//Set Marker on Current Position
var geo = this.getGeo();
var currentPosition = new google.maps.LatLng(geo.getLatitude(), geo.getLongitude());
this.createMarker(currentPosition);
//request set for Places Services
var request = {
location: currentPosition,
radius: 500,
types: ['store']
};
this.getMap().zoom = 15;
// Call PlacesService
var service = new google.maps.places.PlacesService(this.getMap());
service.nearbySearch(request, this.callbackPlaces);
},
callbackPlaces: function(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
addMarker(results[i]);
}
}
},
createMarker: function(position) {
//Here Position = Google Map LatLng
var infoWindow = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
map: this.getMap(),
position: position
});
google.maps.event.addListener(marker, "click", function() {
infoWindow.setContent("Lng: " + marker.position.lng() + "\n Lat: " + marker.position.lat());
infoWindow.open(this.getMap(), marker);
});
},
addMarker: function() {
//Here Place = google.maps.places
var infoWindow = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
map: this.getMap(),
position: place.geometry.location
});
google.maps.event.addListener(marker, "click", function() {
infoWindow.setContent("Lng: " + marker.position.lng() + "\n Lat: " + marker.position.lat());
infoWindow.open(this.getMap(), marker);
});
}
});
我不知道出了什么问题!
任何帮助|提示将不胜感激!
在此先感谢。
你不应该叫this.addMarker(结果[1]);而不是addMarker(results [i]); ? – 2013-03-14 14:45:11
实际上同样的事情是'initializePlaces'中的工作也尝试没有'this',它不工作。 – 2013-03-15 05:02:21
事情是......我不能在'callbackPlaces'方法中得到'this'的任何东西。除了“callbackPlaces”之外,所有方法都可以访问“this”。所以,我在'callbackPlaces'方法中尝试使用和不使用'this'。但不是以任何方式工作。很奇怪! – 2013-03-15 10:05:43