首页 文章

Google Map - 获取给定半径内的所有标记

提问于
浏览
2

我正在开发一个iOS应用程序,我想让它显示给定半径内的所有标记 .

我正在使用GMSGeometryDistance来计算所有标记距离并返回我给定半径内的距离 .

当前位置在高频率上变化 . 这意味着我需要在每次更改位置时计算此值,这会影响应用程序性能 .

是否有任何功能来计算用户移动的每个给定距离?

1 回答

  • 0
    <p>
    I get all the markers with in the given radius by using below code.Please check it once.Hope it will help to you. </p>
    <p>
    
    <table>
    <tr>
    `CLLocationDistance dist = 800; // required radius in meters.
    </tr>
    <tr>
    CLLocation *closestLocation;
    </tr>
    <tr>
    // finalArr(NsMutableArray) stores coordinates fetching from database
    </tr>
    <tr>
    for (CLLocation *location in finalArr) {
    </tr>
    <tr>
    CLLocationDistance distance = [currentLoc  distanceFromLocation:location];
    </tr>
    <tr>
            if (distance < dist) {
    </tr>
    <tr>
    closestLocation = location;
    </tr>
    <tr>
    [closeLatArr addObject:@(closestLocation.coordinate.latitude)];
    </tr>
    <tr>
    [closeLongArr addObject:@(closestLocation.coordinate.longitude)];
    </tr>
    <tr>
    }
    </tr>
    <tr>
    for (int i=0; i<[closeLatArr count]; i++) {
    
            GMSMarker *marker = [[GMSMarker alloc] init];
            marker.position = CLLocationCoordinate2DMake([[closeLatArr objectAtIndex:i] doubleValue], [[closeLongArr objectAtIndex:i] doubleValue]);
    
            //   marker.title = [locArr objectAtIndex:i];
            marker.map = mapView;
            //NSLog(@"closest loc are %@",locArr);
    
        }`
    </tr>
    </table>
    </p>
    

相关问题