Skip to content

Commit

Permalink
Release MapplsAPICore(1.0.11), MapplsAPIKit(2.0.22), MapplsMap(5.13.1…
Browse files Browse the repository at this point in the history
…1), MapplsUIWidgets(1.0.6)

- Capability to show Building Boundry of selected point on the map is added.
- Apple Privacy Manifest file added.
  • Loading branch information
Robin Macbook Pro committed May 9, 2024
1 parent c0aa967 commit 2cde7c3
Show file tree
Hide file tree
Showing 45 changed files with 10,464 additions and 127 deletions.
61 changes: 40 additions & 21 deletions MapplsSDKDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
D17F0552288FD181005333E8 /* SampleType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17F0551288FD181005333E8 /* SampleType.swift */; };
D17F0558288FD1ED005333E8 /* SampleTypeSwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17F0557288FD1ED005333E8 /* SampleTypeSwiftUI.swift */; };
D1B09A942896FC59008881E0 /* StyledMapplsAutocompleteViewControllerSwiftUIWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B09A932896FC59008881E0 /* StyledMapplsAutocompleteViewControllerSwiftUIWrapper.swift */; };
D1CD0F5E2BE6437B00A84A04 /* PlacemarkDetailsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CD0F5D2BE6437B00A84A04 /* PlacemarkDetailsVC.swift */; };
D1F199A32A028EFF00836308 /* PredictiveDirectionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F199A22A028EFF00836308 /* PredictiveDirectionsViewController.swift */; };
D1F199A52A028F6200836308 /* RouteFetchSettingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F199A42A028F6200836308 /* RouteFetchSettingController.swift */; };
D1F199A82A03CBB300836308 /* LocationPickerTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1F199A72A03CBB300836308 /* LocationPickerTableCell.swift */; };
Expand All @@ -131,6 +132,19 @@
D1FC988328910ABF00C35D3A /* SampleLauncherSwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FC988228910ABF00C35D3A /* SampleLauncherSwiftUIView.swift */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
D1E80E882BDF74A3000D232B /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
181F70B925A89A5B006024FE /* LocationsChooserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsChooserTableViewController.swift; sourceTree = "<group>"; };
182D24D2251B46F70098914F /* UIViewController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extension.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -261,6 +275,7 @@
D17F0557288FD1ED005333E8 /* SampleTypeSwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleTypeSwiftUI.swift; sourceTree = "<group>"; };
D1B09A932896FC59008881E0 /* StyledMapplsAutocompleteViewControllerSwiftUIWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyledMapplsAutocompleteViewControllerSwiftUIWrapper.swift; sourceTree = "<group>"; };
D1B2F27B2A2DB23B00FEAD39 /* MapplsAPICore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MapplsAPICore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D1CD0F5D2BE6437B00A84A04 /* PlacemarkDetailsVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlacemarkDetailsVC.swift; sourceTree = "<group>"; };
D1F199A22A028EFF00836308 /* PredictiveDirectionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PredictiveDirectionsViewController.swift; sourceTree = "<group>"; };
D1F199A42A028F6200836308 /* RouteFetchSettingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteFetchSettingController.swift; sourceTree = "<group>"; };
D1F199A72A03CBB300836308 /* LocationPickerTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationPickerTableCell.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -555,6 +570,7 @@
684CCDD22B04CB1900D38CFE /* CustomTapGestureController.swift */,
68E69CA02B62510B005E6E21 /* HeatMapViewController.swift */,
68DA0A6B2B107C73009E10C4 /* DottedLineViewController.swift */,
D1CD0F5D2BE6437B00A84A04 /* PlacemarkDetailsVC.swift */,
);
path = Swift;
sourceTree = "<group>";
Expand Down Expand Up @@ -716,7 +732,8 @@
68A6BF102106E03C00547929 /* Frameworks */,
68A6BF112106E03C00547929 /* Resources */,
47AB0D70260B0C890055B864 /* ShellScript */,
DF5BFE374543B06AE64ABA04 /* [CP] Embed Pods Frameworks */,
22B9D1E6B4AFD2D9C83C6F19 /* [CP] Embed Pods Frameworks */,
D1E80E882BDF74A3000D232B /* Embed Frameworks */,
);
buildRules = (
);
Expand Down Expand Up @@ -780,60 +797,61 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
47AB0D70260B0C890055B864 /* ShellScript */ = {
22B9D1E6B4AFD2D9C83C6F19 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
outputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
DC2450A50F23FE0C88C69C38 /* [CP] Check Pods Manifest.lock */ = {
47AB0D70260B0C890055B864 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-MapplsSDKDemo-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
shellScript = "
";
};
DF5BFE374543B06AE64ABA04 /* [CP] Embed Pods Frameworks */ = {
DC2450A50F23FE0C88C69C38 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-MapplsSDKDemo-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MapplsSDKDemo/Pods-MapplsSDKDemo-frameworks.sh\"\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
Expand Down Expand Up @@ -927,6 +945,7 @@
188AE97821C7D66800D2C866 /* CustomAnnotationModels.swift in Sources */,
18BDD84E22F4005D00239CDC /* InteriorPolygonExample.swift in Sources */,
D1FC988328910ABF00C35D3A /* SampleLauncherSwiftUIView.swift in Sources */,
D1CD0F5E2BE6437B00A84A04 /* PlacemarkDetailsVC.swift in Sources */,
D17F054C288EBE65005333E8 /* AutosuggestWidgetExamplesLauncherSwiftUIListView.swift in Sources */,
68BF2EB12B6A372400C84F31 /* DeviceTableViewController.swift in Sources */,
18404BD52303C435001D8DC0 /* DashedPolylineExample.swift in Sources */,
Expand Down Expand Up @@ -1116,7 +1135,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.9;
MARKETING_VERSION = 1.0.20;
PRODUCT_BUNDLE_IDENTIFIER = com.Mappls.MapplsSDKDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -1144,7 +1163,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.9;
MARKETING_VERSION = 1.0.20;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.Mappls.MapplsSDKDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
25 changes: 25 additions & 0 deletions MapplsSDKDemo/Swift/PlacePicker/PlacePickerViewExampleVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,36 @@ class PlacePickerViewExampleVC: UIViewController {
// return "Place Picker"
// }

func hexStringFromColor(color: UIColor) -> String {
let components = color.cgColor.components
let r: CGFloat = components?[0] ?? 0.0
let g: CGFloat = components?[1] ?? 0.0
let b: CGFloat = components?[2] ?? 0.0

let hexString = String.init(format: "%02lX%02lX%02lX", lroundf(Float(r * 255)), lroundf(Float(g * 255)), lroundf(Float(b * 255)))
print(hexString)
return hexString
}

override func viewDidLoad() {
super.viewDidLoad()
mapView = MapplsMapView()
// Do any additional setup after loading the view.
placePickerView = PlacePickerView(frame: self.view.bounds, parentViewController: self, mapView: mapView)

placePickerView.isBuildingFootprintEnabled = UserDefaultsManager.isBuildingFootprintsOverlayEnabled

if UserDefaultsManager.isUseDefaultStyleForBuildingAppearance == false {
let buildingAppearance = MapplsBuildingAppearance()
buildingAppearance.fillColor = "\(hexStringFromColor(color: UserDefaultsManager.placePickerBuildingLayerFillColor))"
buildingAppearance.fillOpacity = "\(UserDefaultsManager.placePickerBuildingLayerFillOpacity)"
buildingAppearance.strokeColor = "\(hexStringFromColor(color: UserDefaultsManager.placePickerBuildingLayerStrokeColor))"
buildingAppearance.strokeOpacity = "\(UserDefaultsManager.placePickerBuildingLayerStrokeOpacity)"
buildingAppearance.strokeWidth = "\(UserDefaultsManager.placePickerBuildingLayerStrokeWidth)"

placePickerView.buildingAppearance = buildingAppearance
}

placePickerView.delegate = self
self.view.addSubview(placePickerView)
// placeView.autocompleAttributionsSetting
Expand Down
60 changes: 60 additions & 0 deletions MapplsSDKDemo/Swift/PlacemarkDetailsVC.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import Foundation

import UIKit
import MapplsMap
import MapplsAPIKit
import MapplsAPICore
class PlacemarkDetailsVC: UIViewController {
lazy var tableView = UITableView(frame: .zero)

var tableDict : [[String : Any]] = [[String : Any]]()

override func viewDidLoad() {
super.viewDidLoad()
setupViews()
self.view.backgroundColor = .white
self.tableView.reloadData()
}

private func setupViews() {
self.view.addSubview(self.tableView)
tableView.backgroundColor = .white
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
tableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
tableView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0).isActive = true
tableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0).isActive = true
tableView.delegate = self
tableView.dataSource = self
tableView.register(DemoMapStyleTableViewCell.self, forCellReuseIdentifier: "cell")
}
}

extension PlacemarkDetailsVC : UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableDict.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
var tableCell: UITableViewCell!
if let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier){
tableCell = cell
}else {
tableCell = UITableViewCell(style: .value1, reuseIdentifier: cellIdentifier)
}
if tableDict.indices.contains(indexPath.row), let key = tableDict[indexPath.row].keys.first , let value = tableDict[indexPath.row].values.first{
tableCell.textLabel?.text = "\(key)"
tableCell.detailTextLabel?.text = "\(value)"
}
return tableCell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50
}
}
Loading

0 comments on commit 2cde7c3

Please sign in to comment.